引言
针对动手学习深度学习这本书中介绍的一些经典的卷积神经网络进行学习差异和特点总结
LeNet
背景
在福岛邦彦提出的神经网络模型上进一步完善,并开创性地提出了卷积神经网络和网络的训练方法,从根源上解决了卷积网络无法训练的难题,自此奠定了卷积神经网络的训练体系和方法。
特点
- 使用了卷积结构简化神经网络模型,并降低模型参数
- 使用梯度下降方法,进行反向传播更新参数,从而达到训练模型的效果
AlexNet
背景
在LeNet出现以后,因为数据,硬件等方面的原因,综合导致卷积神经网络模型还没有引爆学术界对于其的关注,并且也没有辐射到各个领域中,大部分研究人员还是以传统机器学习的方法为主导,但是AlexNet在2012年ImageNet挑战赛上大放异彩,并大幅领先于传统机器学习算法,直接引发大量学者对于卷积神经网络模型的研究热潮。
特点
- 使用ReLU函数作为激活函数,缓解梯度消失和爆炸现象
- 提出了dropout神经元随机失活方法,防止模型过拟合
- LRN,局部抑制,效仿真实神经元的结构而来,后续VGGNet作者实验证明,实际上效果并不大,不过倒是给出了归一化规范处理的思路
- 多路GPU交火,加速了模型的训练,并实现一定的交叉验证效果(实际上效果不大)
差异
相较于前面的LeNet来说,
- 得益于激活函数和DropOut的改进,使得模型层数加深(翻倍),使得模型表现出很好的性能
VGGNet
背景
AlexNet的出现虽然推动了卷积神经网络在全球范围内的普及,但没有提出一个真正意义上的范式,一个模板,如果在硬件性能和数据集十分强大的情况下,是不是可以不停叠加卷积层,从而说新模型呢?VGGNet模块化的结构给出了这个问题的答案。
特点
- 使用块结构,整合了卷积,激活和池化层为一块,实现模块化开发
- 使用了大量的3×3卷积结构(证明了3×3是最有效的)
差异
相较于AlexNet,
- 实现模块化结构,为设计模型提供了一个新思路
NiN
NIN以一种全新的角度审视了卷积神经网络中的卷积核设计,通过引入子网络结构代替纯卷积中的线性映射部分,这种形式的网络结构激发了更复杂的卷积神经网络的结构设计,GoogLeNet的Inception结构就是来源于这个思想
特点
- 对卷积层进行像素级的修改,卷积层的输入和输出由四维张量(样本个数,通道数,高度,宽度)组成,其中高度和宽度是图片的像素级表示。对于每个卷积核生成的特征图进一步使用MLP做堆叠,实现1×1的卷积效果,其中卷积核(高度,宽度,通道数,卷积核个数)中的卷积核个数与MLP中神经元个数相等,即一个卷积核形成的特征图,对应于一个神经元。1x1卷积等效于该像素点在所有特征上进行一次全连接计算,每个卷积核后连接两层的MLP结构。
参考NiN论文解读
- 不设置全连接(FC)层,转而使用**全局平均池化(global average pooling,GAP)**对三层MLP提取出来的特征进行汇聚。
差异
- 使用多层感知机结构来代替卷积的滤波操作,不但有效减少卷积核数过多而导致的参数量暴涨问题,还能通过引入非线性的映射来提高模型对特征的抽象能力。
- 使用全局平均池化来代替最后一个全连接层,能够有效地减少参数量(没有可训练参数),同时池化用到了整个特征图的信息,对空间信息的转换更加鲁棒,最后得到的输出结果可直接作为对应类别的置信度。
GoogLeNet
从NiN网络中获得启发,将1×1卷积的跨通道信息交互的特性融入网络结构中,使得网络结构加深
特点
- 最具特色的一个点当属网络结构中的Inception块。通过不同大小的卷积核的应用,能够识别不同维度的特征,同时最终汇聚时,再将不同卷积核提取的特征进一步融合,使得网络能够设计的更深
- 模型轻量化。同当年比赛的VGGNet以及前面的AlexNet等网络相比,在保证性能的同时,还能不占用大量的计算机资源,其中1×1卷积的应用功不可没。
- 全局平均池化应用替代全连接层(FC)。
差异
- 模型设计更深,更复杂。
- 运算速度更快,模型轻量化。