循环神经网络(RNN)之LSTM(Long Short Term Memory networks)

目录

  1. RNN为何能记忆以及它面临的问题
  2. LSTM的网络结构
  3. LSTM的思想
  4. LSTM的详细网络结构
    步骤1:存什么,丢什么(forget gate layer:忘记门)
    步骤2:更新什么信息(输入门)
    步骤3:开始更新信息
    步骤4:当前时刻的输出
  5. 你可能会问关于LSTM的问题
  6. LSTM的变种(GRU)
  7. 总结

1.RNN为何能记忆以及它面临的问题

当你在看一部电影的时候,你使用传统的神经网络无法预测在下一时刻,这部电影的内容将是什么?循环神经网络解决了这个问题:因为循环神经网络能够记忆。
这里写图片描述
在上面这个例子中,像A这个的cell有一堆,然后他们连起来,当有一个输入信息 Xt 的时候,会输出 ht ,这个可能是一个人说了”我爱”,然后预测词库里出现每个词的概率,当然出现“你“的概率应该是比较大的。因为有了这个循环的操作,使得循环神经网络有了存储信息,记忆的能力。

上一篇文章中(没有看过的点我)我们用RNN解决了序列型信息的之间的依赖问题,如图:
这里写图片描述我们可以用之前出现的句子,比如根据“我是中国“这几个词预测下一个词是什么。

但有一个非常大的问题是:信息之间存在长期依赖问题。
这里写图片描述比如有这么一段话:我出生在中国,但从小就去美国了,从小就接受美国式的教育,在美国有很多非常好的大学,·········,尽管我上的是美国最好的大学,但我不太会说普通话。你会发现这段信息很长,但真正重要的是第一句。
随着时间间隔的增大,RNN会丧失连接到很远的信息的能力,也就是当你上大四的要考研的时候,你发现你大一学的内容很多都不记得了,那该怎么办呢?

2.LSTM的网络结构

很高兴LSTM解决了这个问题。
LSTM和RNN的网络结构相差无几,区别是LSTM的cell被改造过了。它是被设计来解决长期依赖问题的,它有一种能力:把该记的东西记下来,不该记的东西忘掉。就像你准备考研,或者准备高考的时候一样,重点学那些老师说重点复习,可能会考的内容,而那些大家觉得不怎么重要的内容就直接不复习了。

在标准的RNN结构中,它有很多重复的cell,而且通过一个简单的tanh来激活,如图:
这里写图片描述

与标准RNN不同的是,LSTM的cell是被改造过的,可以发现RNN只有一层网络,但LSTM有四层:
这里写图片描述

我们来一层一层看一下他们具体干了啥事,在此之前,先来定义一下我们的符号,其中Pointwise Operation表示逐点运算。
这里写图片描述

3.LSTM的思想

LSTM的本质是多了一条传送带之类的东西,我比较喜欢称呼它传送带,所以下文都以传送带称呼;还有细胞状态(cell state)指的是一个cell的变化。传送带会跟每个网络交互,可以存储信息,也可以删除信息,在传送带上记录着所有有用的信息,删除没用的信息,
这里写图片描述

它会通过门来选择是否让信息通过,在神经网络中,什么过滤信息的效果最好呀?当然是激活函数呀,这里选用了sigmoid函数。
这里写图片描述
为什么选用sigmoid函数呢?因为sigmoid函数的函数值是0-1的,这就是一个概率嘛,它能衡量到底让信息过去多少。如果是0,就什么也不让它过去,如果是1,就把全部信息放过去。

让我们现在一步一步来了解它每一层都做了什么吧。

4.LSTM的详细网络结构
步骤1:存什么,丢什么(forget gate layer:忘记门)

首先应该考虑的是什么信息该存起来,什么信息不该存起来。起这个决策作用的是forget gate layer,它是一个sigmoid层,如果是1,意味着存下所有的信息,如果是0,意味着丢弃所有的信息。其中 ht1 是截止到上一时刻的记忆, xt 是当前时刻的输入。

比如上一时刻是“我是中国人“,但当前时刻是“我是中国共青团员“,我们就希望把‘人‘忘记,填上‘共青团员‘。也就是在传送带上用新的信息代替旧的信息。
这里写图片描述

步骤2:更新什么信息(输入门)

下一步就是看一下什么样的新信息应该存到传送带。这一步分为两部分,第一部分就是sigmoid层(input gate layer,不知道怎么翻译的好),它决定我们哪部分的信息应该更新。第二部分就是tanh层,它为每个能放到传送带上值(候选值)创建一个向量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值