激活函数(Activation Function) 对激活函数、梯度消失或梯度爆炸的原因、解决办法都做了很透彻的讲解!
1、有关“梯度消失和梯度爆炸”,自己的理解
(1)梯度消失和梯度爆炸都发生在靠近输入层
的神经元网络,原因:
- 梯度的
链式相乘
;- 越靠近输入层,求导的链式越长。如下图所示,b1、b3的后半部分导数是完全相同的,可以认为:
b1
的导数 =λ * b3
的导数。
其中λ
就是 引发 输入层发生梯度和梯度爆炸的根源。
(2)解决办法
因为λ
中包含之前层的导数σ
和 之前层的权重wi
,所以解决他们的办法也是从这2项入手:
- 减少训练深度(使得链式计算变短,避免出现不恰当的
λ
)- 选择合适的激活函数(针对
导数σ
)- 选择合适的权重初始化方法(针对
权重w
)- 正则L1, L2(针对
权重w
):模型训练的正则L1、L2- batchNorm、layerNorm:layerNorm和batchNorm
- …