tips
- 梯度消失的原因是使用了sigmoid作为激活函数
- sigmoid函数将很大范围的数对应的输出都映射到了0和1之间,这导致前向计算每个结点的值时,即使是一个很大的输入,经过一次sigmoid函数的变换,都会变成0到1之间的数,如此几次,便变得极小。
- 反向传播计算 ∂ C / ∂ z \partial C/\partial z ∂C/∂z后,要逐层乘以前向计算好的 x i x_i xi来求得 ∂ C / ∂ w i \partial C/\partial w_i ∂C/∂wi,而这些 x i x_i xi无一例外是小于1的,因此越靠前的 ∂ C / ∂ w i \partial C/\partial w_i ∂C/∂wi越小。