动手学深度学习 | ResNet为什么能训练出1000层的模型 | 28

ResNet的梯度计算

最最核心的思想就是乘法变加法。

如果是这种情况,加入g()这一层已经学的很好了,那么梯度就会变小,这样就对f()的梯度也会越来越小(相当于小数字的累乘)

但是如果是残差结构的话,直接使用加法,那么即使g()学的很好,其梯度很小,也不会影响f()的梯度。

正常的深度结构只能是从上至下,但是残差的这个跳转结构,相当于数据可以从这条跳转的“高速公路”直接下来。(原来的深层神经网络最大的问题也是底层的参数更新)

QA

  1. 学习率可不可让靠近输出的小一些,靠近输入的大一些,这样会不会缓解梯度消失的问题?

可以的。但是它的问题是你不是那么好设置它的数值。

  1. 为什么深层的网络,底层比较难训练?是因为它拿到的梯度一般比较小?

是的。

梯度消失:小数值累乘。

梯度爆炸:大数值累乘。

原文地址:https://www.cnblogs.com/Rowry/p/15363429.html