LeNet:最早用于数字识别的CNN
C1层是一个卷积层
6个特征图,每个特征图中的每个神经元与输入中55的邻域相连,特征图大小为2828
每个卷积神经元的参数数目:5*5=25个weight参数和一个bias参数
链接数目:(55+1)6(2828)=122304个链接
参数共享:每个特征图内共享参数,因此参数总数:共(551)*6=156个参数
S2层是一个下采样层
6个1414的特征图,每个图中的每个单元与C1特征图中的一个22邻域相连接,不重叠。
和max pooling和average pooling不一样,在S2层中每个单元的4个输入相加,乘以一个可训练参数w,再加上一个可训练偏置b,结果通过sigmoid函数计算得到最终池化之后的值。
连接数:(22+1)11414*6=5880个
参数共享:每个特征图内共享参数,因此有2*6=12个可训练参数
C3层是一个卷积层
16个卷积核,得到16张特征图,特征图大小为10*10
每个特征图中的每个神经元与S2中某几层的多个5*5的邻域相连;
例如:对于C3层第0张特征图,其每一个节点与S2层的第0~2张特征图,总共3个5*5个节点相连接。
S4层是一个下采样层(和S2一样)
由16个55大小的特征图构成,特征图中的每个单元与C3中相应特征图的22邻域相连接。
连接数:(22+1)5516=2000个
参数共享:特征图内共享参数,每个特征图中的每个神经元需要1个因子和一个偏置,因此有2*16个可训练参数。
C5层是一个卷积层
120个神经元,可以看作120个特征图,每张特征图的大小为1*1
每个单元与S4层的全部16个单元的5*5邻域相连(S4和C5之间的全连接)
连接数=可训练参数:(5516+1)*120=48120个
F6层是一个全连接层
有84个单元,与C5层全连接。
F6层计算输入向量和权重向量之间的点积,再加上一个偏置(wx+b),最后将加权值做一个sigmoid转换。
连接数=可训练参数:(120+1)*84=10164
这里选择84作为神经元的数目从论文中可以认为是:ASCII字符标准的打印字符,是用712大小的位图,这里希望每一维特征分别体现标准712大小位图上每一个像素点的特性。
F7层是一个输出层
输出层是由欧式径向基函数(RBF)组成。每一个输出对应一个RBF函数,每一个RBF函数都有84维的输入向量,RBF的函数公式如下。每一个RBF函数都会有一个输出,最后输出层会输出一个10维的向量。
AlexNet:2012年ILSVRC比赛冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积
**AlexNet结构优化 **
非线性激活函数:ReLU
使用Max Pooling,并且提出池化核和步长,使池化核之间存在重叠,提升了特征的丰富性。 防止过拟合的方法:Dropout,Data augmentation(数据增强)
大数据训练:百万级ImageNet图像数据
GPU实现:在每个GPU中放置一半核(或神经元),还有一个额外的技巧:GPU间的通讯只在某些层进行。 LRN归一化:对局部神经元的活动创建了竞争机制,使得其中响应比较大的值变得相对更大,并抑制其它反馈较小的神经元,增强了模型的泛化能力。本质上,LRN是仿造生物学上活跃的神经元对于相邻神经元的抑制现象(侧抑制)
ZF Net:2013ILSVRC冠军
基于AlexNet进行微调
修改窗口大小和步长
使用稠密单GPU的网络结构替换AlexNet的稀疏双GPU结构
Top5错误率11.2%
使用ReLU激活函数和交叉熵损失函数
GoogleNet:2014ILSVRC冠军
Top5错误率6.7%;使用9个inception模块,改变CNN原串行结构,并行,共22层;使用平均池化替代FC层;参数量仅为AlexNet的1/12;使用softmax获取平均结果;网络结构的更新,性能比AlexNet要好;2014年ILSVRC冠军
Inception-v1
橙色框是 stem(左边的方框),包含一些初始卷积。紫色框是辅助分类器。较宽的部分是 inception 模块
由于网络较深,为了阻止该网络中间部分梯度的「消失」问题,V1引入了两个辅助分类器(上图紫色框)。它们对其中两个 Inception 模块的输出执行 softmax 操作,然后在同样的标签上计算辅助损失。总损失即辅助损失和真实损失的加权和。该论文中对每个辅助损失使用的权重值是 0.3。
辅助loss只用于训练,不用于推理。