一、经典CNN网络结构
1.LeNet
LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络。
网络包括七层结构:
- C1卷积层
- S2下采样层
- C3卷积层
- S4下采样层
- C5卷积层
- F6全连接层
- F7输出层
2. AlexNet
AlexNet是在LeNet的基础上加深了网络的结构,可以学习到更高维的图像特征。AlexNet包括8层权值网络层:五层卷积+三层全连接,使用了两块显卡训练了6天,在2012年ImageNet大赛上取得了冠军。
AlexNet网络在结构上的优化:
引入了一种特殊的网络层次:Local Response Normalization(LRN,局部响应归一化),主要是对Relu激活后的输出进行局部归一化操作。
每个卷积层使用了不同的滤波器进行卷积计算:
第一层卷积核尺寸:
第二层卷积核尺寸:
第3~5层卷积核尺寸:增加了Max Pooling层
使用ReLu作为激活函数,替换了之前的sigmoid函数
使用Dropout抑制过拟合
使用了数据增强
使用了带动量的SGD(momentum)
多GPU训练
3.ZFNet
在AlexNet的基础上,进行了微调:
- 修改了滤波器尺寸和步长:
第一层的滤波器- 尺寸从 减小为
第一层的步长(stride)从4降到2 - 使用单GPU代替了AlexNet的双GPU结构
4.VGGNet
使用了非常统一的串行结构,是传统CNN神经网络中最优的模型。
网络特点:
- 使用了更小的滤波器
- 参数非常多:包含了1亿3千8百万参数
- 使用了4个GPU训练了3个星期
- 虽然是亚军,但是却非常普遍的用于特征提取/图像表达
总结:
5.GoogleNet
GoogleNet是基于Inception模块的深度神经网络模型。在2014年的ImageNet竞赛中夺得了冠军,在随后的两年中一直在改进,形成了Inception V2、Inception V3、Inception V4等版本。
网络特点:
- 改变了CNN网络的串行结构,变为并行
- 使用了Batch Normalization
- 使用了Inception模块
- 使用了图像增强、RMSprop优化器
- 使用了比较小的滤波器,虽然有22层,但总参数只有4百万
使用较大的卷积核往往意味着巨大的运算量,理论已经证明,往往可以通过几个较小的卷积核来代替较大的卷积核,从而使得计算量的下降。
1)Inception原始网络结构,将1x1,3x3,5x5的conv和3x3的pooling堆叠在一起,一方面增加了网络的宽度,另一方面增加了网络对尺度的适应性。
2)Inception改进后的网络结构,借鉴了的思想,在原先的卷积过程中使用的卷积,通过减少通道数,以期达到减少参数计算量的目的。
* NIN(network-in-network)
的卷积可以用来进行降维打破计算的瓶颈,同时也能增加网络的宽度,保持网络较高的性能。
* Inception结构参考链接:https://www.jianshu.com/p/d214112771b9
6.ResNet
- 解决了深度神经网络的‘网络退化’问题
- 解决了深度神经网络的梯度消失问题
残差结构:
ResNet模块:
ResNet网络结构: