首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >股票预测,自动翻译,你想要的它都能做——RNN算法探索之旅(3)

股票预测,自动翻译,你想要的它都能做——RNN算法探索之旅(3)

作者头像
AI传送门
发布2018-06-21 15:39:22
4930
发布2018-06-21 15:39:22
举报
文章被收录于专栏:AI传送门AI传送门

前面两期,我们了解了前馈神经网络、循环神经网络。

《股票预测,自动翻译,你想要的它都能做——RNN算法探索之旅(1)》

《股票预测,自动翻译,你想要的它都能做——RNN算法探索之旅(2)》

这一期,我们来学习循环神经网络的一种变体:长短期记忆,简称LSTM。

在正式学习之前,我们先来回忆下“什么是循环神经网络”?

所谓“循环”,是指数据本身带有时间先后顺序,即“每一条数据,都受到来自前面数据的影响”。

比如,股票价格:

聊天对话:

新闻内容:

故事发展情节:

这些数据,都带有时间先后顺序。

如果我们想处理这类数据,就需要使用到循环神经网络。

上节课我们讲到,循环神经网络的形态,类似于下图的样子:

如果,我们想预测一句话,比如:

我们想预测下面这句话中,每一个文字,其后面最有可能出现的第一个汉字是什么?

这样的问题,可以简单地描述为:

具体细节,请戳上期内容

从上图中我们能够看到,在中间的灰色链条上,被塞入了各式各样的“记忆”。事实上,在这根灰色链条上,存储了大量的信息。

这根“灰色”链条,我们可以视它为一根“记忆链条”。

如果将这根记忆链条,比喻成一条公路;将每一次的记忆,比作一辆车。

那么,在这条公路上,已经塞满了汽车:

如果,这根记忆链条很长、很长……

那么可以想象,在这条长长的公路上,会积压无数等待通行的车辆。

你或许能看清离你最近的,但却无法回望到整个队伍的尽头。

RNN算法也是一样,

在这根记忆链条上,存储了太多、太多“有用的”和“无用的”信息。

或许,它仍保留有最近一段时间的记忆,

但是,太过久远的记忆,已经记不清了。

所以,当你的数据比较有限时,使用RNN是一个不错的选择。

但如果你的数据时间周期很长,

例如:

你有100天的股票收盘数据,

你希望基于这100天的数据,

预测出第101天的收盘价格。

此时,如果你仍选用RNN算法,那么很有可能,

它并不能带来令你满意的结果。

因为,它实在记不住那么久远的信息了。

而此时能解决问题的,是LSTM。

什么是LSTM?

LSTM是RNN的一种变体

既然是变体,说明它的基本原理与RNN大体相同。

唯一的区别在于,

它比RNN多出了一条公路:

在这条多出的“公路”上,LSTM存储了更加简洁的信息。

就像你在图中看到的,左边的道路,忙忙碌碌;

右边的道路,清清净净。

对应LSTM算法,

忙忙碌碌的道路,即“第1根灰色链条”,依然是“隐藏层”,它用于做各种各样的记忆运算。

比如:

哪些记忆“有用”,我要留下;

哪些记忆“没用”,我要丢弃;

哪些输入带有新的信息,我要更新;

等等这些,都是在第1根灰色链条上来处理的,所以你看到它,一直在忙忙碌碌地工作。

而第2根灰色链条,学术上称为“细胞状态”,它用于存储“有用的”记忆。

那些“无用的”记忆,是不会出现在这根链条上的,所以你看到它,是干干净净、十分简洁的。

正因为有了这样一条“干净、简洁”的信息通道,LSTM能够记住更加久远的信息,即“在处理长期记忆的问题上,LSTM相较于RNN更胜一筹”

下面,我们来看一看,LSTM是如何“开通这样一条快速通道”的?

还是这张图,我们将其中一个隐藏层单元,放大来看:

将隐藏层单元放大后的效果为:

和RNN一样,这个单元依然受 Xt 和 ht-1 的影响。

其原因,请查阅上节课的学习内容,这里不再赘述。(传送到上节课)

与RNN不同的是,在这个单元上,多出了3个“阀门”:

刚刚我们已经讲了,整个单元受 [Xt,ht-1] 的影响。因而,这3个阀门同样也受 [Xt,ht-1] 的影响。

因而,在很多教材上,你会看到这样的公式:

其实,它们均在说明,3个阀门被 [Xt,ht-1] 影响着:

回过头来,我们仍然看这张图:

这3个阀门,分别代表:

忘记门: 忘记过去没用的记忆 输入门: 输入新的记忆 输出门: 输出当前时刻用得上的信息

耐心看完下面这张动图,LSTM的运行原理,你或许就清楚了。

我们将动图锁定在最后一时刻:

从上图我们能够看到,

右侧的灰色链条上,仅包含了有价值的信息,因而更加简洁。

也正因为多加了这根链条,使得LSTM比起RNN来,能够记住更加久远的信息。

到目前为止,我们没有涉及复杂的数学公式,但是LSTM的运行原理,你应该已经非常清晰了,就是上面这张动图,希望你能理解并记住它。

温馨提示:

为了方便理解,在本文“输入门”的位置上,只画出了一条线:

更多的时候,你会看到2条,一条决定添加哪些信息,一条决定添加多少。

这2条线的运算目的,就是为了向旧记忆中,添加有用的新记忆

作为初学者,你只要了解输入门的功能,就可以了。

结语

LSTM很难,希望这一期的内容,能够为你打开一扇大门。或许为了说清问题,文中所做的某些简化并不完美,但我仍希望它们能更好地帮助仍在学习LSTM原理的人们。

之前,为了搭建聊天机器人,我们已经将前期工作准备就绪

《keras教程:手把手教你做聊天机器人(上)》

下一期,我们就使用刚刚学到的LSTM,来搭建这台机器人的“语言中枢”,让它成为能和我们聊天的伴侣。

我们下期见~~

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

本文分享自 AI传送门 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
机器翻译
机器翻译(Tencent Machine Translation,TMT)结合了神经机器翻译和统计机器翻译的优点,从大规模双语语料库自动学习翻译知识,实现从源语言文本到目标语言文本的自动翻译,目前可支持十余种语言的互译。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档