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


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

查看所有标签

猜你喜欢:

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

MATLAB在数学建模中的应用

MATLAB在数学建模中的应用

卓金武 编 / 北京航空航天大学 / 2011-4 / 34.80元

《MATLAB在数学建模中的应用》从数学建模的角度介绍了MATLAB的应用。《MATLAB在数学建模中的应用》的4位作者均具有实际的数学建模参赛经历和竞赛指导经验。书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的MATLAB求解方法。 《MATLAB在数学建模中的应用》内容分上下两篇。上篇介绍数学建模中常规方法MATLAB的实现,包括MATLAB交互、数据建模、程序......一起来看看 《MATLAB在数学建模中的应用》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

URL 编码/解码
URL 编码/解码

URL 编码/解码