卷积神经网络典型CNN
- LeNet:最早用于数字识别的CNN
- AlexNet:2012年ILSVRC比赛冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积
- ZF Net:2013ILSVRC冠军
- GoogleNet:2014ILSVRC冠军
- VGGNet:2014ILSVRC比赛中算法模型,效果率低于GoogleNet
- ResNet:2015ILSVRC冠军,结构修正以适应更深层次的CNN训练
卷积神经网络典型CNN-LeNet
C1层是一个卷积层
- 6个特征图,每个特征图中的每个神经元与输入中5*5的邻域相连,特征图大小为28*28
- 每个卷积神经元的参数数目:5*5=25个weight参数和一个bias参数
- 链接数目:(5*5+1)*6*(28*28)=122304个链接
- 参数共享:每个特征图内共享参数,因此参数总数:共(5*5*1)*6=156个参数
S2层是一个下采样层
- 6个14*14的特征图,每个图中的每个单元与C1特征图中的一个2*2邻域相连接,不重叠。因此,S2中每个特征图的大小是C1中的特征图大小的1/4。
- S2层每个单元的4个输入相加,乘以一个可训练参数w,再加上一个可训练偏置b,结果通过sigmoid函数计算
- 连接数:(2*2+1)*1*14*14*6=5880个
- 参数共享:每个特征图内共享参数,因此有2*6=12个可训练参数
C3层是一个卷积层
- 16个卷积核,得到16张特征图,特征图大小为10*10
- 每个特征图中的每个神经元与S2中某几层的多个5*5的邻域相连;
- 例如:对于C3层第0张特征图,其每一个节点与S2层的第0~2张特征图,总共3个5*5个节点相连接。
S4层是一个下采样层
- 由16个5*5大小的特征图构成,特征图中的每个单元与C3中相应特征图的2*2邻域相连接。
- 连接数:(2*2+1)*5*5*16=2000个
- 参数共享:特征图内共享参数,每个特征图中的每个神经元需要1个因子和一个偏置,因此有2*16个可训练参数。
C5层是一个卷积层
- 120个神经元,可以看作120个特征图,每张特征图的大小为1*1
- 每个单元与S4层的全部16个单元的5*5邻域相连(S4和C5之间的全连接)
- 连接数=可训练参数:(5*5*16+1)*120=48120个
F6层是一个全连接层
- 有84个单元(之所以选这个数字的原因来自于输出层的设计),与C5层全连接。
- F6层计算输入向量和权重向量之间的点积,再加上一个偏置。
- 连接数=可训练参数:(120+1)*84=10164
- 84:stylized image:7*12
输出层采用欧氏径向基函数单元
- 给定一个输入模式,损失函数应能使得F6的配置与RBF参数向量(即模式的期望分类)足够接近。
- 每类一个单元,每个单元连接84个输入;每个输出RBF单元计算输入向量和参数向量之间的欧式距离。
- RBF输出可以被理解为F6层配置空间的高斯分布的对数似然【-log-likelihood】
卷积神经网络典型AlexNet
(2012年ILSVRC比赛冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积 )
AlexNet结构优化
- 非线性**函数:ReLU
- 使用Max Pooling,并且提出池化核和步长,使池化核之间存在重叠,提升了特征的丰富性。
- 防止过拟合的方法:Dropout,Data augmentation(数据增强)
- 大数据训练:百万级ImageNet图像数据
- GPU实现:在每个GPU中放置一半核(或神经元),还有一个额外的技巧:GPU间的通讯只在某些层进行。
- LRN归一化:对局部神经元的活动创建了竞争机制,使得其中响应比较大的值变得相对更大,并抑制其它反馈较小的神经元,增强了模型的泛化能力。本质上,LRN是仿造生物学上活跃的神经元对于相邻神经元的抑制现象(侧抑制)
在AlexNet引入了一种特殊的网络层次,即:Local Response
Normalization(LRN, 局部响应归一化),主要是对ReLU**函数的输出进行局部归一化操作,公式如下:
其中a表示第i个卷积核在(x,y)坐标位置经过**函数的输出值,这个式子的含义就是输出一个值和它前后的n个值做标准化。k、n、α、β是超参数,在AlexNet网络中分别为:2、5、10^-4、0.75,N为卷积核总数。
卷积神经网络典型CNN-ZF Net
- 基于AlexNet进行微调
- Top5错误率11.2%
- 使用ReLU**函数和交叉熵损失函数
卷积神经网络典型CNN-GoogleNet
Top5错误率6.7%;使用9个inception模块,改变CNN原串行结构,并行,共22层;使用平均池化替代FC层;参数量仅为AlexNet的1/12;使用softmax获取平均结果;网络结构的更新,性能比AlexNet要好;2014年ILSVRC冠军
GoogLeNet借鉴了NIN的特性,在原先的卷积过程中附加了1*1的卷积核加上ReLU**。
这不仅仅提升了网络的深度,提高了representation power,而且文中还通过1*1的卷积来进行降维,减少了更新参数量 。
NIN模型
Network-in-Network主要思想是,用全连接的多层感知机去代替传统的卷积过程,以获取特征更加全面的表达,同时,因为前面已经做了提升特征表达的过程,传统CNN最后的全连接层也被替换为一个全局平均池化层,因为作者认为此时的map已经具备分类足够的可信度了,它可以直接通过softmax来计算loss了
Inception结构
Inception架构的主要思想是找出如何让已有的稠密组件接近与覆盖卷积视觉网络中的最佳局部稀疏结构。
为了避免patch校准问题,现在的滤波器大小限制在1x1,3x3和5x5,主要是为了方便,不是必要的。
另外,在pooling层添加一个额外的并行pooling路径用于提高效率。
架构的第二个主要思想:在计算要求增加很多的地方应用维度缩减和预测。即,在3x3和5x5的卷积前用一个1x1的卷积用于减少计算,还用于修正线性**。如下图所示,左边是加入维度缩减之前的,右边是加入维度缩减之后的。
卷积神经网络典型CNN-GoogleNet
卷积神经网络典型CNN-VGGNet
ILSVRC2015冠军,比VGG深8倍,超深网络,最高可以达到152层;引入残差结构,更改参数w的修改规则;top-5错误率3.6%;参数更新中使用到RNN的思想
ResNet结构
使用了一种连接方式叫做“shortcut connection”,顾名思义,shortcut就是“抄近道”的意思。
真正在使用的ResNet模块并不是这么单一,文章中就提出了两种方式
实线的的Connection部分(“第一个粉色矩形和第三个粉色矩形”)都是3x3x64的特征图,他们的channel个数一致,所以采用计算方式:
y=F(x)+x
虚线的的Connection部分(”第一个绿色矩形和第三个绿色矩形“)分别是3x3x64和3x3x128的特征图,他们的channel个数不同(64和128),所以采用计算方式:
y=F(x)+Wx
其中W是卷积操作,用来调整x的channel维度的
Shortcut Connection
ResNet结构
卷积神经网络CNN性能演进历程