梯度消失
因为疫情的原因,最近在家学习,并在伯禹平台上学习深度学习。在循环神经网络这一节内容中的课后习题,我遇到一个新的名词:梯度消失,但是课程中并没有提到相关内容,于是我自己查了查,作为日志。
我们知道神经网络有输入层、隐藏层、输出层3层结构,反向传播算(BP算法)是从输出层到输入层逐层进行误差传递以及更新权重,无论是机器学习还是深度学习,都是在一次次的训练中根据前一次的误差进行梯度下降以及权重更新。随着网络层的增加,便出现了梯度消失的问题。
在分析梯度消失前,先来看看神经网络的反向传递:根据误差梯度来进行梯度下降,调节权重:
我们假设上图的3个隐藏层都是softmax函数作为激活函数,定义output的输出为发发f(0),隐藏层3的输出为f(3),隐藏层2的输出为f(2)…,softmax=f(t),t = wx。
————————————————
版权声明:本文为CSDN博主「soullines」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/soullines/article/details/94399187。
1.因为隐层3接近输出层,所以权重可以直接求出来:
2.然后看隐层2的误差梯度
简化为:
3.隐层1的误差梯度为:
这样来看自上而下反向传播误差梯度是链式相乘的,即σω
Softmax函数
softmax函数及其导函数为:
二者图像分别为:
可以看出函数在y=0和y=1时会接近饱和状态,同时由其导函数图像可以知道最大值为0.25.
于是当w<4 时自上而下梯度会越来越小,容易造成梯度消失。