本文旨在记录学习残差网络时的笔记。
参考
https://zhuanlan.zhihu.com/p/42706477
https://zhuanlan.zhihu.com/p/80226180
提炼
引出
上面提到的参考文章中,提到了深度学习的”两朵乌云“,分别是梯度爆炸消失 和 网络退化。
梯度爆炸/消失已经可以用BN(batch normalization)来缓解了。
而网络退化是这样一个事实:
理想情况下,假设一个K层的网络是拟合一个问题的最佳网络,即此网络能使目标损失函数达到最小。
- 现在我们有一个K+L层网络,其中的L是恒等变换层,则可以说,此网络和原网络是等价的,至少不会更差。
- 而如果假设K层网络不是一个最佳网络,增加L层的网络,应该能够更好地拟合数据。
总而言之,增加网络的层数不会使结果变差。
然而,事实并非如此。
这篇论文就说明了,在相同迭代次数的情况下,层数多的网络,错误率却更高。
一个合理的猜测就是,对神经网络来说,恒等变换并不容易拟合。
结构
所以就加入了下图这个恒等结构。若Fx无限趋于0,则x+Fx与x是相等的。
残差和误差
很容易混淆的两个概念。
误差的概念应该很清楚。就是真实值和预测值之间的差值。
而残差。。。算了,暂时我也混淆了。还是先学习吧。