前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >深度学习算法(第22期)----RNN中的LSTM模块

深度学习算法(第22期)----RNN中的LSTM模块

作者头像
智能算法
发布2019-07-30 18:46:56
7630
发布2019-07-30 18:46:56
举报
文章被收录于专栏:智能算法智能算法

上期我们一起学习了RNN为了防止过拟合的DropOut技术, 深度学习算法(第21期)----RNN中的Dropout技术 今天我们一起简单学习下RNN中的LSTM (Long Short-Term Memory)。

原始RNN的隐藏层只有一个状态,它对于短期的输入非常敏感。那么,假如我们再增加一个状态,让它来保存长期的状态,那么问题不就解决了么?LSTM就是这个思路,我们来一步一步的看下LSTM是怎么保存长期的状态的。

首先,我们先看下LSTM整体长什么样子,如下图:

从整体上看LSTM有三个输入:当前时刻网络的输入值x(t), 上一时刻LSTM的短时输出状态h(t-1), 以及上一时刻的长时输出状态c(t-1);三个输出:当前时刻网络的输出值y(t), 当前时刻LSTM短时输出状态h(t), 和当前时刻的长时状态c(t)。

从局部看,我们可以看到LSTM有三个门,分别为遗忘门,输入门和输出门。门是一种让信息选择式通过的方法,从图中也可以看到,这里其实是一个sigmoid神经网络层和信息的一个乘法操作,sigmoid可以让信号输出控制在0到1,这样通过一个乘法操作就能决定一个信息需要留下多少内容。接下来我们分别介绍下这三个门,一起学下这三个门是如何保存和更新长期状态的。 首先,最左边是一个遗忘门,遗忘门决定了哪些信息可以保留下来,哪些信息会遗忘掉。f(t)是x(t)和h(t-1)经过全连接层以及sigmoid层后的结果,它与c(t-1)相乘决定什么样的信息该保留,什么样的信息要遗忘。 其中LSTM中的公式如下:

接下来就是一个输入门,输入门由一个常规的RNN循环神经元g(t)和一个控制信息取舍的i(t)组成,g(t)跟一个常规的RNN神经元一样,输入为当前网络的输入值和上一个时刻的状态,经过一个全连接层和tanh激活函数,最后得到g(t)。g(t)的取舍收到i(t)的控制,i(t)跟遗忘门中的f(t),以及后面输出门中的o(t)一样。输入门的输出和遗忘门的输出叠加到一起,成为当前时刻长时状态c(t)。 最后,长时状态c(t)经过tanh激活后经输出门控制函数o(t)的取舍下,输出成为当前网络的输出值和当前时刻的短时状态h(t)。

整个网络就是这样,连起来用就如下图:

好了,至此,今天我们简单学习了RNN中LSTM,希望有些收获,下期我们将一起学习下RNN中的GRU模块,欢迎留言或进社区共同交流,喜欢的话,就点个“在看”吧,您也可以置顶公众号,第一时间接收最新内容。


智能算法,与您携手,沉淀自己,引领AI!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档