赞
踩
都知道何凯明大神的ResNet是为了解决“网络退化”问题,所谓的“网络退化”是指随着网络层次的加深,到达一定深度后,网络模型的性能不升反降,这被称为“网络退化”。如下图所示。
随着网络层次的加深,网络变得难以训练,不易收敛,原因在于随着网络层次的加深,深层梯度难以反向传播到浅层,即使传播到浅层,浅层的梯度值也小的可怜。
而ResNet利用残差连接,为什么能将网络做到很深的呢?其背后的原理是怎样的呢?刚入门深度学习时,没有认真考虑背后的原理,只是单纯地知道ResNet中残差连接到引入是为了解决“网络退化”问题,是为了网络更好的收敛。
首先回顾一下经典的残差结构,到现在为止,残差结果仍然广泛地应用于深度学习中,足以看出残差连接的重要性。
我们尝试对一个残差模块做前向传播的推导:
前向传播:
后向传播:
我们求loss function L对输入x的偏导数,即:
可以看到,如果没有残差结构,3个偏导数的乘积随着网络层次的加深会非常小,梯度到达饱和状态,网络不容易收敛。
而加入残差连接后,即使3个偏导数的乘积再小,但+1的操作使梯度值大大增加,非线性激活函数也到达非饱和区,这样做的好处在于:即使网络做的非常深,网络也是容易收敛、容易训练的!
-------------------------------------------------------------------------------------------------------------------------------
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。