经典的卷积神经网络架构有 LeNet-5 architecture 、AlexNet(2012)、GoogleNet(2014)、VGGNet(2014)、ResNet(2015)。
后面四位它们分别是ILSVRC比赛分类项目的2012年冠军、2014年冠军、2014年亚军和2015年的冠军。
一、 LeNet-5 architecture 可能是最受欢迎的CNN 的架构,被广泛用于手写字体识别(MINIST)。其包含的每层的结构如下:
有几点细节需要注意的是:
1、MINIST 图片的像素是28x28,在送入神经网络之前,对图片进行了zero-padding , 填充后的像素为32x32,并进行了归一化处理,但是后面的神经网络并没有进行zero-padding。
2、平均池化层比一般的更加复杂, 使用 输入的平均值乘以可学习的系数再加上可学习的偏置,最后再通过激活函数。
3、输出层有点特殊: 每个神经元输出其输入向量和权重向量的欧几里得距离的平方,而非输入计算向量和权重向量的点积。
每个输出计算有多少图片属于特定的数字类。交叉熵 代价函数更加适合,因为它可以对错误预测进行的惩罚更多,可以产生较大的梯度从而更快地收敛。
二、AlexNet
AlexNet 和 LeNet-5 比较相似,整个AlexNet有8层,前五层为卷积层,后三层为全连接层。最后一层拥有1000类输出的softmax层用作分类。
Alexnet中主要使用的技巧有 :
①使用RELU作为CNN的激活函数,验证了其效果在较深的神经网络上超过了sigmoid,解决了sigmoid在网络较深时的梯度弥散(梯度消失)问题。
②使用了Dropout 随机忽略一部分神经元,来避免过拟合。
3、此前CNN普遍使用平均池化,Alexnet则全部使用最大池化,避免平均池化的模糊效果。并且Alexnet中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠,提升了特征的丰富性。
④提出LRN层, 对局部神经元的活动创建竞争机制,是的其中响应比较大的值变得相对更大,并抑制反馈较小的神经元,增强了模型的泛化能力。
5、使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时的大量矩阵运算。
三、VGGNet
VGGNet通过反复堆叠3x3的小型卷积核和2x2的最大池化层,通过不断加深网络结构来提升性能。VGGNet有5段卷积,每一段有2~3个卷积层,唐诗每段尾部会连接一个最大池化层俩虽小图片尺寸。每段内的卷积核数量一样,越靠后的段的卷积核数量越多,从开始的64个卷积核到512个卷积核。
其中经常出现多个完全一样的3x3的卷积层堆叠在一起的情况,这是非常有用的设计。两个3x3的卷积层串联相当于1个5x5的卷积层,三个3x3的卷积层串联的效果,相当于1个7x7的卷积层。但是前者的参数量止呕后者的55%((3x3x3)/(7x7)=0.55).最重要的是前者拥有更多的非线性变换,是的CNN对特征的学习能力更强。
四、GoogleNet
五、ResNet(Residual Neural Network)
ResNet通过使用Residual Unit成功训练152层深的神经网络,同时,参数量却比VGGNet低,ResNet的结构可以极快的加速超神神经网络的训练,模型的准确率也有非常大的提升。
ResNet引入残差网络(Residual Network),通过残差网络,可以把网络层弄得很深,最终网络分类的效果也非常好。残差网络的的基本结构如图所示:
在残差单元中,可以看大输入分为了两部分,一部分经过原来的神经网络单元到输出,另一部分直接连到输出,两部分的结果相加后得到输出结果。假定某段神经网络的输入是x, 期望输出是H(x),如果我们直接把输入x传到输出作为初始结果,那么此时需要学习的目标就是F(x)=H(x)-x。ResNet相当于改变了学习目标,不再是学习一个完整的输出,只是输出和输入的差别,即残差F(x)。
残差网络设计的原因是:传统的神经网络对深度特别敏感,首先复杂度随深度增加而急剧增加,再次加深深度后,输出层的残差很难传递前面几层,导致训练效果在测试集和误差集上的误差都增大。残差网络通过将输入连接到输出这样的“高速通道”,可以让输出层的残差传递更远,同时训练更深的网络,表现更好的效果。