LSTM初探

LSTM(长短时记忆网络,long short term memory)是一种时间递归神经网络,属于循环神经网络,适合用于处理和预测时间序列的事件,特点在于解决长依赖问题。LSTM能够解决长期依赖问题是因为引入了“门”机制(在训练过程中会去学习该保存或遗忘哪些信息,主要是一个sigmoid层和一个点乘操作的组合)来控制特征的流通和损失。

黄色长框:神经网络层;粉色圆圈:元素级别操作;相交的箭头:向量拼接;分发的箭头:复制分发标题

 LSTM结构

LSTM主要由3个门(遗忘门、输入门、输出门)和2个状态(细胞状态C_t和隐藏状态h_t)组成,三个门控制细胞状态,细胞状态通过与遗忘向量点乘进行信息的丢弃和加入选择,输出门输出隐藏状态的值。

  • 遗忘门:决定丢弃哪些信息。如下图所示,来自上一个步长的隐藏状态(h_{t-1})和当前输入(x_t)的信息,通过激活函数sigmoid确定是否丢弃(0丢弃、1保留)C_{t-1}的哪些信息。

注意:f_t是一个元素值范围为\left [ 0, 1 \right ]的向量,这个向量决定了C_{t-1}中的那些特征可以用于计算C_t

  • 输入门:决定添加那些信息。如下图所示,输入门有三个部分:
  1. h_{t-1}x_t通过激活函数sigmoid确定增加哪些信息i_t
  2. h_{t-1}x_t通过tanh层得到新的信息\tilde{C_t}
  3. 将1和2的输出值进行点乘,第一部分的输出值决定了第二部分输出值的占比、丢弃、保留。 

注意:在整个流程中,其实第一部分才算是一个输入门的过程,第三部分和遗忘门的操作是一样的,对第二部分(经过处理后的\tilde{C_t})的去留操作。 

 

  • 输出门:用来确定下一个步长的输入。如下图所示,和输入门过程类似,包含三个部分:
  1. h_{t-1}x_t通过函数sigmoid确定o_t
  2. C_t通过tanh层得到新的信息;
  3. 将1和2的信息相乘的到h_t,将 h_t(新的隐藏状态)和C_t(新的细胞状态)传递到下一个时间步长中去。 

 

 

与RNN的区别

  1. RNN没有细胞状态的概念,LSTM通过细胞状态进行长时间记忆;

  2. RNN的激活函数只有tanh,LSTM中引入了sigmoid函数,并结合tanh函数进行点乘操作;

  3. RNN处理短时依赖,LSTM同时兼顾短时和长期依赖。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值