CNN详解(卷积层及下采样层)
卷积神经网络包含卷基层、批量归一化层、下采样层、全连接层等。首先来介绍卷基层和下采样层。
1、卷基层(Convolution)
关于卷积层我们先来看什么叫卷积操作: 下图较大网格表示一幅图片,有颜色填充的网格表示一个卷积核,卷积核的大小为3*3。假设我们做步长为1的卷积操作,表示卷积核每次向右移动一个像素(当移动到边界时回到最左端并向下移动一个单位)。卷积核每个单元内有权重,下图的卷积核内有9个权重。在卷积核移动的过程中将图片上的像素和卷积核的对应权重相乘,最后将所有乘积相加得到一个输出。下图经过卷积后形成一个6*4的图。
在了解了卷积操作后我们来看下卷积层的特点。
局部感知
在传统神经网络中每个神经元都要与图片上每个像素相连接,这样的话就会造成权重的数量巨大造成网络难以训练。而在含有卷积层的的神经网络中每个神经元的权重个数都时卷积核的大小,这样就相当于没有神经元只与对应图片部分的像素相连接。这样就极大的减少了权重的数量。同时我们可以设置卷积操作的步长,假设将上图卷积操作的步长设置为3时每次卷积都不会有重叠区域(在超出边界的部分补自定义的值)。局部感知的直观感受如下图:
ps:使用局部感知的原因是一般人们认为图片中距离相近的部分相关性较大,而距离比较远的部分相关性较小。在卷积操作中步长的设置就对应着距离的远近。但是步长的设置并无定值需要使用者尝试。
参数共享
在介绍参数共享前我们应该知道卷积核的权重是经过学习得到的,并且在卷积过程中卷积核的权重是不会改变的,这就是参数共享的思想。这说明我们通过一个卷积核的操作提取了原图的不同位置的同样特征。简单来说就是在一幅图片中的不同位置的相同目标,它们的特征是基本相同的。其过程如下图:
多核卷积
如权值共享的部分所说我们用一个卷积核操作只能得到一部分特征可能获取不到全部特征,这么一来我们就引入了多核卷积。用每个卷积核来学习不同的特征(每个卷积核学习到不同的权重)来提取原图特征。
上图的图片经过三个卷积核的卷积操作得到三个特征图。需要注意的是,在多核卷积的过程中每个卷积核的大小应该是相同的。
2、下采样层(Down—pooling)
下采样层也叫池化层,其具体操作与卷基层的操作基本相同,只不过下采样的卷积核为只取对应位置的最大值、平均值等(最大池化、平均池化),并且不经过反向传播的修改。
个人理解之所以要加下采样的原因是可以忽略目标的倾斜、旋转之类的相对位置的变化。以此提高精度,同时降低了特征图的维度并且已定成度上可以避免过拟合。
网友评论