『Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning』论文笔记

一 为什么读这篇

Inception系列的官方最后一篇,读完这篇,才能说对整个Inception体系有个初步的了解。


二 截止阅读时这篇论文的引用次数

2018.12.31 1610次。引用越来越少了。


三 相关背景介绍

2016年2月刊发于arXiv,不得不佩服作者的高效,v3发表才过了2个多月,v4就出来了。另外从题目上也可以看出来,有不少借鉴ResNet的地方,问题是ResNet也就出来2个多月。。。作者还是Christian Szegedy和Sergey Ioffe分别以一二作合作完成的。最后投在2017年的AAAI。


四 关键词

Inception v4

Inception-ResNet


五 论文的主要贡献

似乎是首次将Inception和ResNet联合起来一起用


六 详细解读

1 介绍

本文的主要研究就是将ResNet和Inception-v3连接起来。除了直接集成,本文也研究了仅仅让Inception变宽变深能否更有效,因此设计了新版本Inception-v4。Inception-v3由于历史原因有很多包袱(DistBelief的锅。。)

2 相关工作

He认为残差连接是训练非常深的卷积网络的必要条件,而本文的发现不支持这个观点,至少在图像识别领域。在实验部分本文证明了不使用残差连接也可以训练很深的网络,但是用残差连接似乎能明显的加速训练。这里对之前的Inception系列代号重新定义,v1也就是GoogLeNet,v2是BN-Inception,v3就是rethinking那篇分解卷积。

3 架构选择

3.1 纯Inception块

图9是Inception-v4的整体架构,图3,4,5,6,7,8分别是不同结构的Inception块。卷积层有V符号的表示valid padding,没有V符号的表示same padding。

2840317-220b4950b3ff59ff.png
inception_v4-fig9.png
2840317-969d50cfa0f2d74f.png
inception_v4-fig3.png
2840317-6878bdf0a9f25983.png
inception_v4-fig4.png
2840317-73e016fbb47d4d54.png
inception_v4-fig5.png
2840317-559e3d0e9805b342.png
inception_v4-fig6.png
2840317-9a385938468d955b.png
inception_v4-fig7.png
2840317-c3f205e295aa05b3.png
inception_v4-fig8.png

3.2 残差Inception块

对于残差版本的Inception网络,使用更cheap的Inception块,而不是原始Inception块。

作者们试验了几种残差版本的Inception。本文只介绍两种:"Inception-ResNet-v1"和"Inception-ResNet-v2",其中v1的计算量和Inception-v3差不多,而v2和这次提出的Inception-v4差不多。

图15是这两个网络的整体架构。

2840317-c7e0e17116af38f2.png
Inception_v4-fig15.png
2840317-26c3b87340949746.png
inception_v4-fig14.png
2840317-8523cdd3fc3c8a8e.png
inception_v4-fig10.png
2840317-f8db52a5cfaf12ea.png
inception_v4-fig11.png
2840317-107f9f92847cec0c.png
inception_v4-fig12.png
2840317-4ad7477829ece64c.png
inception_v4-fig13.png
2840317-adf40ba419a233a0.png
inception_v4-fig16.png
2840317-ad1efecfa214a159.png
inception_v4-fig17.png
2840317-ec89f5f414db3346.png
inception_v4-fig18.png
2840317-d7753708d3b2954e.png
inception_v4-fig19.png

3.3 残差缩放

实验中发现当filter的个数超过1000时残差的变种就开始明显的不稳定,同时网络也死了。。

另外发现在加残差之前缩小它似乎可以使训练稳定。通常在加法操作前,乘个0.1到0.3的缩放因子给残差。如图20。

2840317-56237a78d593440e.png
inception_v4-fig20.png

当层非常深的时候同时filter很多时,即使用『warm-up』策略训练也还是不稳定,不过缩放残差有用。(把ResNet批判一番。。。)

4 训练方法

起初用带动量的SGD训练,不过效果不如RMSProp。初始lr为0.045,每2个epoch使用0.94的系数指数衰减lr。

5 实验结果

2840317-704cfb4c98776579.png
inception_v4-table3.png
2840317-03842ea5f08e810c.png
inception_v4-table5.png
2840317-245b824ad4277e03.png
inception_v4-fig25.png

6 总结

  • Inception-ResNet-v1:计算代价和Inception-v3差不多
  • Inception-ResNet-v2:更大的计算代价,识别效果明显提升
  • Inception-v4:没有残差连接的纯Inception版本,识别效果和Inception-ResNet-v2差不多,但是没它闭合的快

七 读后感

这是近期所看论文中图最多的一篇,占了一大半的篇幅,文字描述没多少,理论公式更是没有,所以读起来比较轻松。读完后感觉就是一篇灌水文,最大的创新点也许就是联合Inception和ResNet一起用,还有可能是首次。看着那些网络结构,实在是太复杂了,不知道作者是怎么搞出来的,那些魔数,感觉就是一堆魔改,没啥理论,试就完了。读完本文后觉得AutoML确实很有必要,因为Inception-v4的这些结构设计似乎都不靠什么先验知识了,调就是了,如果纯调的话人怎么能调的过机器。

猜你喜欢

转载自blog.csdn.net/weixin_34162401/article/details/87221501