计算机视觉经典论文-CNN
经典论文的框架听完相关的课程,还是记不住/(ㄒoㄒ)/~~
从论文入手,重新整理一遍
争取保证1周一篇,3月底之前完成
VGG:《Going Deeper with Convolutions》
摘要
- 提出Inception深度卷积神经网络架构,其可以提高网络内计算资源的利用流程
- 增加网络深度和宽度的同时,保持计算预算不变
- GoogLeNet,是为ILSVRC2014比赛设计的网络,具有22层深度,在分类任务中获得了第一名
介绍
- 架构具有的参数比AlexNet少12倍
- 随着移动和嵌入式计算的不断发展,算法的效率变得越发重要,尤其是功耗和内存使用
- 深度:1指在网络架构中引用Inception模块;2指增加架构的层数
- 在模型大量使用了额外的1×1卷积,用作降维模块,可以消除计算瓶颈。不仅可以增加网络的深度,同时可以增加网络的宽度(通道数),而不会对性能造成重大影响
- 通过增加网络的深度和宽度提高网络性能,存在两个主要缺点:1.更大的模型规模意味着更大的参数数量,模型容易过拟合,尤其是数据量有线的情况下;2.均匀的增加网络大小会导致计算资源的急剧增加,若没有有效的利用增加的模型容量,会造成计算资源浪费(在计算资源有限的情况下更加关键)。
- Inception提出的目标:通过引入过滤器级稀疏性的架构,引入稀疏计算
网络架构
1.Inception
Inception Module的核心思想:Inception Module基本组成结构有四个成分。1×1卷积,3×3卷积,5×5卷积,3×3最大池化。最后对四个成分运算结果进行通道上组合。通过多个卷积核提取图像不同尺度的信息,最后进行融合,可以得到图像更好的表征。
图b是对图a的改进,即在3×3卷积,5×5卷积前加1×1卷积,目的是为了先进行降维,相比较于原来结构减少了较多参数。而把1×1卷积放在3×3最大池化之后,相比较放在前面,也是为了参数量的减少。
2.GoogLeNet
- 考虑带参数的层为22层,加上池化层为27层
- 由于网络深度较大,需要关注是否能够有效的传回所有层的能力。由于网络中间的层的特征之间有较大的区别,通过添加中间层的两个辅助softmax层(在标识所示第4部分),实现分类器在较低阶段的识别。在提供正则化的同时解决梯度消失的问题。在训练时通过加权的方式加入总损失,推理时不用。(在后续对照实验 中,提升效果较小)
训练策略
- 样本处理:通过比赛证明非常有效的方法:在图像中采样各种size的patch,大小均匀的分布在图像面积的8%到100%之间,纵横比限制在[3/4,4/3];同时光度畸变在解决过拟合问题中有用。
- 通过训练多个模型集成预报(论文中提到训练的7个模型应用相同的初始权重和学习率),并通过对样本图像的各种变化得到了最优效果