深度学习之典型卷积神经网络——LeNet5、AlexNet、ZFNet、VGG

通常只统计具有权重和参数的层,即将一个卷积层+一个池化层算作一个层layer 1,因为池化层没有权重参数,只有一些超参数(filter_size、stride)。也有将卷积层和池化层各自算为一层的情况。

一、LeNet-5

1998年由Yann LeCun提出,用于数字识别的CNN。该模型一共有7层(不含INPUT),结构如下:

(1)卷积层C1

6个5*5的卷积核,不使用padding,步长为1;卷积得到6个特征图,每个特征图的每个神经元与INPUT32*32中5*5的区域相连,特征图长宽为(32-5)/1+1=28。

每个神经元的参数数目(卷积核):5*5个w和1个bias;

连接总数:(5*5+1)*(28*28)*6=122304个;

参数总数:卷积核参数共享 (5*5+1)*6=156个。

输出张量:28*28*6。

 

(2)池化层S2

6个2*2的filter,步长为2;特征图长宽为(28-2)/2+1=14,Max pooling取filter中最大值、Average pooling取filter中的平均值。

连接总数:(2*2+1)*1*14*14*6=5880个;

输出张量:14*14*6。

 

(3)卷积层C3

16个5*5的卷积核,不使用padding,步长为1;特征图长宽为(14-5)/1+1=10。由于层数不相等,C3层每个特征图上每个神经元与S2层中某几层的多个5*5的区域相连,例如对于C3层的第0张特征图,其中每个神经元与S2层的第0~2张特征图共3个5*5个点相连接,如下图所示。

参数总数: (5*5*6+1)*16=2416个;

输出张量:10*10*16。

 

(4)池化层S4

16个2*2的filter,步长为2;特征图长宽为(10-2)/2+1=5。

连接总数:(2*2+1)*5*5*16=2000个;

输出张量:5*5*16。

 

(5)卷积层C5

120个5*5的卷积核,特征图长宽为(5-5)/1+1=1,S4与C5之间相当于全连接。

连接总数=可训练参数:(5*5*16+1)*120=48120个。

输出张量:1*1*120。

 

(6)全连接层F6

与C5层全连接,激活函数为sigmoid,有84个输出。

连接数=可训练参数:(120+1)*84=10164;

输出张量:1*1*84。

 

(7)输出层F7

输出层由欧式径向基函数RBF单元组成,每个RBF的输入为84维向量,计算输入和参数向量(成分为-1,1)之间的欧氏距离,输入离参数向量越远则RBF的输出越大,输出可以被理解为衡量输入和与RBF关联类匹配程度的惩罚项。输出为10维的向量,连接数/可训练参数:84*10=840个。

选择84的原因是:ASCII标准的打印字符是7*12大小的位图bitmap,将84个像素平铺之后的向量作为相应字符的表达,

 

二、AlexNet

AlexNet是2012年ILSVRC(Image Large Scale Visual Recognition Challenge)比赛分类项目的冠军,远超第二名(top5错误率15.3%,第二名26.2%),AlexNet包含5个卷积层,3个全连接层,使用多层小卷积叠加代替单个大卷积,结构如下:

AlexNet主要使用到的新技术有:

(1)使用ReLU作为激活函数,并验证了其在较深网络中的有效性,避免了sigmoid梯度弥散的问题。

(2)在最后几个全连接层使用dropout,随机忽略一部分神经元以避免模型过拟合。

(3)全部池化层使用Max Pooling,避免平均池化的模糊效果;并提出步长比池化核的尺寸小,这样池化层的输出之间会有重叠覆盖,特升了特征的丰富性。

(4)提出LRN(Local Response Normalization,局部响应归一化),对局部神经元的活动创建了竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。本质上LRN是仿造生物学上活跃的神经元对于相邻神经元的抑制现象(侧抑制)。

        b_{x,y}^{i}=\frac{a_{x,y}^{i}}{\left (k+\alpha \sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a_{x,y}^{j})^{2} \right )^{\beta }}

其中a表示第i个卷积核在(x,y)坐标位置经过激活函数的输出值,超参数k=2、N=5(卷积核总数)、ɑ=10e-4、β=0.75,这个式子的含义就是输出一个值和它前后的n个值做标准化。由于增加了计算复杂度,现已很少使用。

(5)使用2个GPU并行加速训练,且GPU间的通讯只在某些层进行,控制了性能的损耗。

(6)数据增强,随机从256*256的原始图像中截取224*224大小的区域,以及水平翻转的镜像;AlexNet论文中还对图像的RGB数据进行PCA处理,并对主成分做一个标准差为0.1的高斯扰动,增加一些噪声,这个Trick可以让错误率再下降1%。

 

三、ZF Net

ZF Net是2013年ILSVRC的冠军,top5错误率为11.2%,结构类似AlexNet。ZF Net的贡献在于使用可视化技术解释了为什么CNNs有效,能够看出前面的层主要学习的是物理轮廓、边缘、颜色、纹理;而后面的层学习的是和类别相关的抽象特征。并通过实验说明在深度增加时,网络可以学习到更好的特征。

(1)可视化feature map,层数越深、特征不变性越强,则类别的判别能力越强;

(2)使用更小的卷积核、步长,保留更多的特征;

(3)使用稠密单GPU的网络结构替换AlexNet的稀疏双GPU结构;

(4)通过遮挡实验找出决定图像类别的关键部位。

 

四、VGG

VGG(Oxford Visual Geometry Group)是2014年ILSVRC比赛的第二名,效果稍逊于GoogLeNet;其贡献在于证明了使用小的卷积、增加网络的深度可以有效提升模型的效果,且对其他数据集泛化能力强,VGG的特点为:

(1)小卷积核:VGG有5个卷积层,每层内卷积核为3*3(少量的1*1),越往后卷积核数量越多。作者认为2个3*3的卷积核堆叠获得的感受野的大小相当于1个5*5的卷积;3个3*3的卷积堆叠相当于1个7*7的卷积;假设输入和输出channel均为C,那么3个3*3的卷积所需参数为3*(C*3*3*C)=27C^2,而1个7*7的卷积所需参数为C*7*7*C=49C^2;

(2)小池化核:相比AlexNet的3*3池化核,VGG全部为2*2的池化核,可以捕获更多细节信息,且全部使用Max pooling,比Average pooling更容易捕捉图像、梯度的变化,体现局部信息差异性,更好的描述边缘、纹理等信息;

(3)层数更深、特征图更宽:基于前两点外,由于卷积核专注于扩大通道数、池化专注于缩小宽和高,使得模型架构上更深更宽的同时,计算量的增加放缓;

(4)LRN层无性能增益:作者通过网络A和A-LRN发现AlexNet曾经用到的LRN层没有性能提升,且增加了计算量,因此在后面4个网络中均不再使用LRN层。

(4)全卷积代替全连接:测试阶段将训练阶段的三个全连接替换为三个全卷积(1个7*7,2个1*1),测试重用训练时的参数,使得测试得到的全卷积网络没有全连接的限制,特征图不会固定,因此网络可以处理任意大小的输入。

VGG的网络结构有如下几种,其中VGG-16和19的效果最好。

 

参考资料

https://blog.csdn.net/NNNNNNNNNNNNY/article/details/70473886

https://blog.csdn.net/strint/article/details/44163869

https://blog.csdn.net/kangroger/article/details/56522132#zfnet

https://blog.csdn.net/qq_31531635/article/details/71104334

http://www.sohu.com/a/214925396_633698

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值