【机器学习算法】神经网络与深度学习-9 递归神经网络(Recurrent Neural Networks,RNN)

目录

递归神经网络(Recurrent Neual Networks,RNN)

一个有记忆的神经网络

RNN的应用:

RNN的两种方法如下:


我的主页:晴天qt01的博客_CSDN博客-数据分析师领域博主

目前进度:第四部分【机器学习算法】

递归神经网络(Recurrent Neural Networks,RNN)

DNN和CNN都是不撞南墙不回头的神经网络,它不会有feedback的操作。

一个有记忆的神经网络

我们在很多的应用上,我们需要把结果的feedback回来,帮助我们做判断。这种情况我们就可以用RNN的处理方法。

RNN模型如下

RNN除了上一次数据的输入,还有这一次数据的保留一起当做输入字段协助你再下一次输出会做的更正确。所以跑RNN模型必须要注意,输入字段的前后是有关系的我们之前跑的模型,数据的输入,前后是没有关系的。比如图像输入,我马上判断它是猫还是狗,第一只是猫是狗,对下一只有影响吗,如果是CNN是不会有关系的。如果跑的是RNN的话,前者会影响后者,有时候后面也会影响前面。

数据输入不是单一的数据,它是一连串的数据,我们把左边RNN的图展开,其实步骤就是X0是我第一个时间点输入的值,隐藏层呢会输出到输出层,输出之后,还会往右输入到一样的隐藏层。第二次进行数据处理的时候,它会考虑X0的输出结果,进行处理,下一个时间点呢,我们输入了一个X2,X2又会把上一次X1的数据进行处理,架构看起来只有一个架构,实际上我们根据时间召开,它的模型是像右图一样。

但是实际上的架构是左图。

RNN的应用:

比如现在我们有一个ticket book系统(砍价系统)

现在有一个顾客说它想在11月二号抵达台北。然后这句话被输入系统,系统要怎么理解这句话呢?它需要知道目的地和时间。我们想要了解这两个信息,solving

用RNN就很适合。因为如果我们想要用CNN进行处理的话,准确率就没那么高。,这里的图中y1y2代表的是信息是时间的概率和信息是地点的概率。

如果我们要输入文本的词。,最简单的方法自然就是用独热模型对词进行处理。

词汇的大小代表的就是向量的大小。Apple就是10000

当然也有其他的模型比如你不认为每个词都应该占用一个位置。那么就可以使用其它字段,降低向量长度。还有一种方法,我们不考虑词,我们考虑字母的组合,比如3个字母的单词,我们就可以采用26*26*26的方法,进行组合。

向量长度就是26*26*26

那么apple就只会在app和ple ppl,3个位置是1.向量长度可能有所缩短。

现在我们输入taipei,会出现2种情况:一个台北代表的是终点的位置,一个台北代表的是起点的位置,比如

所以我们不仅仅只考虑一个词taipei,我们还要考虑它前一个词,如果前一个词输入的是leave,即使是taibei,dest的概率也应该小。说明我们的神经网络对之前输入的词要有记忆Memory,那么这个时候RNN就非常合适。

说明一下RNN的其中一种架构

比如这次输入的是a1,那么它对a1就会有记忆。然后它输出的结果就会不一样memory就会被考虑为另外一个的输入。也可以被考虑为短期记忆,用上一个的memory也当做输入层。也就是a1,a2就会变成一个输出和输入层都经过的点。

可以发现我们2是之前输入11的结果,这个时候它就变成输出神经元,一起加总进来,2+1+1+2就是6,然后再被6输出的结果更新。

改变输入顺序,结果也会出现不同

每次,输出新的值

比如arrive1被输入到x1的时候,再输入taipei的概率就很高,

我们对比一下就可以发现,如果前面是leave的Taipei和前面是arrive的taipei二者是终点站的概率是完全不同的。所以这个单词是相同的,但是前一个单词的记忆不同,也会出现不同的判断。

这个就是RNN的做法,它的输入必须是一个序列形式的输入,前后关系。

刚才我们的RNN都是只有一个隐藏层,实际上RNN是可以有多个隐藏层。每个隐藏层的结果会feedback到下一个隐藏层,这种架构叫做elman netword

也有另一种架构会把输出结果放在第一个隐藏层。

RNN的两种方法如下:

Elman Network和Jordan Network其实是根据实际情况的不同选择其中一种方法,如果需要记忆最后的输出结果,就使用Jordan,否则需要过程结果就使用Elman

RNN还有一种双向记忆的方法,结合前后的输入,来综合最后的结果。

既看左边的词,又看右边的词,双向RNN。

后面也有发展,可能我们不仅仅考虑短期记忆,要考虑长期记忆,协助解决方法的LSTM之类的模型。

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 25
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天qt01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值