循环神经网络--LSTM(Long-Short Term Memory)与GRU(Gated Recurrent Unit )

本文介绍了LSTM(长短期记忆网络)和GRU(门控循环单元)的工作原理,这两种门控RNN旨在解决传统RNN的梯度消失问题。LSTM通过输入门、遗忘门和输出门控制信息流动,GRU则简化为重置门和更新门,两者在许多任务中表现相当,GRU由于参数更少,训练更快。
摘要由CSDN通过智能技术生成

LSTM

为了解决 Gradient Vanish 的问题,Hochreiter&Schmidhuber 在论文“Long short-term memory, 1997”中提出了 LSTM(Long Short-Term Memory)。原始的 LSTM 只有 Input Gate、Output Gate。而咱们现在常说的 LSTM 还有 Forget Gate,是由 Gers 在”Learning to Forget: Continual Prediction with LSTM, 2000”中提出的改进版本。后来,在”LSTM Recurrent Networks Learn Simple Context Free and Context Sensitive Languages, 2001”中 Gers 又加入了 Peephole Connection 的概念。同时,现在常用的深度学习框架 Tensorflow、Pytorch 等在实现 LSTM 上也有一些细微的区别。以上所说的虽然本质都是 LSTM,但结构上还是有所区别,在使用时需要注意一下。

下文介绍的 LSTM 是”Traditional LSTM with Forget Gates”版本。


这里写图片描述

LSTM结构图

LSTM 其实就是将 RNN 中 Hidden Layer 的一个神经元,用一个更加复杂的结构替换,称为 Memory Block。单个 Memory Block 的结构如下(图中的虚线为 Peephole Connection,忽略即可)

先对其中结构进行简要介绍:

  1. Input Gate, Output Gate, Forget Gate:这三个 Gate 本质上就是权值,形象点则类似电路中用于控制电流的开关。当值为1,表示开关闭合,流量无损耗流过;当值为0,表示开关打开,完全阻塞流量;当值介于(0,1),则表示流量通过的程度。而这种[0,1]的取值,其实就是通过 Sigmoid 函数实现的;
  2. Cell:Cell 表示当前 Memory Block 的状态,对应于原始 RNN 中的 Hidden Layer 的神经元;
  3. Activation Function:图中多处出现了 Activation Function(小圆圈+ sigmoid 曲线的图案),对这些 Activation Function 的选择有一个通用的标准。一般,对 Input Gate, Output Gate, Forget Gate,使用的 Activation Function 是 sigmoid 函数;对于 Input 和 Cell, Activation Function 使用 tanh 函数。

其具体公式如下:


这里写图片描述

其中, it i t , ot o t , ft f t 分别表示 Input Gate, Output Gate, Forget Gate; gt g t 表示 Input; ht h t 表示 Output; ct c t 表示 Cell 在时刻t的状态; 表示向量的点乘。

LSTM 是为了解决 RNN 的 Gradient Vanish 的问题所提出的。下面简要解释一下为什么 LSTM 能有效避免 Gradient Vanish。

对于 LSTM,有如下公式

ct=ftct1+it
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值