深度学习中几个经典网络架构的简单介绍
前言先简单说一下CNN一些经典案例和 ImageNet 图像分类竞赛的历年冠军(深度学习网络发展史):
神经网络 | 年份 | 标签 | 作者 |
---|---|---|---|
LeNets | 1998年 | CNN开山之作 | 纽约大学 |
AlexNet | 2012年 | ImageNet冠军 | 多伦多大学 Hinton团队 |
ZFNet | 2013年 | ImageNet冠军 | 纽约大学 |
GoogLeNet | 2014年 | ImageNet冠军 Inception模块 | 谷歌 |
VGG | 2014年 | ImageNet亚军 VGG-16和VGG-19 | 牛津大学 |
NiN | 2014年 | Network in Network(网中网) GAP(全局平均池化) | 新加坡国立大学 |
ResNet | 2015年 | ImageNet冠军 残差网络 | 何凯明团队 微软亚院 |
Wide ResNet | 2016年 | 增加残差中卷积核数量(宽度) | 谢尔盖·扎戈鲁科 |
Squeeze Net | 2016年 | 轻量级网络 压缩参数量 | 斯坦福大学 伯克利大学 |
SENet | 2017年 | ImageNet冠军 SE模块 | momenta + 牛津大学 胡杰 |
ResNext | 2017年 | Resnet + Inception | Saining Xie团队 |
DenseNet | 2017年 | CVPR最佳论文 Dense模块 | 康奈尔大学 清华大学 |
FractalNet | 2017年 | 分形网络 | Gustav Larsson团队 |
MobileNets | 2017年 | 轻量级 Group卷积和Depthwise Seperable卷积 | 谷歌 |
NASNet | 2018年 | 神经架构搜索 强化学习 | 谷歌 |
一、Alexnet
Alexnet是2012年 ImageNet 竞赛的冠军网络,论文是《ImageNet Classification with Deep Convolutional Neural Networks》,作者是多伦多大学的Alex Krizhevsky等人。
AlexNet有60 million个参数和65000个 神经元,五层卷积,三层全连接网络,最终的输出层是1000通道的softmax。
上面的图是整个网络的架构,论文中提到这两部分网络是分别对应两个GPU,只有到了特定的网络层后才需要两块GPU进行交互,这种设置完全是利用两块GPU来提高运算的效率,其实在网络结构上差异不是很大,所以下面这幅图分为上下两个部分的网络。
二、VGG
VGG是2014年的网络,2014年 ImageNet 竞赛的亚军(冠军是GoogLeNet)。作者是牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起。论文《Very Deep Convolutional Networks for Large-Scale Image Recognition》。论文主要针对卷积神经网络的深度对大规模图像集识别精度的影响,主要贡献是使用很小的卷积核(3×3)构建各种深度的卷积神经网络结构,并对这些网络结构进行了评估,最终证明16-19层的网络深度,能够取得较好的识别精度。 这也就是常用来提取图像特征的VGG-16和VGG-19。
VGG有 vgg-16 和 vgg-19,16层(主流版本)和19层,为什么不做17层,18层,20层呢?或者为什么不直接做到100层?理论上网络越深越好,但因为在实验上,随着卷积层的增加,不一定再提取的特征都有意义,效果不一定好,最终效果出来的是16层和16层,其他的网络效果没有他们两个好。也就是如果神经网络越来越深,这个神经网络可能会出现退化(degradation) 的现象。这里说的“退化”是指网络层级加深后,训练的准确率却可能出现饱和的现象。解决方案是2015年何凯明大神提出来的 Resnet 残差网络,它可以同等映射,下面会有简单的介绍。
VGG可以看成是加深版的 AlexNet ,整个网络由卷积层和全连接层叠加而成,和AlexNet不同的是,VGG中使用的都是小尺寸的卷积核(3×3)。
三、Resnet
Resnet是2015年 ImageNet 比赛的冠军(计算机视觉首次超越人类视觉),它一下子将网络深度提升到152层,将错误率降到了3.57,在图像识别错误率和网络深度方面,比往届比赛有了非常大的提升。作者是何凯明等大神,论文是《Deep Residual Learning for Image Recognition》。ResNet 的 Res 也是 Residual 的缩写,它的用意在于基于残差学习,让神经网络能够越来越深,准确率越来越高。
Resnet模型与VGG网络相比,有更少的滤波器和更低的复杂度。Resnet的34层基准有36亿FLOP(乘加),仅是VGG-19(196亿FLOP)的18%。
建议大家把 Resnet 作为一个特征提取网络,而不是一个分类网络,对于一个网络是分类还是回归,决定的是这个网络的损失函数和最后面的层是怎么连的。Resnet常见的有50层和101层,可以用于物体检测,分类的,检索的等等,是个通用的经典网络。
捷径连接通常会跳过 1 个或者多个层,在 ResNet 中快捷连接直接运用了 identity mapping,意思就是将一个卷积栈的输入直接与这个卷积栈的输出相加。
ResNet 采用的是用 1x1 的卷积核去应对维度的变化,通过 1x1 的卷积核去对输入进行升维和降维。1x1 的卷积核让整个残差单元变得更加细长,这也是 bottleneck 的含义,更重要的是参数减少了。
ResNet 的起始是从一个常规的比较浅的网络上探求加层的过程。作者对 VGG-19 进行仿制与改造,得到了一个 34 层的 plain network,然后又在这个 34 层的 plain network 中插入快捷连接,最终形成了一个 34 层的 residual network。
ResNet 本身层级越多准确率越高。残差块的质量比数量更重要。
参考:
深入理解AlexNet网络:https://blog.****.net/luoluonuoyasuolong/article/details/81750190
经典神经网络 ResNet 论文解读:https://blog.****.net/briblue/article/details/83544381