LeNet

LeNet-5是一种经典的卷积神经网络结构,于1998年投入实际使用中。该网络最早应用于手写体字符识别应用中。普遍认为,卷积神经网络的出现开始于LeCun等提出的LeNet网络,可以说LeCun等是CNN的缔造者,而LeNet则是LeCun等创造的CNN经典之作网络结构图由下图所示:

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

LeNet网络总共有六层网络(不包含输入输出层),其中卷积层C3输入:S2中6个特征图组合。

其中输出特征图尺寸大小为:N=(W-F+2P)/S +1 

其中:N为输出尺寸大小,W为输入尺寸大小,F为卷积核尺寸,P为填充值大小,S为步长。

Output层也是全连接层,共有10个节点,分别代表数字0到9。如果第i个节点的值为0,则表示网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。

ImageNet Classification with Deep Convolutional Neural Networks卷积神经网络经典回顾之AlexNet

AlexNet是由Alex Krizhevsky等人在2012年ImageNet图像分类竞赛中提出的一种经典的卷积神经网络。当时,AlexNet在 ImageNet 大规模视觉识别竞赛中取得了优异的成绩,把深度学习模型在比赛中的正确率提升到一个前所未有的高度。 文章中的模型参加的竞赛是ImageNet LSVRC-2010,该ImageNet数据集有1.2 million幅高分辨率图像,总共有1000个类别。测试集分为top-1和top-5,并且分别拿到了37.5%和17%的错误率。这样的结果在当时已经超过了之前的工艺水平。AlexNet网络结构在整体上类似于LeNet,都是先卷积然后在全连接。但在细节上有很大不同。AlexNet更为复杂因此,它的出现对深度学习发展具有里程碑式的意义。AlexNet是在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征。

AlexNet输入为RGB三通道的224 × 224 × 3大小的图像(也可填充为227 × 227 × 3 )。AlexNet 共包含5 个卷积层(包含3个池化)和 3 个全连接层。其中,每个卷积层都包含卷积核、ReLU激活函数和局部响应归一化(LRN)模块。第1、2、5个卷积层后面都跟着一个最大池化层,后三个层为全连接层。最终输出层为softmax,将网络输出转化为概率值,用于预测图像的类别。

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

1、ReLU Nonlinearity(Rectified Linear Unit)

如图是使用ReLUs和tanh作为激活函数的典型四层网络的在数据集CIFAR-10s实验中,错误率收敛到0.25时的收敛曲线,可以很明显的看到收敛速度的差距。虚线为tanh,实线是ReLUs。AlexNet 首次使用了修正线性单元(ReLU)这一非线性激活函数。相比于传统的 sigmoid 和 tanh 函数,ReLU 能够在保持计算速度的同时,有效地解决了梯度消失问题,从而使得训练更加高效。

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

2、Local Response Normalization(局部响应归一化)

局部响应归一化(LRN):LRN是在卷积层和池化层之间添加的一种归一化操作。在卷积层中,每个卷积核都对应一个特征图(feature map),LRN就是对这些特征图进行归一化。具体来说,对于每个特征图上的每个位置,计算该位置周围的像素的平方和,然后将当前位置的像素值除以这个和。计算过程可以用以下公式表示:

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

LRN本质是抑制邻近神经元的响应,从而增强了神经元的较大响应。这种技术在一定程度上能够避免过拟合,并提高网络的泛化能力。

经典卷积神经网络LeNet&AlexNet&VGG-LMLPHP

3、Overlapping Pooling(覆盖的池化操作)

一般的池化层因为没有重叠,所以pool_size 和 stride一般是相等的,例如8 × 8 的一个图像,如果池化层的尺寸是2×2,那么经过池化后的操作得到的图像是 4 × 4大小,这种设置叫做不覆盖的池化操作,如果 stride < pool_size, 那么就会产生覆盖的池化操作,这样可以得到更准确的结果。在top-1,和top-5中使用覆盖的池化操作分别将错误率降低了0.4%和0.3%。论文中说,在训练模型过程中,覆盖的池化层更不容易过拟合。

4、防止过拟合的方法

(1)Data Augmentation(数据扩张,就是对原始数据做一些变化) 数据扩充是防止过拟合的最简单的方法,只需要对原始的数据进行合适的变换,就会得到更多有差异的数据集,防止过拟合。 AlexNet中对数据做了以下操作: 1、随机裁剪,对256×256的图片进行随机裁剪到227×227,然后进行水平翻转。测试的时候,对左上、右上、左下、右下、中间分别做了5次裁剪,然后翻转,共10个裁剪,之后对结果求平均。 2、对RGB空间做PCA(主成分分析),然后对主成分做一个(0, 0.1)的高斯扰动,也就是对颜色、光照作变换,结果使错误率又下降了1%。

经典卷积神经网络LeNet&amp;AlexNet&amp;VGG-LMLPHP

(2)Dropout

Dropout背后有很多有意思的东西,但是在这里我们不需要了解太深,只需要知道Dropout是在全连接层中去掉了一些神经节点,达到防止过拟合的目的,我们可以看上面的图在第六层和第七层都设置了Dropout。

经典卷积神经网络LeNet&amp;AlexNet&amp;VGG-LMLPHP

VGG (VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)

牛津大学的视觉几何组(Visual Geometry Group)设计了 VGGNet(也称为 VGG),一种经典的卷积神经网络 (CNN) 架构。主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,分别是VGG16和VGG19,两者只是网络深度不一样。 VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且参数更少。

经典卷积神经网络LeNet&amp;AlexNet&amp;VGG-LMLPHP经典卷积神经网络LeNet&amp;AlexNet&amp;VGG-LMLPHP

VGG 具有 16 层(VGG-16)和 19 层(VGG-19)的卷积神经网络。VGG-16 由 13 个卷积层和 3 个全连接层组成(层数是计算全连接层的卷积层个数)。 VGG16相比之前网络的改进是3个3*3卷积核来代替7x7卷积核,2个3*3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,减少参数,提升了网络的深度。

经典卷积神经网络LeNet&amp;AlexNet&amp;VGG-LMLPHP

假设输入输出通道都为C(也就是C个卷积核):

3个3*3卷积核参数数量: 3(3*3*C*C)= 27C^2  感受野 3*3 再乘一个通道数C,再乘卷积层数C

1个7*7卷积核参数数量: 7*7*C*C = 49C^2

VGG优点 :

VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。 几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好: 验证了通过不断加深网络结构可以提升性能。

VGG缺点:

VGG耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。 PS:有的文章称:发现这些全连接层即使被去除,对于性能也没有什么影响,这样就显著降低了参数数量。

12-20 01:14