CNN一层中的一个通道矩阵叫做feature map,特征图。比如输入的灰度图像,有1个feature map, 变换到第二层有6个feature map。

CNN特征拼接 cnn特征图_卷积核


之所以叫feature map特征图,是因为一个特征图代表的是一个图像的特征,越到后面这个特征越抽象,越多,所以后面的特征图也就是通道数越多。然后特征图本身的大小减小了,也就是特征抽离出来了,没有那么多杂质了,也更抽象了,不需要那么多元素去描述它了。一个特征图使用一个卷积核进行卷积得到,卷积核是3维的,不要把它想成2维的,通道是第3维,也即大小是kkc。卷积核每一个通道在第l的每个feature map上运算,然后所有通道的值相加得到下一层的feature map。 为什么一个特征图只使用一个卷积核去获得所有的像素,原因就是CNN里面的权值共享原理。

计算公式

CNN特征拼接 cnn特征图_卷积_02


CNN特征拼接 cnn特征图_卷积核_03

l层通道数量为c,l+1层通道数量为c1,卷积核大小为k,由上,不算偏置时参数数量为:
c * k * k * c1

卷积-滑动窗口方法
卷积还能很大程度上解决平移 旋转 大小 不变形 这个对于传统算法是很困扰 很难的。

可以输出CNN中间层看看结果。

关于卷积核:

受VGG网络的影响,现在的卷积通常通常使用小卷积核33,连续多层小的卷积核差不多等价于使用一个大的卷积核,如2层33等于一层5*5,小卷积核所需要的参数量更少,且产生了更多的特征。

为胜么卷积核尺寸几乎都使用奇数:

主要应该是因为特征偏移问题

第一方面是,偶数size不能对称的放置padding,而奇数可以,放置(k-1)/ 2 的padding,然后就能保证下一层特征在当前卷积区域的中心位置,而偶数的则不行。

第二方面是,不管是否能防止对称的padding,偶数卷积核本身没有整数中心,也就是卷积到下一层时节点位置不能对应到当前卷积区域的中间位置,可以画图理解一下,如果是44的卷积,不管是否padding,产生的节点只能放到中间4个点之一,但它们都不是中心位置,都有偏移,而奇数的卷积核,比如33的,padding后,产生的节点位置对应到当前卷积区域的中心,如第一次卷积得到的节点位置是(0,0)。如果偶数卷积核,所有层都按照同一种方式放置下一层节点,这种偏移就会累积,将会产生特征偏移问题the shift problem。论文 Convolution with even-sized kernels and symmetric padding研究了这个问题,如下图:

CNN特征拼接 cnn特征图_卷积核_04


黄色区域表示有明显特征,蓝色区域表示没什么特征。

采用一定的技巧可以一定程度缓和这种问题,但是不能完全解决,并且相对奇数的处理起来麻烦很多,没必要。

还有的原因应该是奇数卷积核具有对称性,这在提取特征时具有更多的好的特性,比如对边沿、对线条更加敏感

感受野大小计算:

考虑标准通用的情形,卷积核是方的,size = k,步长s,池化大小po

因为是方的,在两个维度上的扩展相同,只需要考虑一个维度的扩展就行,如下图

CNN特征拼接 cnn特征图_卷积核_05


如果要计算l层的感受野,倒着推回去,遇到卷积层,根据卷积层的卷积方式,第一个节点对应k的长度,后面每个节点对应s个长度,总的就是r_(l-1) = k + (r_l - 1) * s 这么多个节点,如果s =1,可以简写为 r_(l - 1) = r_l + k - 1 。 对于池化层,直接乘以池化大小即可。

标准的卷积层,图像宽度w,步长s,卷积核奇数 k,w/s 能除尽,生成的下一层宽度就是w/s
因为2p = k -1计算公式 (w+2p-k) / s + 1= (w-1)/s + 1 按照取整的触发, w/s 能除尽,(w-1)/s刚好少了1,加上1就回去了,所以经过padding之后最后宽度还是w/s,
有效感受野
NIPS 2016论文Understanding the Effective Receptive Field in Deep Convolutional Neural Networks提出了有效感受野(Effective Receptive Field, ERF)理论,论文发现并不是感受野内所有像素对输出向量的贡献相同,在很多情况下感受野区域内像素的影响分布是高斯,有效感受野仅占理论感受野的一部分,且高斯分布从中心到边缘快速衰减,下图第二个是训练后CNN的典型有效感受野。

这点其实也很好理解,如下图,用蓝色数字表示,很明显越靠近感受野中心的值被使用次数越多,靠近边缘的值使用次数越少。5x5输入是特殊情况刚好符合高斯分布,3x3输入时所有值的使用次数都是1,大于5x5输入时大部分位于中心区域的值使用次数都是9,边缘衰减到1。每个卷积层都有这种规律,经过多层堆叠,总体感受野就会呈现高斯分布。

CNN特征拼接 cnn特征图_卷积_06