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

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

《股票预测,自动翻译,你想要的它都能做——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,来搭建这台机器人的“语言中枢”,让它成为能和我们聊天的伴侣。

我们下期见~~

原文发布于微信公众号 - AI传送门(aiportal)

原文发表时间:2017-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【推荐】飞林沙:商品推荐算法&推荐解释

这是今天看到的一篇蛮有新意的讲稿,由于不是一篇完整的论文,所以理解起来稍微有些困难,就顺着写个笔记,仅供参考。 Ref: http://www.wsdm-con...

2765
来自专栏机器之心

从PyTorch到Mxnet ,对比7大Python深度学习框架

选自kdnuggets 作者:Madison May 机器之心编译 参与:王宇欣、李亚洲 选择什么深度学习框架一直是开发者非常关心的一个话题,而且深度学习框架...

3926
来自专栏数说工作室

浅议P值校正

P值,通常被我们用来判断是否接受一个假设,关于P值的前世今生,可以看数说君的了一篇文章《P值之死》,在微信公众号中回复“P值”查看。本篇不说P值本身的问题,我们...

3796
来自专栏数据派THU

独家|盘点5个TensorFlow和机器学习课程,程序员福利(附资源)

本文为你介绍5个有关TensorFlow的机器学习课程,来帮助你进一步了解数据科学和人工智能。

904
来自专栏AI科技评论

Google正式发布TensorFlow Lite预览版,针对移动/嵌入设备的轻量级解决方案

AI科技评论消息,日前,谷歌正式发布 TensorFlow Lite 开发者预览版,这是针对移动和嵌入式设备的轻量级解决方案。TensorFlow Lite 是...

2877
来自专栏CreateAMind

Deep Learning Book 中文第七章 深度学习的正则化

深入分析各种正则化方法:L2、L1;数据集增强;噪音;半监督;多任务;提前终止(过犹不及^_^);参数共享;稀疏;Bagging;DropOut(进化生物基因)...

711
来自专栏语言、知识与人工智能

从用户行为去理解内容-item2vec及其应用

从内容属性去理解用户行为,预测用户行为,那么也可以通过理解用户行为去理解内容,预测内容属性。

1.8K9
来自专栏机器学习算法与Python学习

2017年度盘点:Github上十大有趣的机器学习项目(文末有惊喜......)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 目录: AlphaZero-Gomo...

5246
来自专栏张俊红

数学之美(二)

总第75篇 本篇为数学之美连载篇二,你还可以看:数学之美(一) 11|矩阵运算与文本处理: 无论是词汇的聚类还是文本的分类,都可以通过线性代数中的奇异值分解来进...

3145
来自专栏养码场

最系统,最通俗易懂的“深度学习”干货送上!看完这些,绝对让你搞懂深度学习!

要说深度学习的学习资料,场主不得不推荐一份300多页的PPT,是台湾李宏毅教授所写。这份PPT有一个极其标题党的名字,叫《1天搞懂深度学习》,莫不说李教授是被深...

672

扫码关注云+社区