lstm原理_LSTM与GRU的原理,不熟悉的再来看看呀

54ffbdd173cf82687f498bf2933fcbbd.png

前几天,腾讯NLP实习二面问到了LSTM与GRU的原理与区别,勉强答上来了,但答得并不是很好,今天重新把知识点捡起来,好好巩固一下~

LSTM与GRU的存在是为了解决简单RNN面临的长期依赖问题(由于反向传播存在的梯度消失或爆炸问题,简单RNN很难建模长距离的依赖关系),一种比较有效的方案是在RNN基础上引入门控机制来控制信息的传播。

1 长短期记忆网络(LSTM)

LSTM通过引入了三个门来控制信息的传递,分别是遗忘门

,输入门
和输出门
。三个门的作用为:

(1)遗忘门

控制
上一时刻的内部状态
需要遗忘多少信息;

(2)输入门

控制
当前时刻的候选状态
有多少信息需要保存;

(3)输出门

控制
当前时刻的内部状态
有多少信息需要输出给外部状态;

原理图如下所示,从图中理解更加一目了然。

c0adbbd68b5986444a7ee0e84e524c4e.png
LSTM内部结构,来源:nndl-book

接下来介绍下计算过程和公式,理解LSTM的关键,边看图边理解更快~

计算过程

(1)先利用上一时刻的外部状态

和当前时刻的输入
,计算出三个门的值(式1.1-1.3),以及候选状态
(式1.4);

(2)结合遗忘门

和输入门
来更新内部状态
,也称为
记忆单元;(记住遗忘门
是针对上一时刻的内部状态
,输入门
是针对当前时刻的候选状态
,如式1.5)

(3)结合输出门

,将内部状态
的信息传递给外部状态
(式1.6)。
公式

(1.1)

(1.2)

(1.3)

(1.4)

(1.5)

(1.6)

以上6个公式就是LSTM的核心了,大家一定要牢记,抓住规律和LSTM的计算过程其实不会太难记的。

其中,1.1-1.4是比较好记的,输入都是
是需要学习的网络参数。前三个使用sigmoid是因为输出为[0,1]之间的值,控制信息传播;第四个使用tanh进行非线性计算
候选状态,更重要的是相比sigmoid激活函数,其导数有比较大的值域,能缓解梯度消失的问题,照理说tanh也存在梯度饱和的问题,用其他激活函数应该也是可以的。
1.5计算内部状态
,也就是记忆单元,是LSTM核心部分,通过遗忘门和输入门分别乘以上一时刻内部状态
和当前时刻的候选状态

1.6就是通过输出门计算 非线性激活后的记忆单元
得到当前时刻外部状态

再回到标题中来,长短期记忆,长短期是什么呢,从上述原理和公式好像并没有体现诶。

其实,传统RNN中的

存储着历史信息,但是
每个时刻都会被重写,因此可以看做一种
短期记忆长期记忆可以看做是网络内部的某些参数,隐含了从数据中学到的 经验,其更新周期要远远比短期记忆慢。

而在LSTM网络中,内部状态

可以在某个时刻捕捉关键信息,并有能力将此关键信息保存一定的时间间隔,看式1.5,如何保存关键信息可以通过遗忘门
和输入门
进行控制,因此内部状态
保存信息的周期要长于短期记忆,但又要短于长期记忆,因此成为
长短期记忆,即指 长的”短期记忆“

2 门控循环单元网络(GRU)

GRU的结构比LSTM更为简单一些,GRU只有两个门,更新门

和重置门

(1)更新门

:控制
当前状态
需要从
上一时刻状态
中保留多少信息(不经过非线性变换),以及需要从
候选状态
中接受多少信息;

(2)重置门

:用来控制
候选状态
的计算是否依赖
上一时刻状态

(1.7)

(1.8)

(1.9)

(1.10)

从式1.10分析,GRU直接使用更新门来控制输入和遗忘的平衡,而LSTM中输入门和遗忘门相比GRU就具有一定的冗余性了。可以看出,当

时,当前状态
和上一时刻状态
为非线性关系;当
时,
为线性关系。

GRU主要记住上述四个公式就基本掌握了其原理。

d205bce337c511cb5a8b1c96549591c1.png
GRU内部结构,来源:nndl-book
参考:邱锡鹏《神经网络与深度学习》 https:// nndl.github.io/

完结:-)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值