深度学习与神经网络(十)—— LSTM

LSTM——long short-term memory

LSTM能够解决梯度弥散的情况。LSTM还解决了记忆长度的问题

 

以前RNN只能记住比较短的时间序列,LSTM就把短的short-term给你延长了,所以才叫long short-term memory

我们之前学的RNN就是最基本的RNN版本,它也就是short-term memory

我们换一种画法

Wxh也叫Wih

这就是原始的RNN的表达结构

 

LSTM的原理

LSTM在原始RNN的基础上设计了三道闸门:输入门、输出门、遗忘门

有目的性的,有选择性得过滤输入得信息

每道门由一个sigmoid函数和逐点相乘操作实现的

三道门输入的都是ht-1和xt,ht-1和xt控制所有三道门的开度

 

LSTM可以抽象成

 

LSTM的一个核心概念:Cell State

我们以细胞状态向量的形式,来存储神经元对过往序列的宏观理解和记忆——然后把上一个时间步的细胞状态、当前时间步的输入、上一时步的隐藏状态综合起来,构造出神经元的历史长期记忆

说到底还是在仿照神经元/神经细胞结构在构建网络

原始 RNN 的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。
再增加一个状态,即c,让它来保存长期的状态,称为单元状态(cell state)

LSTM只是在RNN的基础上多了一记忆细胞层,可以把过去的信息和当下的信息隔离开来,过去的信息直接在Cell运行,当下的决策在Hidden State里面运行
 

 

LSTM的三道门

①遗忘门 forget gate

其实应该叫remember gate更加合理一点

因为门是控制开闭的,0代表完全抛弃,全部忘记,1代表完全保留,全部记住,0-1代表部分保留,而sigmoid函数的值域为0-1,因此选取sigmoid函数。

ft就是forget门的开度,就是t时刻的forget的量

遗忘门的作用:决定上一时刻中哪些信息从单元状态中抛弃,即将前一个细胞状态中的信息选择性遗忘

根据当前的输入xt和上一时刻输出ht-1计算出一个向量

它在每一维度上的值都在(0,1)范围内,再将上一时刻的ct-1与ft向量按位相乘,那么ft取值接近于0的维度上信息就会被忘记,而ft取值接近于1的维度上的信息会被保留。

例如:我喜欢篮球,他喜欢足球,当第二个主语出现,选择性的抛弃我这个主语。
 

②输入门

作用是决定有多少新的信息将要存储到当前细胞中,将新的信息选择性的记录到当前细胞状态中 

it是输入门的开度,it与~Ct相乘就会控制有多少~Ct信息能流进去

~Ct就是新进来的信息,注意新的信息不是只有xt的

tanh()中是短期记忆的原始数据

 

遗忘门与输入门的综合

最后的memory就是Ct

 

③输出门

在LSTM中,我们把Ct看作原始RNN的ht,即传给下一个cell的,用于循环更新的值

把ht看作是输出值

作用:决定输出什么。

ot是输出门的开度,决定有多少Ct要被输出

ht代表输出

 

 

再换一种画图方式表示LSTM

 

此时我们来看

输入门为0,遗忘门为1:Ct=Ct-1, 没有新的输入了,Ct会直接得到Ct-1,将全部用过去的信息,把新的信息全部忽略掉

输入门为1,遗忘门为1:Ct=Ct-1+~C, 将新的信息添加到过去的信息上面去共同组成现在的memory

输入门为0,遗忘门为0:Ct=0,清楚掉当前的memory,有点像寄存器置零

输入门为1,遗忘门为0:Ct=~Ct,没有过去的记忆了,新的信息将“统治”当前memoey,或者说叫overwrite或叫覆盖

 

 

公式表示

ft表示遗忘门

it表示输入门

ot表示输出门

 

ct是memory

ht是输出

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值