循环神经网络_漫谈循环神经网络:LSTM、GRU

cfbcdd568d2e218eda8fe8f825486030.png
知乎视频​www.zhihu.com

简单循环神经网络的局限性

循环神经网络横向结构也是借助激活函数进行传递的:

f20ee8bae9bc84c634aa0048ac480e49.png

上图是循环神经网络按时间步展开,而如果一次处理的时间步过长,即从左到右的层数很深,那么同样也会面临普通神经网络所遇到的梯度消失和梯度爆炸的问题

此外,还可能出现处理时序数据时特有的问题:无法长期记住当前的状态,例如词汇的单复数。

在句子”The person,who is reading this paper,__ a smart guy."中前面有the person,说明主语是单个人,那么后面自然是is,但是循环神经网络由于两个单词距离较远,无法进行单复数的判别。

为此,人们提出了GRU以及LSTM,虽然在深度学习历史上是先有LSTM,再有GRU,但GRU结构相对简单,而LSTM可以看作是GRU的推广。

GRU(门控循环单元)

循环神经网络按时间步展开时,从左到右传递的是

,而为了和LSTM联系起来,在表述GRU(门控循环单元)时用
代替

eff797932fe1648e3aec3ff5cb6f575e.png

在循环神经网络中最主要的问题是没办法长期记住当前的状态,于是我们希望这个

能够记住当前的状态,即希望它能够与上一时刻的
有所关联,同时也应当与本身模型构建出来的
有关。

为此,将其表示为两者简单的线性加权组合形式:

fa4684254d3624b6dcd88ed1cdd7f57b.png

其中,激活函数sigmoid曲线如下:

542fee1f3237cbdb851b1aa4abde641a.png

输出值在0-1之间,因此

也是一个在0-1之间的数,往往取到接近于0或接近于1。
  • 当其接近于1时,
    是当前模型构建出来的值
    ,进行更新
  • 当其接近于0时,
    是上一时刻的值

当训练参数得到的模型

使得
一直接近于0时,
值保持不变,也就起到了长期记忆的作用。

这是简化的的GRU模型,相应的还有完整的GRU模型:

05bfa5f1d1bc6b5207d3c8772a16dcfd.png

添加了一个新的门,用以表述

的相关性,相比简化版的GRU,具有很强的健壮性和实用性。而从结构上来思考,就是特征之间有些是相互关联的(
取1),有些则不关联(
取0):

69e484d03d887075d535790c6600a0cb.png
完全版GRU结构理解

LSTM(长短期记忆神经网络)

LSTM(长短期记忆神经网络),可以看作是GRU(门控循环单元)的推广,首先我们写出完全版GRU的模型如下:

028affb8c1b4bca766ac57859eb23cc3.png

其中最后一步更新时,采取的是

简单的线性加权组合形式,其加权系数和为1,如果我们做一下改进,取两个不相关的加权系数

同时将

提出来放到输出中 ,那些门函数中的原
也应当用
替换,这就是大名鼎鼎的LSTM:

28c15ec685984b64df03097d39c46a41.png

其中

,update,用于表示模型构建的参数所占权重,
,forget,用于表示上一时刻的值所占权重,
,output,用于表示
的相关性。

用于短期记忆,
用于长期记忆,LSTM由此得名。

可以看到LSTM和GRU的对比如下:

e7268046fbacefcf798081d5f8b2216b.png

可以看到,LSTM比起GRU结构复杂,所需的计算资源大,但是效果往往比GRU好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值