1. 动机
- 卷积神经网络(CNN)是一种生物启发的MLPs的变种,从Hubel和Wiesel早期对猫的视觉皮层的研究中,我们得知视觉皮层包含了复杂的神经元组织形式。每个神经元只对视觉区域中一个小的局部区域敏感,一个小的局部区域被称为对应神经元的感受野,它们平铺起来覆盖了整个视觉区域。这些神经元的作用如同对输入空间的局部滤波器,并很好的适用于发现自然图像中很强的空间局部相关关系。
- 两种基本的神经元为S细胞(Simple Cell)和C细胞(Complex Cell)。S细胞在自身的感受野内最大限度地对图像中类似边缘模式的刺激做出响应,而C细胞具有更大的感受野,它可以对图像中模式的精确空间位置具有局部不变性。
2. 三大特点
1. 稀疏连接:
CNN通过加强神经网络中相邻层之间节点的局部连接模式来挖掘自然图像的空间局部关联信息。第
m
层节点的输入只是第
2. 权值共享:
每一个滤波器 fi 在整个视觉区域都是重复的,即在一个滤波器与上一层的一张特征图进行卷积时,该滤波器的参数都是相同的,因而对于卷积的结果来说就是共享了参数(权重和偏置)。在下图中,紫色方框中的神经元在同一张特征图中,颜色相同的权重是被共享的(相同的)。
重复的滤波器能够在检测特征时可以不用考虑位置信息,并且共享权值可以极大的减少了待学习的自由参数的个数从而提高了学习效率。这种特点可以让CNN在视觉问题中具有更好的泛化能力。
权值共享可以这样解释:
1. 在图像数据中,一个值的附近的值经常是高度相关的,可以形成比较容易被探测到的有区分性的局部特征。
2. 图像的局部统计特征经常是位置不变的,在一个地方出现的某个特征,也可能出现在别的地方,所以不同位置的像素可以共享权值来探测一张图像中不同位置的相同特征。
3. 多特征图:
特征图是通过不断的对图像的子区域在一个线性滤波器上做卷积,增加一个偏置项,在此结果上再作用一个非线性函数得到的。为了更好地表示数据,隐层通常由多个特征图构成,隐层的权值
W
可以表示为一个4维张量(本层特征图组合个数
上图显示了两个相邻的卷积层。
利用共享权值的方法重复以上操作,就得到了特征图 h0m 。同样,再选取另外4个大小为2 × 2的滤波器 w10 , w11 , w12 , w13 就可以得到特征图 h1m 。
注意:这里共享权值的意思是 h0m 来自于 h0m−1 分量的连接权重都是 w00 ,来自于 h1m−1 分量的连接权重都是 w01 ,等等。而稀疏连接的意思是 h0m 中的每个像素点都只与 h0m−1 的2 × 2大小内的像素点连接,与 h1m−1 也是2 × 2大小内的像素点连接,等等。
3. 两个操作
1. 卷积
实际的一张特征图还要将卷积后的所有像素加上同一个偏置,再进行非线性变换才得到
2. 最大池化
最大池化(max-pooling)是一种非线性的下采样的方法。最大池化把输入图像分割成为不重叠的子区域,每一个子区域都只输出最大值。
最大池化的原因有两个:
- 降低了上层的计算复杂度。
- 提供了变换的不变性,对于位移变化有着良好的鲁棒性
作用解释
卷积层的作用是探测上一层特征的局部连接
池化层的作用是把在语义上相似的特征合并起来
4. 例子LeNet
模型的低层由卷积层和最大池化层交替排列组成,高层是一个全连接层,就是MLP神经网络(隐层+逻辑回归),全连接层的输入是它之前一层的所有特征图展开成一维构成的向量。因此在低层的四维张量在高层中展开成为了二维矩阵,从而能够顺利应用MLP。
注意:这里实现的LeNet与原始的不一样,即在两层相邻的多特征图的组合中,这里使用了全连接(把 n 个卷积图全部相加),而不用部分连接(在
n 个卷积图中按照一定的选取规则部分相加),这是由于现在计算机已经能够快速处理全连接结构,而且可以使用更好的方法来减少待学习的自由参数的数量。
5. 超参数选择技巧
1. 卷积层滤波器数量
计算一个卷积层滤波器的激活函数比计算传统的MLP的代价要高很多。假设第
l−1
层包含了
Kl−1
个特征图和
M×N
个像素(特征图大小乘以特征图数量),在
l
层有
因为特征图的大小
M
随着层次深度的加大而变小,为了使得每一层的计算量保持一致,特征图的大小乘以特征图的数量在各层应该大致保持一个常量,所以特征图的数量
2. 滤波器形状
形状应该视数据集图片的大小而定。为了得到良好的特征提取效果,应该在给定数据集的情况下寻找相同粒度的滤波器形状。
3. 最大池化形状
典型的取值是2 × 2或者不用最大池化,比较大的图像可以在低层用4 × 4的池化。但是要需要注意的是,这样的池化在降维的同时也有可能导致信息严重损失。