CNN网络常见模型

大家晚上好!

在阅读文献的过程中发现,有些文章是基于某种CNN模型进行改进(或者说,扩建?哈哈)的,因此总结这篇文章想了解一下常用到的一些网络模型,主要从各个网络的结构、特点入手!

LeNet5

论文:http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

LeNet-5:是Yann LeCun在1998年设计的用于手写数字识别的卷积神经网络,当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一。

基于BP算法:既然我们无法直接得到隐层的权值,能否先通过输出层得到输出结果和期望输出的误差来间接调整隐层的权值呢?BP算法就是采用这样的思想设计出来的算法,它的基本思想:学习过程由信号的正向传播(求损失)误差的反向传播(误差回传)两个过程组成。

结构
AlexNet

论文:http://vision.stanford.edu/teaching/cs231b_spring1415/slides/alexnet_tugce_kyunghee.pdf

AlexNet于2012年由Alex Krizhevsky, Ilya Sutskever 和 Geoffrey Hinton等人提出,并在2012 ILSVRC (ImageNet Large-Scale Visual Recognition Challenge)中取得了最佳的成绩。这也是第一次CNN取得这么好的成绩,并且把第二名远远地甩在了后面,因此震惊了整个领域,从此CNNs才开始被大众所熟知。

引入RELU进行非线性激活:采用修正线性单元(ReLU)的深度卷积神经网络训练时间比等价的tanh单元要快几倍。而时间开销是进行模型训练过程中很重要的考量因素之一。同时,ReLU有效防止了过拟合现象的出现。由于ReLU激活函数的高效性与实用性,使得它在深度学习框架中占有重要地位。

Dropout操作:会将概率小于0.5的每个隐层神经元的输出设为0,即去掉了一些神经节点,达到防止过拟合。那些“失活的”神经元不再进行前向传播并且不参与反向传播。这个技术减少了复杂的神经元之间的相互影响。在论文中,也验证了此方法的有效性。

结构

C1的基本结构为:卷积–>ReLU–>池化

C2的基本结构为:卷积–>ReLU–>池化

C3的基本结构为:卷积–>ReLU。注意一点:此层没有进行MaxPooling操作。

C4的基本结构为:卷积–>ReLU。注意一点:此层也没有进行MaxPooling操作。

C5的基本结构为:卷积–>ReLU–>池化

FC6的基本结构为:全连接–>>ReLU–>Dropout

FC7的基本结构为:全连接–>>ReLU–>Dropout

FC8的基本结构为:全连接–>>softmax 

VGGNet

论文:https://arxiv.org/pdf/1409.1556.pdf

这个网络于2014年被牛津大学的Karen Simonyan 和Andrew Zisserman提出,主要特点是 “简洁,深度”。 深, 是因为VGG有19层,远远超过了它的前辈; 而简洁,则是在于它的结构上,一律采用stride为1的3×3filter,以及stride为2的2×2MaxPooling。所以虽然深,但是结构大家一眼就可以记住。

VggNet一共有六种不同的网络结构,但是每种结构都有含有5组卷积,每组卷积都使用3x3的卷积核,每组卷积后进行一个2x2最大池化,接下来是三个全连接层。在训练高级别的网络时,可以先训练低级别的网络,用前者获得的权重初始化高级别的网络,可以加速网络的收敛. 

结构

作者在原论文中,根据卷积层不同的子层数量,设计了A、A-LRN、B、C、D、E这6种网络结构。

这6种网络结构相似,都是由5层卷积层、3层全连接层组成,区别在于每个卷积层的子层数量不同,从A至E依次增加,总的网络深度从11层到19层。表格中的卷积层参数表示为“conv(感受野大小)-通道数”,例如con3-64,表示使用3x3的卷积核,通道数为64;最大池化表示为maxpool,层与层之间使用maxpool分开;全连接层表示为“FC-神经元个数”,例如FC-4096表示包含4096个神经元的全连接层;最后是softmax层。

其中,D表示著名的VGG16,E表示著名的VGG19。

 LRN(局部归一化):模仿生物神经系统的侧抑制机制,对局部神经元的活动创建竞争机制,使得响应比较大的值会更大,提高了模型的泛化能力。

GooleNet

论文:https://www.cs.unc.edu/~wliu/papers/GoogLeNet.pdf

inception(也称GoogLeNet)是2014年Christian Szegedy提出的一种全新的深度学习结构,在这之前的AlexNet、VGG等结构都是通过增大网络的深度(层数)来获得更好的训练效果,但层数的增加会带来很多负作用,比如overfit、梯度消失、梯度爆炸等。inception的提出则从另一种角度来提升训练结果:能更高效的利用计算资源,在相同的计算量下能提取到更多的特征,从而提升训练结果。 

Inception Module的结构

1x1卷积是一个非常优秀的结构,它可以跨通道组织信息,提高网络的表达能力,同时对输出通道深维降维,Inception Module四个分支都用到了1x1卷积,进行降低成本的跨通道特征变换(1x1卷积可以把相关性高的、在同一个空间位置的但不同通道的特征连接在一起)。

结构

(1)显然GoogLeNet采用了Inception模块化(9个)的结构,共22层,方便增添和修改;

(2)网络最后采用了average pooling来代替全连接层,想法来自NIN,参数量仅为AlexNet的1/12,性能优于AlexNet,事实证明可以将TOP1 accuracy提高0.6%。但是,实际在最后还是加了一个全连接层,主要是为了方便finetune;

(3)虽然移除了全连接,但是网络中依然使用了Dropout ;

(4)为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度。

 (5)上述的GoogLeNet的版本成它使用的InceptionV1结构。

ResNet

论文:https://arxiv.org/pdf/1512.03385.pdf

残差神经网络的主要贡献是发现了“退化现象(Degradation)”,并针对退化现象发明了 “快捷连接(Shortcut connection)”,极大的消除了深度过大的神经网络训练困难问题。神经网络的“深度”首次突破了100层、最大的神经网络甚至超过了1000层。

退化问题:随着网络层数增加,在训练集上的准确率却饱和甚至下降

过拟合问题:在训练集上的效果表现一直很好,在一定范围内波动

为了解决深层网络中的退化问题,可以人为地让神经网络某些层跳过下一层神经元的连接,隔层相连,弱化每层之间的强联系。这种神经网络被称为 残差网络(ResNets) 

残差块

ResNet,于2015年由微软亚洲研究院的学者们提出。引入了residual block(残差块),使网络能够学习恒等映射(identity mapping),从而解决深度神经网络中的梯度消失问题。在传统的卷积神经网络中,每层的输出都是输入的非线性变换。而在残差网络中,残差块通过将输入直接加到非线性变换的输出中,使得网络可以学习恒等映射。

  • 输入 x 经过两个卷积层,得到 F(x)
  • F(x) 与输入 x 相加,即 x + F(x)
  • 最后的输出是 x + F(x),这个输出被传递到下一个残差块。
结构

残差网络的设计非常简单,但却非常有效。每个残差块包含两个卷积层,这两个卷积层之间有一个跳跃连接(skip connection),使得输入可以直接跳过这两个卷积层,与输出相加。这个跳跃连接就是实现恒等映射的关键。

ResNet块中有两种情况:一种情况用图中的实线表示,两层堆叠卷积,没有改变特征图的维度,也就是他们特征图的高、宽和深度都相同,可以直接让F(x)与x直接相加; 另一路用虚线表示,两层堆叠卷积,改变了特征图的维度,需要借助1*1的卷积来调整x的维度,使W(x)与F(x)的维度一致。

今天的学习就到这里了,非常简单的了解了一下常见的五种CNN模型,对一些概念也算是认识了!大家可以参阅引用文章,更深入的探索!

引用文章

深度学习之BP算法

五种经典卷积神经网络(基础铺垫+代码实例)

 深度学习之卷积神经网络CNN 常用的几个模型

AlexNet网络结构详解(含各层维度大小计算过程)与PyTorch实现

手撕 CNN 经典网络之 VGGNet(理论篇)

深度学习饱受争议的局部响应归一化(LRN)详解

Google Inception Net

转载-GoogleNet(Inception)详解(完整结构)

残差神经网络(ResNet)的介绍(这个受益良多)

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值