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