卷积神经网络的发展
由来
人工神经网络(Artificial Neural Networks,ANN):模拟生物神经系统的结构和行为,进行分布式并行信息处理的算法数学模型。ANN通过调整内部神经元与神经元之间的权重关系,从而达到处理信息的目的。
卷积神经网络(Convolutional Neural Network,CNN):前馈神经网络,它由若干卷积层和池化层组成。
感受野(Receptive Field):卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小,通俗点的解释是,特征图上的一个点对应输入图上的区域。
CNN的特点
1.局部区域连接
传统的神经网络结构中,神经元之间的连接是全连接的,即n-1层的神经元与n层的所有神经元全部连接。卷积神经网络中,n-1层与n 层的部分神经元连接。
2.权值共享
权值共享就是整张图片使用同一个卷积核内的参数。比如一个331的卷积核,这个卷积核内9个的参数被整张图片共享,而不会因为图像内位置的不同而改变卷积核内的权系数。
3.权值共享的优点
(1)权值共享的卷积操作保证了每一个像素都有一个权系数,只是这些系数被整个图片共享,因此大大减少了卷积核中参数量,降低了网络的复杂度。
(2)传统的神经网络和机器学习方法需要对图像进行复杂的预处理提取特征,将得到特征再输入到神经网络中。而加入卷积操作就可以利用图片空间上的局部相关性,自动的提取特征。
(3)每一个卷积核只能提取到一种特征,为了增加CNN的表达能力,需要设置多个卷积核。
4.降采样
降采样是卷积神经网络的另一重要概念,通常也称之为池化(Pooling)。最常见的方式有最大值(Max)池化、最小值(Min)池化、平均值(Average)池化。池化的好处是降低了图像的分辨率,整个网络也不容易过拟合。
image.png
卷积神经网络的结构
一个卷积神经网络模型一般由若干个卷积层、池化层和全连接层组成。卷积层的作用是提取图像的特征;池化层的作用是对特征进行抽样,可以使用较少训练参数,同时还可以减轻网络模型的过拟合程度。
卷积层和池化层一般交替出现在网络中,称一个卷积层加一个池化层为一个特征提取过程,但是并不是每个卷积层后都会跟池化层,大部分网络只有三层池化层。
1.卷积层
下图为二维卷积层示例,通常把卷积核k看作一个滑动窗口,这个滑动窗口以设定的步长向前滑动。这里输入图像的大小是44即M=4,卷积核大小为22即k=2,步长为1即s=1,明显可以看出计算输出图像的大小N=3。
image.png两个缺点:(1)每次卷积都会导致图像尺寸的变小,如果图像很小、进行卷积的次数很多,最后可能只会剩下一个像素。(2)输入图像的矩阵边缘像素只被计算过一次,而中间像素被卷积计算多次,这就意味着丢失图像边缘信息。为了解决这两个问题,就需要对输入图像进行填充
(Padding)。
2.池化层
常用的池化函数有Mean-Pooling(均值池化)、Max-Pooling(最大值池化)、Min-Pooling(最小值池化)、Stochastic-Pooling(随机池化)等。
均值池化可以减少邻域大小受限造成的估计值方差,但更多保留的是图像背景信息;
而最大值池化能减少卷积层参数误差造成估计均值误差的偏移,能更多的保留纹理信息;
随机池化虽然可以保留均值池化的信息,但是随机概率值确是人为添加的,随机概率的设置对结果影响较大,不可估计。
池化层比卷积层更大幅度的减少了连接个数,也就是说降低了特征的维度,从而避免过拟合,同时还使得池化输出的特征具有平移不变性。
CNN的发展
2012,Krizhevsky提出AlexNet,在LSVRC取得最佳分类效果
2014,Szegedy提出GoogleNet,超过20层的神经网络,LSVRC-14中取得好成绩
2014,Simonyan提出VGG,18层神经网络,LSVRC-14取得好成绩
2015,He提出ResNet,引入捷径连接技术(shortcut connections)将输入跨层传递并与卷积的结果相加。ResNet使得底层的网络能够得到充分训练,准确率也随着深度的加深而得到显著提升。将深度为152层的ResNet用于LSVRC-15的图像分类比赛中,它获得了第1名的成绩。