知乎大佬总结
作者:刘昕宸
链接:https://www.zhihu.com/question/64494691/answer/1545759510
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ResNet解决的其实是一个不符合预期的现象。做实验如果出现了不符合预期的现象,并且在我们的预期没什么问题的情况下,那么一定是哪里出了问题,并且这个问题非常值得解决!
- 前提:网络的不同层可以提取不同抽象层次的特征,越深的层提取的特征越抽象。因此深度网络可以整合low-medium-high各种层次的特征,增强网络表征能力。
- 预期:越深的网络,表征能力应该越强,做分类等任务效果应该越好。
- 现实:
- 更深的56-layer网络在训练和测试结果上均不如20-layer网络!不符合预期的现象出现了!!!这个就是论文中提到的退化问题,而ResNet则正是为了解决这个问题。
- 下面进入碎碎念分析:deeper network准确率饱和后,很快就退化了为什么会这样呢?首先,深度网络优化是比较困难的,比如会出现梯度爆炸/梯度消失等问题。不过,这个问题已经被normalized initialization和batch normalization等措施解决得差不多了。其次,网络更深了,参数更多了,应该拟合能力更强了才对啊!噢,一定是过拟合了。但似乎也不是过拟合的问题:因为56-layer网络(上图红线)的training error(上左图)也比20-layer网络(上图黄线)要高,这就应该不是过拟合了啊!那么究竟是什么原因导致了deeper network degradation问题呢?现在,我们换一种思路来构建deeper network:假设浅层网络已经可以得到一个不错的结果了,那我接下来新增加的层啥也不干,只是拟合一个identity mapping,输出就拟合输入,这样总可以吧。这样的话,我们觉得:这样构建的深层网络至少不应该比它对应的浅层training error要高。对吧。
- 但是实验又无情地打脸。看来,一定是在优化深层网络时出了问题!这种问题导致了深层网络的性能退化,ResNet就是要解决这个问题!怎么解决?ResNet的核心就是residual learning和identity learning by shortcut效果怎么样呢?ResNet解决了退化问题,获得了更高的准确率,实现了更快的收敛速度。
- 更仔细的说明在:https://zhuanlan.zhihu.com/p/268308900