附录2 循环神经网络RNN和长短时记忆网络LSTM
一秒记住【xiaoyanwenxue】精彩无弹窗免费!
“罗辑思维荐书集锦(套装共24册)(.shg.tw)”
!
附录2:循环神经网络RNN和长-短时记忆网络LSTM
循环神经网络RNN
CNN比较适合处理图像,因为每幅图像之间都没有太多相关性,所以可以一幅一幅地输入CNN里。
但许多非图像信息例如语音、天气预报、股市等是一个连续的数值序列,不仅无法截成一段一段地输入,前后之间还有很强的相关性。
例如我们在下面句子里猜词填空:“我是上海人,会讲————话。”
在这里如果我们没有看到第一句“我是上海人”
就很难填空。
处理这一类问题最有效的神经元网络叫循环神经网络。
图附2.1是一个最简单的RNN。
图附2.1最简单的RNN
这里X是t时刻的输入向量,A是神经元网络,h是t时刻的输出。
注意到方框A有一个自我反馈的箭头,网络A下一时刻的状态依赖于上一时刻的状态,这是RNN和CNN及全连接网络的最大的区别。
为了更清楚地理解图附2.1,我们可以把每个离散时间网络的状态都画出来生成图附2.2。
图附2.2把RNN从时间上展开看
这个链状结构展现出RNN与列表、数据流等序列化数据的密切关系,而这类数据的处理也确实在使用RNN这样的神经网络。
在过去几年中,将RNN应用于很多问题后,已经取得了难以想象的成功,例如语音识别、语言建模、翻译、图像抓取等,而它所涉及的领域还在不断地增加。
现在我们已经知道了RNN是什么,以及基本的工作原理。
下面我们通过一个有趣的例子来加深对RNN的理解:训练一个基于字符的RNN语言模型。
我们的做法是,给RNN“喂”
大段的文字,要求它基于前一段字符建立下一个字母的概率分布,这样我们就可以通过前一个字母预测下一个字母,这样可以一个字母一个字母地生成新的文字。
举一个简单的例子,假设我们的字母库里只有4个字母可选:“h”
“e”
“l”
“o”
,我们想训练出一个能产生“hello”
顺序的RNN,这个训练过程事实上是4个独立训练的组合。
(1)给出字母“h”
后,后面大概率是字母“e”
。
(2)给出字符“he”
后,后面大概率是字母“l”
。
(3)给出字符“hel”
后,后面大概率还是字母“l”
。
本章未完,点击下一页继续阅读