LSTM和GRU-解决RNN的梯度消失和梯度爆炸

RNN的问题

LSTM与GRU的存在是为了解决简单RNN面临的长期依赖问题(由于反向传播存在的梯度消失或爆炸问题,简单RNN很难建模长距离的依赖关系),一种比较有效的方案是在RNN基础上引入门控机制来控制信息的传播。
为了最小化训练误差,梯度下降法(Gradient descent)如:应用时序性倒传递算法,可用来依据错误修改每次的权重。梯度下降法在递回神经网络(RNN)中主要的问题初次在1991年发现,就是误差梯度随着事件间的时间长度成指数般的消失。

RNN中的总的梯度不会消失。即便梯度越传越弱,那也只是远距离的梯度消失,由于近距离的梯度不会消失,所有梯度之和并不会消失。RNN 所谓梯度消失的真正含义是,梯度被近距离梯度主导,导致模型难以学到远距离的依赖关系

RNN的梯度
权值梯度

中间的括号内为连乘,所以当w小于1的时而t足够大的时候,距离t越远w的幂愈大,梯度也就会越小,与远距离的依赖关系就越差,也就是梯度消失。而当w大于1的时候,同样的情况就会发生梯度爆炸。(这里的公式可能存在问题:B站up主的推导公式中,除了连乘的这一项,还保留了离他最近的输入的偏导那一项,但是这却没有。)

为了解决这种由于w的高次幂导致的梯度消失和梯度爆炸,引入可LSTM(长短期记忆网络)。

长短期记忆人工神经网络(LSTM)

标准RNN中只包含单个tanh层的重复模块
LSTM也有与之相似的链式结构,但不同的是它的重复模块结构不同,是4个以特殊方式进行交互的神经网络


LSTM示意图
公式

其实,传统RNN中的 ht存储着历史信息,但是 ht每个时刻都会被重写,因此可以看做一种短期记忆。长期记忆可以看做是网络内部的某些参数,隐含了从数据中学到的经验,其更新周期要远远比短期记忆慢。

而在LSTM网络中,内部状态 ct可以在某个时刻捕捉关键信息,并有能力将此关键信息保存一定的时间间隔,看式1.5,如何保存关键信息可以通过遗忘门ft和输入门it进行控制,因此内部状态ct保存信息的周期要长于短期记忆,但又要短于长期记忆,因此成为长短期记忆,即指长的”短期记忆“。

原理

门控循环单元网络(GRU)

大家想一下我们更新门的作用和意义是什么,是不是就是为了将上一时刻和当前时刻总共有多少有用的信息需要接着往下传递呀,我们更新门的输入数据是什么是不是就是ht-1和xt,那么我们假设上一时刻有用的信息是0.2,那么我本时刻传递的时候是不是就传递1-0.2=0.8的有用信息啦,一般情况下极端值比较好理解,我们假设说上一时刻传递的信息都没有用,那么也就是说我的上一时刻的信息是不是不需要继续往下传递了呀,所以他的sigmoid输出是不是就成了0啦,然后我当前时刻有用的信息是不是要接着往下传啦,传递多少呢,1-0=1,是不是代表的意思就是说,我上一时刻的所有信息都没有用,全部抛弃啦,然后我是不是就相当于在当前时刻又重新开始记忆啦,那么我当前时刻就是我要重新记忆的开始,所以我要全记住接着往下传递,就好像我在第一时刻和第二时刻一样,我第二时刻传递进来的上一时刻的信息不就是第一时刻所有的信息吗。

参考

RNN的梯度消失和梯度爆炸_快乐小码农的博客-CSDN博客_rnn梯度消失
LSTM与GRU的原理 - 知乎 (zhihu.com)
LSTM的工作原理究竟是什么?深入了解LSTM-电子发烧友网 (elecfans.com)
GRU:什么是GRU?为什么要学习GRU?Taizhuang的博客-CSDN博客_gru

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容