RNN梯度消失与梯度爆炸的原因

栏目: R语言 · 发布时间: 5年前

内容简介:• 关于RNN结构• 关于RNN前向传播• 关于RNN反向传播

• 关于RNN结构

• 关于RNN前向传播

• 关于RNN反向传播

• 解决方法

1. 关于RNN结构

循环神经网络RNN(Recurrent Neural Network)是用于处理序列数据的一种神经网络,已经在自然语言处理中被广泛应用。下图为经典RNN结构:

RNN梯度消失与梯度爆炸的原因

RNN结构

2. 关于RNN前向传播

RNN前向传导公式:

RNN梯度消失与梯度爆炸的原因 其中:  St :  t 时刻的隐含层状态值

Ot :  t 时刻的输出值

① 是隐含层计算公式,U是输入x的权重矩阵,W是时刻t-1的状态值

St-1作为输入的权重矩阵,Φ是激活函数。

② 是输出层计算公式,V是输出层的权重矩阵,f是激活函数。

损失函数(loss function)采用交叉熵 RNN梯度消失与梯度爆炸的原因 ( Ot 是t时刻预测输出, RNN梯度消失与梯度爆炸的原因 是 t 时刻正确的输出) 

那么对于一次训练任务中,损失函数: RNN梯度消失与梯度爆炸的原因 , T 是序列总长度。

假设初始状态St为0,t=3 有三段时间序列时,由 ① 带入②可得到

t1、t2、t3 各个状态和输出

RNN梯度消失与梯度爆炸的原因

RNN梯度消失与梯度爆炸的原因

RNN梯度消失与梯度爆炸的原因

3. 关于RNN反向传播

BPTT(back-propagation through time)算法是针对循层的训练算法,它的基本原理和BP算法一样。其算法本质还是梯度下降法,那么该算法的关键就是计算各个参数的梯度,对于RNN来说参数有 U、W、V。

RNN梯度消失与梯度爆炸的原因

反向传播

RNN梯度消失与梯度爆炸的原因 可以简写成:

RNN梯度消失与梯度爆炸的原因

RNN梯度消失与梯度爆炸的原因 观察③④⑤式,可知,对于 V 求偏导不存在依赖问题;但是对于 W、U 求偏导的时候,由于时间序列长度,存在长期依赖的情况。主要原因可由 t=1、2、3 的情况观察得 , St会随着时间序列向前传播,同时St是 U、W 的函数。

前面得出的求偏导公式⑥,取其中累乘的部分出来,其中激活函数Φ 通常是:tanh 则

RNN梯度消失与梯度爆炸的原因

RNN梯度消失与梯度爆炸的原因

由上图可知当激活函数是tanh函数时,tanh函数的导数最大值为1,又不可能一直都取1这种情况,而且这种情况很少出现,那么也就是说,大部分都是小于1的数在做累乘,若当t很大的时候, RNN梯度消失与梯度爆炸的原因 趋向0,举个例子:0.8 50 =0.00001427247也已经接近0了,这是RNN中梯度消失的原因。

再看⑦部分:

RNN梯度消失与梯度爆炸的原因

tanh’,还需要网络参数 W ,如果参数 W 中的值太大,随着序列长度同样存在长期依赖的情况,那么产生问题就是梯度爆炸,而不是梯度消失了,在平时运用中,RNN比较深,使得梯度爆炸或者梯度消失问题会比较明显。

4. 解决方法

面对梯度消失问题,可以采用ReLu作为激活函数,下图为ReLu函数

RNN梯度消失与梯度爆炸的原因

ReLU函数在定义域大于0部分的导数恒等于1,这样可以解决梯度消失的问题,(虽然恒等于1很容易发生梯度爆炸的情况,但可通过设置适当的阈值可解决)。

另外计算方便,计算速度快,可以加速网络训练。但是,定义域负数部分恒等于零,这样会造成神经元无法激活(可通过合理设置学习率,降低发生的概率)。

ReLU有优点也有缺点,其中的缺点可以通过其他操作取避免或者减低发生的概率,是目前使用最多的激活函数。

还可以通过更改内部结构来解决梯度消失和梯度爆炸问题,那就是LSTM了~!

知乎原文链接 :

https://zhuanlan.zhihu.com/p/53405950


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

左手打工,右手创业

左手打工,右手创业

韩垒 / 东北师大 / 2011-4 / 29.80元

《左手打工右手创业》内容简介:打工一族,不能没有激情,不能没有梦想,激情能让你战胜困难,勇往直前;同时,要让梦想变成现实,你还必须具备务实的态度和实干的精神,一步一步向目标前进。创业不是简单的乌托邦式的理想,不是仅凭一腔热血加美好梦想就能顺利到达胜利的彼岸。个人创业更多的是要依靠前期科学的规划、多角度的观察、理性的分析、有效的资源分析与整合、成熟高效的运作技能、良好的商业心态等。 《左手打工......一起来看看 《左手打工,右手创业》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试