Deep Residual Learning for Image Recognition这篇文章

时间:2022-01-21 00:23:57

作者:何凯明等,来自微软亚洲研究院;

这篇文章为CVPR的最佳论文奖;(conference on computer vision and pattern recognition)

在神经网络中,常遇到的问题:

1.   当网络变深以后的 vanishing/exploding gradient 问题:  对于这一个问题,现在可以说差不多已经有解决的办法了,如:使用 ReLU激活函数、 良好的权值初始化方法 、还有 intermediate normalization layers(即网络中间的batch normalization);

2. 对于网络过程中的过拟合问题: 解决办法如使用很不错的regularization, 如:权值衰减、dropout方法、maxout(这个?)

3. 现在通过看这篇论文注意到了一个以前没有注意到的问题:

当随着网络的层数深以后,出现一个问题: 网络的训练error与验证error 会变大,比shallow的效果差 (并且这个问题不是由于梯度消失或爆炸问题引起的,而是更深层的优化问题)。。这个现象在很多论文中也已经证明了这一问题; 用文中的图表示:

Deep Residual Learning for Image Recognition这篇文章                         Deep Residual Learning for Image Recognition这篇文章

(左图中可以看出,34层的无论是train error[细线] 还是 validation error[粗线] 是比 18层的大,                  右图同样的现像)

本文的提出的方法就是解决算是解决了这一问题了,甚至把网络的层数加到了152层; 甚至1202层;   使用文中的网络结构得到的误差曲线:(与上面的图分别作比较)

Deep Residual Learning for Image Recognition这篇文章                                       Deep Residual Learning for Image Recognition这篇文章

本文采用的什么方法呢?

使用了 residual learning 方法;     用一个图表示就是:

Deep Residual Learning for Image Recognition这篇文章

假如原始网络想学习一个F(X) + X 的mapping, 现在通过 shortcut connection ,使网络变成学习F(X)就可以了;         用文中的话:

We hypothesize that it is easier to optimize the residual mapping than to optimize the original, unreferenced mapping. To the extreme, if an identity mapping were optimal, it would be easier to push the residual to zero than to fit an identity mapping by a stack of nonlinear layers。

想想是这么个道理,但是呢,我的疑问是::谁能确定怎么知道网络学习得到的mapping, 一定是需要加上X的呢?? 这个会不会限制了网络的representation呢?

一些细节:1. 对于Fx 与X 的dimension不相同是怎么办啦,文中两个方法:要么用0补齐,要么 Linear projection;

2. 文中说了一个 deeper bottleneck 的结构; 文中作用它的目的应该是可以加深网络的结构同时保持或减少着网络的参数;       但是当我看到这里的时候有一个疑问:这个难道不影响网络的representation吗?因为看论文Rethinking the inception architecture for computer vision中提到应该避免 bottleneck啊(原话:Avoid representational bottlenecks, especially early in the network.)

更重要的是:

已经很容易了解了这个网络的具体的implementation, 如何去窥探其内部的本质问题呢?    我现在想的是 为residual learning 就可以呢??需要看看 residual reprentation的相关知识,引用文中的话:

Deep Residual Learning for Image Recognition这篇文章

上面这两段,我不了解,因为以前没有接触过这方面的知识,所以呢,更需要知道 residual representation 如何啊? 所以,下一步,深入数字内部,看一下details;

通过文章,学习到了一个shortcut connection;还是随着网络的加深,网络的性能不下降,并且这个原因不是由于梯度消失或爆炸引起的,而是由于深层网络的本质的难以训练的原因;

文中其它的部分,关乎的具体的实验设置、过程也实验结果的分析;不多说明;

参考:He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.