注:本文将会以论文读后笔记的形式呈现,后续不断补充占坑
An Analysis Of Deep Neural Network Models For Practical Applications
在此综述下总结下2015年前的主流CNN架构及其贡献
- LeNet5(1998):
- CNN三特性: 局部感知、下采样、权值共享
- 采用三层架构:卷积、下采样、非线性激活函数(tanh, sigmoid),多层神经网络(MLP)作为最后的分类器
- 后续的CNN架构大多基于LeNet5的这些特性,然而由于当时硬件计算能力限制,后续很长时间神经网络没有发展
- AlexNet(2012): 赢的2012ImageNet冠军,从LeNet5的5层增加到7层
- Network In Network(2013):
- 首次提出在卷积层后再紧跟一个1x1的卷积核对特征进行融合,有效合并卷积特征,减少网络参数
- 违背了LeNet在浅层使用大卷积核的设计原则,但取得了良好效果
- VGG(2014):
- 相比AlexNet使用9x9,11x11这样的大卷积核,VGG使用连续的3x3卷积核,可以获得同样的感受野,而参数数量和计算量可以显著减少
- GoogleNet(2014):
- 提出了Inception局部网络,并通过堆积Inception这样的局部小网络组成大网络
- 类似NiN,使用了1x1的卷积核大幅减少参数数量和计算,即现在的流行的bottlenect layer
- Bottlenect Layer: 先使用1x1卷积减少特征channel数量,再进行卷积,最后再用1x1卷积恢复特征数量,成功的原因是输入特征是相关的,可以适当的用1x1卷积去除冗余
- Inception V3(2015):
- 提出Batch-Normalization,对层的输入进行归一化,有助于训练
最后,使用论文中的一张神图结束这篇论文的笔记,准确率-时间复杂度-参数数量都在下图中很好的呈现了。
2015年前的架构及贡献大致如此,目前更多的都是基于ResNet思想的架构,采用Identity-Map的结构,利于训练超深卷积神经网络
ResNet
增加神经网络的宽度有助于于记忆,深度有助于推理。人们发现增加神经网络的深度可以 提升效果,但是网络越深,梯度消失的现象越明显,使得网络越发难以训练好。Resnet 解决的问题就是,如何在加深网络的情况下,又能解决梯度消失的问题。Renset引入了 残差网络来解决这一问题。进一步分析,实际上Resnet相当于一个多人投票系统,具体分析 可见对Resnet的理解
Wide ResNet
增加模型宽度(即简单的扩大output channel的数量)有助于提升模型效果。提供了另外 一个思路,但效果有限。