通俗理解---LSTM

LSTM:RNN中一种重要的变种,应用最广泛的特征抽取模型。

核心:既要考虑 “记住” 前面时刻的内容, 又要考虑不要让前面时刻的内容干扰到当前时刻的输入。

以下内容由自己口水话的方式论述, 不涉及参数计算、和具体前向、反向传播算法。

先贴一张内部原理图:
在这里插入图片描述
关于这张图,见过很多遍,但是完全理解却花了不少时间。以下是我个人的一些通俗理解:

LSTM建立的初衷是为了解决 对长句子记忆不到位的问题。

上面可以看出 LSTM(不管内部结构)由三个输入(上个单元的输出 C_t-1 和 隐藏层输入 h_t-1, 当前单元输入 x_t), 两个输出组成 (本单元的输出C_t 和 隐层输出 h_t)。 然后简单介绍以下内部结构中的四个神经元(其实是两种神经元,一个是sigmoid,值域是(0,1);另一个是tanh,值域是(-1,1))

所以这里面第一个部分就是 本单元要记住一部分以前的内容,记住多少呢? 0~1倍 的 上个cell的输出呗 这就是 遗忘门
在这里插入图片描述
这张图中的 f_t 是对 (h_t-1, x_t ) 求sigmoid 的结果,取值范围(0,1),然后再乘以 C_t-1(上一个神经单元的输出) 最终算入到 当前神经单元的输出。(所以我把 f_t 理解为权重, 对上一个cell输出保留多少的权值 ,即 根据输入信息 h_t-1和 x_t 决定要忘记细胞状态C_t-1的哪些部分)

第二个就是 我要保留多少本单元的输入呢? (0,1)倍的 本cell的更新内容,这就是输入门 结构如下:
在这里插入图片描述
图上由两部分组成,第一部分 : i_t 是对 (h_t-1, x_t ) 求sigmoid 的结果,取值范围(0,1);第二部分:a_t 是**(h_t-1, x_t ) 求tanh** 的结果,取值范围(-1,1) (所以我把 i_t 理解为权重, 对当前cell输入 更新多少的比例; a_t 是指当前cell的输入信息中需要更新到细胞状态的内容 )

所以前面 遗忘门 和 输入门 整合以下就是 细胞状态更新:
在这里插入图片描述
C_t = f_t * C_t + i_t * a_t
即本cell的输出为 上一个细胞输出的(0,1)倍 + 本细胞的输入的(0,1)倍。

最后,因为LSTM由两个输出嘛,还有一个隐层输出 h_t 没有计算撒, 计算方式如下:
在这里插入图片描述
这里面也是由 两部分组成,第一部分 : o_t 是对 (h_t-1, x_t ) 求sigmoid 的结果,取值范围(0,1);第二部分:(C_t) 求tanh 的结果,取值范围(-1,1) (所以我把 o_t 理解为权重, 对当前cell输出 保留多少的权值;C_t 是指当前cell的输出信息,也就是说 本单元的隐层输出 h_t 是根据 当前cell的输出 来计算的)

以上,均为个人理解,请读者自行斟酌其中内容,如有错漏或偏颇,烦请好言指正。

附:今天看到了一个不错的公众号:“有三AI”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值