LSTM神经网络

长短期记忆网络(LSTM)是循环网络的一个变体,可以有效的解决循环神经网络(RNN)的梯度爆炸问题。

LSTM的三个门

LSTM网络引入门控机制(gating mechanism)来控制信息传递的路径,三个门分别是输入门i_{t}、遗忘门f_{t}、输出门o_{t},这三个门的作用分别是:

(1)输入门i_{t}控制当前时刻的候选状态\tilde{c}_{t}有多少信息需要保存.

(2)遗忘门f_{t}控制上一个时刻的内部状态c_{t-1}需要遗忘多少信息

(3)输出门o_{t}控制当前时刻的内部状态c_{t}有多少信息需要输出给外部状态h_{t}

f_{t}=0,i_{t}=1时,记忆单元将历史信息清空,并将候选状态向量\tilde{c}_{t}写入,但此时记忆单元c_{t}依然和上一时刻的历史信息相关,当f_{t}=1,i_{t}=0时,记忆单元将复制上一时刻的内容,不写入新的信息。

LSTM网络中的“门”是一种“软”门,取值在(0,1)之间,表示以一定的比例允许信息通过,三个门的计算方式为:

i_{t}=\sigma (W_{i}x_{t}+U_{i}h_{t-1}+b_{i}),

f_{t}=\sigma (W_{f}x_{t}+U_{f}h_{t-1}+b_{f}),

o_{t}=\sigma (W_{o}x_{t}+U_{o}h_{t-1}+b_{o}),

其中\sigma (\cdot )为Logistic函数,其输出区间为(0,1),x_{t}为当前时刻的输入,h_{t-1}为上一时刻的外部状态。

LSTM的计算过程

下图给出了LSTM网络的循环单元结构

 其计算过程为:

1)首先利用上一时刻的外部状态h_{t-1}和当前时刻的输入x_{t}计算出三个门,以及候选状态\tilde{c}_{t}

2)结合遗忘门f_{t}和输入门来更新记忆单元c_{t}

3)结合输出门o_{t},将内部状态的信息传递给外部状态h_{t}

pytorch中lstm参数解释

LSTM总共有7个参数:

1:input_size – 输入数据的大小

2:hidden_size – 隐藏层的大小(即隐藏层节点数量),输出向量的维度等于隐藏节点数

3:num_layers – LSTM 堆叠的层数,默认值是1层,如果设置为2,第二个LSTM接收第一个LSTM的计算结果。也就是第一层输入 [ X0 X1 X2 ... Xt],计算出 [ h0 h1 h2 ... ht ],第二层将 [ h0 h1 h2 ... ht ] 作为 [ X0 X1 X2 ... Xt] 输入再次计算,输出最后的 [ h0 h1 h2 ... ht ]。

4:bias– 隐层状态是否带bias,默认为true。bias是偏置值,或者偏移值

5:batch_first– 输入输出的第一维是否为 batch_size,默认值 False

6:dropout– 默认值0。是否在除最后一个 RNN 层外的其他 RNN 层后面加 dropout 层。输入值是 0-1 之间的小数,表示概率。0表示0概率dripout,即不dropout

7:bidirectional– 是否是双向 RNN,默认为:false,若为 true,则:num_directions=2,否则为1。

为什么叫长短期记忆?(长短期记忆是指长的“短期记忆”)

循环神经网络中的隐状态h存储了历史信息,可以看作是一种记忆。在简单循环网络中,隐状态每个时刻都会被重写,因此可以看作一种短期记忆,在神经网络中,长期记忆可以看作网格参数,隐含了从训练数据中学到的经验,其更新周期要远远慢于短期记忆,而在LSTM网络中,记忆单元c可以在某个时刻捕捉到某个关键信息,并有能力将此关键信息保存一定的时间间隔,记忆单元c中保存信息的声明周期要长于短期记忆h,但又远远短于长期记忆,因此称为长短期记忆。

关于梯度弥散

一般在深度网络参数学习时,参数初始化的值一般设置都比较小,但是在训练LSTM网络时,过小的值会使得遗忘门的值比较小,这意味着前一时刻的信息大部分都丢失了,这样网络很难捕捉到长距离的依赖信息,并且相邻时间间隔的梯度会非常小,这会导致梯度弥散问题。因此遗忘的参数初始值一般设置的都比较大,其偏执向量b_{f}设为1或2

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值