参考:
CNN系列模型发展简述(附github代码——已全部跑通) - KevinCK的文章 - 知乎 https://zhuanlan.zhihu.com/p/66215918
演变
LeNet
1998年,手写数字模型,CNN兴起的标志模型
相比前人(多层感知机):
- conv
- maxpool
AlexNet
2012年,2012ImageNet冠军
- 更深
- relu, 解决了sigmoid梯度消失问题
- 归一化LRN(Local Response Normalization)
- dropout
- 数据增广(裁剪、旋转)
- 由于算力限制将图像分为上下两块训练后在全连接层合并
VGGNet
2014年, ImageNet2014中定位和分类跟踪中第一和第二 分为VGG16和VGG19(差不多)
- 证明了增加网络的深度能够在一定程度上影响网络最终的性能。
- 采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)(减少参数,增加非线性层)
一文读懂VGG网络 - Amusi的文章 - 知乎 https://zhuanlan.zhihu.com/p/41423739
GoogLeNet V1
2014年, ILSVRC2014冠军
- inception: 通过多个卷积核提取不同尺度的信息最后融合,“加宽”
- Average Pool代替全连接层(可以提升0.6%)
- 辅助的softmax分支:1)避免梯度小时,用于传导梯度;2)中间输出用作分类,进行模型融合
inception
同时采用多种感受野的卷积去提取特征,可以同时提取多尺度的特征。 需要注意的是,每个卷积核前面有1x1卷积,它的作用是降低参数量(降维),并且增加非线性层。
GoogLeNet V2 V3
2015年,同篇论文发布了V2和V3
V2:
- 学习VGGNet,用两个33代替55。降低参数量,没有性能损失。
- 将 n x n 卷积分解为 1 x n 和 n x 1 两个卷积的组合。降低参数量。(网络前期用这个效果不好,中期比较好?)
- 采用concate pooling + conv 的方式来代替先pooling后conv或者先conv后pooling的方式,来降低参数量
V3:
- RMSProp优化器
- BN
- label smoothing
RMSProp优化器 限制了垂直方向上的振荡,在水平方向上采取更大的step,进行更快的收敛
ResNet
15年, ILSVRC和COCO 2015 5项第一, CVPR2016最佳论文
Dilated Convolutional Networks
2016, ICLR 空洞卷积,增大感受野不丢失信息
DenseNet
2017, CVPR2017最佳论文
- 每一层都直接与其前面层相连(concat),提高特征利用率
- 每层卷积的输出通道数通常很窄,只要几十,学出的特征图和输入concate使用
DenseNet:比ResNet更优的CNN模型 - 小小将的文章 - 知乎 https://zhuanlan.zhihu.com/p/37189203
SENET
2017, ImageNet2017冠军, CVPR2017 channel attention
Deformable Convolutional Networks
2017年
使用deformable convolution(卷积形状可变)适应物体的几何形变机制
正常卷积:
可变卷积:
就是还有个参数offset,决定了图像采样位置的偏移点
Deformable Convolutional Networks - dilligencer的文章 - 知乎 https://zhuanlan.zhihu.com/p/85591436
Non-Local Networks
2018, CVPR2018
使用non-local机制(计算每一个像素位置对当前像素位置的关联性权重),增大感受野
- 对于视频分类,non-local会好于相应的一般网络,毕竟没有大的感受野未必能很鲁棒的捕捉一个动作到底是跳高还是跳水。
- 依据作者们的结论,在网络浅层效果会更好,毕竟随着网络深度增加,传统网络感受野也会增加了,Non-local的效果也就不再明显。
来源:oschina
链接:https://my.oschina.net/u/4415723/blog/4496752