Deep Learning tips -- ResNet的残差连接为什么是有用的?
Posted 奋斗の博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Deep Learning tips -- ResNet的残差连接为什么是有用的?相关的知识,希望对你有一定的参考价值。
一、前言
都知道何凯明大神的ResNet是为了解决“网络退化”问题,所谓的“网络退化”是指随着网络层次的加深,到达一定深度后,网络模型的性能不升反降,这被称为“网络退化”。如下图所示。
随着网络层次的加深,网络变得难以训练,不易收敛,原因在于随着网络层次的加深,深层梯度难以反向传播到浅层,即使传播到浅层,浅层的梯度值也小的可怜。
而ResNet利用残差连接,为什么能将网络做到很深的呢?其背后的原理是怎样的呢?刚入门深度学习时,没有认真考虑背后的原理,只是单纯地知道ResNet中残差连接到引入是为了解决“网络退化”问题,是为了网络更好的收敛。
二、背后的数学原理
首先回顾一下经典的残差结构,到现在为止,残差结果仍然广泛地应用于深度学习中,足以看出残差连接的重要性。
我们尝试对一个残差模块做前向传播的推导:
前向传播:
后向传播:
我们求loss function L对输入x的偏导数,即:
可以看到,如果没有残差结构,3个偏导数的乘积随着网络层次的加深会非常小,梯度到达饱和状态,网络不容易收敛。
而加入残差连接后,即使3个偏导数的乘积再小,但+1的操作使梯度值大大增加,非线性激活函数也到达非饱和区,这样做的好处在于:即使网络做的非常深,网络也是容易收敛、容易训练的!
-------------------------------------------------------------------------------------------------------------------------------
😈 你学会了吗?
以上是关于Deep Learning tips -- ResNet的残差连接为什么是有用的?的主要内容,如果未能解决你的问题,请参考以下文章
Deep Learning tips -- ResNet的残差连接为什么是有用的?
Deep Learning tips -- ResNet的残差连接为什么是有用的?
Deep Learning tips -- ResNet的残差连接为什么是有用的?
How To Improve Deep Learning Performance
求Deep learning 【Yann LeCun 1,2 , Yoshua Bengio 3 & Geoffrey Hinton 4,5】全文中文翻译