循环神经网络RNN_LSTM_GRU_BRNN

本文介绍了循环神经网络RNN及其变体,包括LSTM、GRU和BRNN。RNN用于序列数据处理,LSTM通过门控解决长期依赖问题,GRU简化了LSTM,而BRNN则利用双向信息提高预测准确性。
摘要由CSDN通过智能技术生成

1.NN

下面这一张有点像银河系的东西就是我们大脑的神经网络中的一部分,看到这各种纷繁复杂却又缤纷多彩的结构,真的使人感慨造物的奇妙与伟大。但是人类可不是一种只会发出感慨的物种,他们有野心,动力十足,他们善于模仿和学习。为了模仿这种生物神经网络,人类使用计算机建模的方式创造了一种自己的神经网络,叫做人工神经网络,下面简称为神经网络。
在这里插入图片描述
神经网络模仿人类接受信息后,对信息处理的过程。下面一个个圆圈对应的就是人类的神经元。
输入层表示从外界进入的信息。
隐藏层表示大脑对这些信息进行加工处理,通常会有多个隐藏层,即一层处理完的信息会交由下一层继续学习。而且为了模仿人类神经元中化学变化(也就是最不可思议的那一部分)的过程,隐藏层中都会包含有非线性函数,如relu、sigmoid、tanh等。
输出层是人类对于这些信息的反应,通常与输入信息对应。比如输入“你好帅呀!”,输出“唉,我也没有办法!”;输入“你真是个虚荣的人”,输出“你爸爸也是个虚荣的人呢!”
神经网络训练的过程就是学习各个参数的过程,通过将真实值和预测值进行比较,使用梯度下降的方式来迭代的调整参数。使得经过参数的处理结果更接近于真实情况,使其具备处理陌生信息的能力。
在这里插入图片描述

2.RNN(Recurrent Neural Network)

RNN 是神经网络的一种变形,擅长处理输入为序列的情况。当然没有对比就没有伤害,之所以说它擅长,那肯定是因为传统的神经网络不是很擅长。
如何按照逻辑的方式将知识存储进脑袋里面,形成一种永久的记忆呢?永久记忆是一种神经元的改变,科学家这么说的。那我们考虑神经元里面有什么?毫无疑问非线性变化呗!简单解释非线性变化就是将东西变得奇奇怪怪。对于知识也是一样,首先学习,再通过自己独特的理解方式将它表达出来,它才是你的。
简单解释RNN就是加入了输入依赖,加入的办法就是将前一个时刻隐层的输出和当前时刻的输入结合作为当前时刻隐层的输入。
公式如下:
O ( t ) = g ( V ∗ S t ) O(t) = g(V*S_{t}) O(t)=g(VSt)
S t = f ( x t ∗ U + S t − 1 ∗ W ) St = f(x_{t}*U+S_{t-1}*W) St=f(xtU+St1W)
值得注意的是,公式中的U、V、W参数只有一套,所有的时刻公用。将上面的公式和下面的图画在笔记本上,没事看看,直到你爱上她,你就练成绝世武功了!
我真的会这么做,因为我太无聊了。程序员都必须学会的一项技能就是玩自己,你看着这么枯燥的东西,想办法让它把自己逗乐了,这就是在沙漠中开出花来的吧!
在这里插入图片描述

3.LSTM

LSTM是RNN中的一种,所以其也采用循环结果的形式。为了解决RNN对于长期依赖产生的梯度消失和梯度爆炸问题,特别设计了门控操作,对RNN的内部单元进行调整。
所以说遗忘和记忆一样,都是一种本领。那些什么都不记得的人,像个傻子。那些把所有东西都记住的人,活不长久。
首先,LSTM(Long Short Term Memory networks),既然叫长短时记忆。那么我们就从长短时记忆这个概念入手,长时记忆指的是上面的一条线(对应历史信息),短时记忆指下面的线(对应当前信息和前一时刻信息)。如何实现长短时记忆呢?LSTM有三道门,遗忘门(图中的1线),负责对过去的信息进行适当的遗忘;输入门(图中的2线),负责将当前的信息加入到长时记忆中;输出门(图中的3线),通过处理得到最终的结果,并且将当前结果传输给下个时刻。
在这里插入图片描述
我们来看看具体如何实现各个门:
门的概念其实有点像注意力机制,首先通过sigmoid得到注意力概率分布,将注意力概率和对应的值相乘,达到对不同值进行强化或弱化注意力的目的。

  • 遗忘门 f t = σ ( W f [ h t − 1 , X t ] + b f ) ∗ C t − 1 f_{t}=σ(W_{f}[h_{t-1},X_{t}]+b_{f})*C_{t-1} ft=σ(Wf[ht1,Xt]+bf)Ct1

  • 输入门 c t = σ ( W i [ h t − 1 , X t ] + b i ) ∗ t a n h ( W i [ h t − 1 , X t ] + b i ) + f t c_{t}=σ(W_{i}[h_{t-1},X_{t}]+b_{i})*tanh(W_{i}[h_{t-1},X_{t}]+b_{i})+f_{t} ct=σ(Wi[ht1,Xt]+bi)tanh(Wi[ht1,Xt]+bi)+ft

  • 输出门 o t / h t = σ ( W o [ h t − 1 , X t ] + b o ) ∗ t a n h ( c t ) o_{t}/h_{t}=σ(W_{o}[h_{t-1},X_{t}]+b_{o})*tanh(c_{t}) ot/ht=σ(Wo[ht1,Xt]+bo)tanh(ct)
    上面点的公式(其中σ为sigmoid函数)看着很繁琐,其实都是看着图一步步写出来的。只要能把图画出来,公式就很自然地带出来了。我是这么梳理这张图的:
    首先有两条线(长时记忆、短时记忆),三个门(遗忘门、输入门、输出门)。门都是使用sigmoid实现,三个门分别对不同的信息进行注意力处理(直接相乘)。比如遗忘门是对长时记忆进行注意力处理,所以乘以 C t − 1 C_{t-1} Ct1;输入门,是对短时记忆进行处理,所以乘以上时刻和当前时刻处理后的信息;输出门是对加入了当前短时记忆的长时记忆进行处理,所以乘以 t a n h ( c ( t ) ) tanh(c(t)) tanh(c(t))。处理后的结果传到下一时刻。
    RNN我劝大家多看看,日久生情。但是到LSTM这,我劝大家多想想,直到你真的懂她。因为女人永远无法抵挡一个真正懂自己的人!个人想法,如有错误,不承担任何法律责任。

4.GRU(Gated Recurrent Unit)

GRU属于LSTM的一种变形,对于LSTM中的三个门(遗忘门、输入门、输出门)操作,GRU中只有重置门和更新门操作。
其中 r t r_{t} rt为重置门, z t z_{t} zt更新门。

在这里插入图片描述

说实话这幅图刚开始看真的是有点辣眼睛,反正对于资质愚钝的我来说,是看了三四遍才把公式跟图能对应上。比如 r t r_{t} rt左边为什么会有一个加法,比如这个图为什么歪歪扭扭还有那么多人用。但是明白了之后就会觉得还行吧!我觉得这个得先熟悉公式,照着公式倒推图会比较清晰一些。
首选 r t r_{t} rt z t z_{t} zt这两个门的设计和LSTM并没有什么差别,都是使用sigmoid函数。
其次 h ~ t \widetilde{h}_{t} h t,当先输出的候选值,是对历史信息进行 r r r的注意力处理之后,再和当前输入信息进行神经元处理,相当于粗糙的输出值
最后输出 h t h_{t} ht,精细的输出值,相当于给历史信息和当前候选值赋予不同的权重,得到新值。重置门 z z z权重,为了保证权重和为1,历史信息 h t − 1 h_{t-1} ht1需要乘以 1 − z 1-z 1z

GRU是2014年出的新版,相当于对LSTM的升级。其效果和LSTM差不多,但是在计算量方面少于LSTM,理解起来也会稍微的简单一些。

5.BRNN(Bidirectional RNN)

上面的LSTM和GRU都是针对RNN内部处理单元的改进,但是它们都存在的一个问题就是只能够考虑到序列之前的信息,无法结合后面的信息。
但是后面的信息对于推测当前信息也是有一定的价值的,本着方法总比困难多的原则,聪明的人类就设计出了BRNN这种结构,即双向的RNN。
其核心的思想也很简单,由两个RNN组成,一条向前的RNN,一条向后的RNN,在将两条RNN中每一时刻的输出结合起来,作为最终的输出。这样每个时刻都包含了所有时刻的信息。
在这里插入图片描述

6.总结

本文我们主要从神经网络引入了循环神经网络RNN,用来处理序列型的数据。为了解决RNN长依赖造成的梯度消失或者梯度爆炸问题,提出了LSTM结构,主要使用门控机制来实现长短期记忆。然后为了简化LSTM的操作,提出了GRU的结构,这种结构只有重置门和更新门两个操作。减少了参数和复杂度,也达到了和LSTM差不多的效果。最后为了使后面的序列信息,对前面的预测起作用,我们提出了BRNN,双向RNN由两条RNN链组成,每个时刻都包含所有时刻的上下文信息。

7.The Sound of Silence

我没有办法强迫自己忘记已经发生过的一些事情,我就扇自己。我时常想起门口理发店的小女孩,上课的时候总是喜欢拿笔戳我!想起我高中时候的同桌,夏天教室很热,我就在她睡着的时候悄悄地给她扇扇子。她说七里香很好听,我就买了周杰伦的专辑,学了所有的歌!想起我们班外号猛男的同学,有一天下定决心要改变自己,然后他就决定和我做朋友。我告诉自己回忆是属于冬天的,只有在经历了繁华,经过了奋斗,阅尽人世间的沧桑之后,才有资格去回忆。我喜欢行到水穷处,坐看云起时。但如果现在的我必须行在地铁上,坐在办公室的时候,这就是我所喜欢的!我觉得我必须要出人头地,不是因为出人头地有什么好的。而是因为我是一个倔强的人,我从小就不听话。生活告诉我要平静安稳的活下去,我偏不!我就不!要不你把我杀死,要不我就把你气死。呵呵!

YouTube好评最多的阿卡贝拉乐团合唱寂静之声

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值