赞
踩
卷积核(Conv)
卷积可以看作对某个局部的加权求和,它是对应局部感知。
原理:在观察某个物体时我们既不能观察每个像素也不能一次观察整体,而是先从局部开始认识,这就对应了卷积。
卷积核的大小一般有1x1,3x3和5x5的尺寸。卷积核的个数就对应输出的通道数,这里需要说明的是对于输入的每个通道,输出每个通道上的卷积核是不一样的。eg:输入是28x28x192(WxDxK,K代表通道数),然后在3x3的卷积核,卷积通道数为128,那么卷积的参数有3x3x192x128,其中前两个对应的每个卷积里面的参数,后两个对应的卷积总的个数。
对于n*n(n>1)的卷积核,我们通常还要考虑pad(边缘补0的个数),stride(每次卷积移动的步长)。但是当尺寸是1x1时,对于single channel而言就相当于对原特征的scala操作;但是我们一般遇到的都是multi-channel的情况,此时我们便可以根据自己的需要定义卷积核的个数,从而进行降(升)维。如上面所说,如果将它看作cross channel的pooling 操作,它还能帮我们得到在同一位置不同通道之间进行特征的aggregation。
总结一下,1x1的卷积核可以进行降维或者升维,也就是通过控制卷积核(通道数)实现,这个可以帮助减少模型参数,也可以对不同特征进行尺寸的归一化;同时也可以用于不同channel上特征的融合。一个trick就是在降维的时候考虑结合传统的降维方式,如PCA的特征向量实现,这样效果也可以得到保证。
卷积核的相关参数值
eg:输入是一个32x32x3的图像,3表示RGB三通道,每个filter/kernel是5x5x3,一个卷积核产生一个feature map,下图中,有6个5x5x3的卷积核,故输出6个feature map(activation map),大小即为28x28x6。
下图中,第二层到第三层,其中每个卷积核大小为5x5x6,这里的6就是28x28x6中的6,两者需要相同,即每个卷积核的“层数”需要与输入的“层数”一致。有几个卷积核,就输出几个feature map,下图中,与第二层作卷积的卷积核有10个,故输出的第三层有10个通道。
池化(Pooling)
卷积特征往往对应某个局部的特征。要得到globa的特征需要将全局的特征就行一个aggregation。池化就是这样一个操作,对于每个卷积通道,将更大尺寸(甚至是globa)上的卷积特征进行pooling就可以得到更有全局性的特征。这里的pooling当然就对应了cross region。与1x1的卷积相对应,后者可以看作一个cross channel的pooling操作。pooling的另外一个作用就是升维或者降维,后面我们可以看到1x1的卷积也有相似的作用。
卷积神经网络的参数计算:https://www.cnblogs.com/hejunlin1992/p/7624807.html
1×1的卷积核:https://blog.csdn.net/a1154761720/article/details/53411365
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。