大家好,欢迎来到IT知识分享网。
1 vgg模型
1.1 vgg概述及优点
论文地址
- VGGNet突出贡献是证明了很小的卷积,通过增加网络深度可以有效提高性能;
- 小卷积核组:通过堆叠多个3*3的卷积核来替代大的卷积核,以减少所需参数;全部使用3×3卷积核,不仅会涉及到计算量,还影响到感受野。在VGG中,使用3个3×3卷积核来替代7×7卷积核,主要目的是保证在具有相同感受野的条件下,提高网络深度,一定程度上提升神经网络的效果。
那么什么是感受野呢?
如何影响计算量、参数量的呢?
- 小池化核:vgg使用的池化核大小为22,而在AlexNet中使用的是33的池化核;
- 去掉LRN层:在AlexNet中,加入了LRN(局部响应归一化)来优化模型,但在vgg中,作者发现LRN层作用不明显,因此去掉。
1.2 vgg缺点
- 全连接层神经元多,因此参数量大,计算量大,训练耗时;
- 占用内存大
1.3 vgg结构
- 作者利用控制变量的思想,进行了六次实验,最终得到了分类结果最好的两个模型——vgg16和vgg19
- 作者进行的六次实验如下图所示:
2 ResNet模型
2.1 ResNet概述
- ResNet(残差神经网络)由微软研究院何恺明等人提出,并斩获2015年ImageNet竞赛中分类任务第一名、目标检测第一名
- 主要贡献是发现了==“退化现象(Degradation)”,并针对退化现象发明“直连边/短连接(Shortcut connection)”==,极大消除在vgg中出现的神经网络深度过大导致训练困难问题。在实验中,作者评测了一个深度152层(是vgg的八倍)的残差网络,结果获得了比vgg更低的复杂度。
什么是退化现象呢?
退化现象是指随着层数加深,首先训练准确率会逐渐趋于饱和;但若层数继续加深,反而训练准确率下降,效果降低。注意这种下降不是由于过拟合造成的(因为如果是过拟合的话,训练时误差应该很低而测试时很高)
2.2 ResNet优点
- 残差网络的机构更利于优化收敛
- 残差网络解决了退化问题
- 残差网络可以在拓展网络深度的同时,提高网络性能(相比于vgg的优点)
2.3 ResNet结构
- 在ResNet中,传递给下一层的输入变为H(x)= F(x)+ x,来拟合残差F(x)=H(x) – x。
为什么这样做呢?
假设一个网络A的训练误差为x,那么在A的基础上添加几个层来构建网络B的话,训练误差也为x。如果出现B的训练误差高于A的情况(退化现象),说明我们应该跳过这些层,从A构造恒等映射。因此可以在输入和输出中添加直连路径shortcut,这个过程只需要学习已有的输入特征。由于C只学习残差,该模块叫作残差模块。
- 对于shortcut connection,有两种方式:
① 当输入维度与输出维度相同时,直接使用恒等shortcuts,即将F(x)和x逐元素相加
② 当输入维度与输出维度不同时,可以考虑两个选项:(A)shortcut仍然使用恒等映射,在增加的维度上使用0来填充;(B) 通过1×1的卷积使得维度保持一致
2.4 ResNet实验结果
- 作者首先评估18层和34层的plain网络。实验结果产生的一种退化现象:在训练过程中34层的网络比18层的网络有着更高的训练错误率。
- 接着对18层和34层的残差网络进行评估。为了保证标量一致性,其基本框架和plain网络结构相同,只是在plain网络基础上加入了shortcuts连接
- 结果显示,
(1) 与plain网络相反,34层的resnet网络比18层的错误率更低,表明可以通过增加深度提高准确率,解决了退化问题。
(2) 与plain网络相比,层次相同的resnet网络上错误率更低,表明残差网络在深层次下仍然有效。
(3) 对于18层的plain网络,它和残差网络的准确率很接近,但是残差网络的收敛速度要更快。
3 DenseNet模型
3.1 DenseNet概述
- DenseNet的一大特点是通过特征在通道上的连接来实现特征重用,这个特点让DenseNet的参数量和计算成本更少,效果也更好。
- DenseNet的基本思路与ResNet一致,但它建立了前面所有层和后面层的密集连接,DenseNet也因此得名。
3.2 DenseNet结构
使用DenseBlock+Transition的结构
3.2.1 DenseBlock
由以上图可知,每个Dense Block包含五层,每个层的特征图大小相同。可以看出,对于每一个DenseBlock,每一层的输入都来自它前面所有层的特征图,每一层的输出均会直接连接到它后面所有层的输入。所以对于一个L层的DenseBlock,共包含L(1+L)/2个连接
注意:
- 假定输入层的特征图channel数为k0,DenseBlock中各个层卷积之后均输出k个特征图,即得到的特征图的channel数为k。由于每一层都要接受前面所有层的特征图,那么l层输入的channel数为k0+(l-1)l
- 在DenseBlock中,采用BN+ReLu+3x3Conv的结构(与平常所见的Conv+ReLu+BN不同)。这是因为,采用了特征重用后,如果先采用卷积层,会包含前面所有层的输出特征,数值分布差异比较大。所以,先采用BN层将数值进行标准化。
3.2.2 Transition
- 在两个相邻的DenseBlock之间,采用Transition层进行连接,主要作用是整合上一个DenseBlock的特征,缩小上一个DenseBlock的宽高,使得特征图宽高减半,压缩模型。
- Transition层结构为:BN+ReLu+1×1 Conv+2×2 AvgPooling
- 通过Pooling使特征图大小降低
3.3 DenseNet优缺点
- 优点:
(1) 相比ResNet使用更少参数数量,且计算效率更高,效果更好;
(2) 通过特征重用,可以同时利用高层次和低层次的特征;
(3) 缓解了梯度消失/爆炸和网络退化问题。 - 缺点:
(1) 由于特征重用,数据需要被复制多次,空间占用率高,显存增加较快。因此训练时间要比ResNet长
未完待续(持续更新 5.18)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117795.html


