RNN神经网络

			RNN神经网络

一、 什么是RNN神经网络

RNN是一种特殊的神经网络结构, 它是根据"人的认知是基于过往的经验和记忆"这一观点提出的. 它与DNN,CNN不同的是: 它不仅考虑前一时刻的输入,而且赋予了网络对前面的内容的一种’记忆’功能.
RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出
为什么会有RNN呢?
细想BP算法,CNN(卷积神经网络)我们会发现, 他们的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响, 比如简单的猫,狗,手写数字等单个物体的识别具有较好的效果. 但是, 对于一些与时间先后有关的, 比如视频的下一时刻的预测,文档前后文内容的预测等, 这些算法的表现就不尽如人意了.因此, RNN就应运而生了
二、 经典的RNN神经网络
在这里插入图片描述

T1时刻,输入一个x1,通过h1隐含层,得到一个y1,通过y1计算出对应的损失,T2时刻,输出一个x2,通过隐含层h2,这个h2的隐含层受到之前h1的隐含层影响,所以h2会加上h1乘上对应的权值whh,在通通过h2隐含层输出y2,在计算出损失函数,以此类推。Whh是一个共享参数,整个RNN都使用同一个Whh,Wxh,why
RNN的隐含层h1除了第一个以外,其余的隐含层都受上一个隐含层的影响,所以当前隐含层的计算等于当前的隐含层加上上一个隐含层乘上对应的权重,再通过这样预测出y。
RNN的损失函数是累加所以预测Y后的损失函数。

通过语言文本来训练RNN模型:
在这里插入图片描述

知道我们要训练的句子,将句子转化成词向量用作输入,讲词向量I输入,通过H1,Why后,计算下一个单词的概率,而我们知道下一个单词应该是什么,在通过交叉熵计算损失,以此类推。
三、 RNN的反向 传播(bptt)
在这里插入图片描述

RNN的损失函数是累加所以预测Y后的损失函数。
Ht是由输入的x乘上权重Wxh,加上上一个ht-1乘上whh,得到ht
但我们的损失函数想对H1进行梯度求导时:
在这里插入图片描述

根据反向传播算法具有依赖性,得出当我们想对H1求到,则需要先对h1之前的h进行求导。
在这里插入图片描述

Ht是一个向量,ht-1也是一个向量,向量对向量求导得到的是一个矩阵,所以我们求导得出的是一个对角矩阵。
对h1反向传播的求导公式如下
在这里插入图片描述

因为我们的Whh是共享参数,所以每次求导都会对Whh进行梯度求导。
这样会面临一个问题,当RNN网络很深时,Whh的值在0<Whh<1,那么就会出现梯度消亡,反正则出现梯度爆炸,

四、 RNN的梯度消亡与梯度爆炸
当对RNN进行求导时,发现对所以的ht进行求导,都会乘上一个Whh
这样会面临一个问题,当RNN网络很深时,Whh的值在0<Whh<1,那么就会出现梯度消亡,反正则出现梯度爆炸,
在这里插入图片描述

	通过梯度下降法进行求导,出现梯度爆炸或者梯度消亡问题

在这里插入图片描述

那么该如何解决呢?
(1) 梯度爆炸
在这里插入图片描述

设置一个梯度阈值,当我们的梯度大于这个阈值时,则使用这个阈值作为这次的梯度
(2) 梯度消亡
通过LSTM来缓解这个现状,并不能解决,只能将原本深度到达10就会出现的消亡现象,延长到50
五、 LSTM
Long ShortTerm 网络——一般就叫做LSTM——是一种RNN特殊的类型,可以学习长期依赖信息。当然,LSTM和基线RNN并没有特别大的结构不同,但是它们用了不同的函数来计算隐隐含层。
LSTM的“记忆”我们叫做细胞/cells,你可以直接把它们想做黑盒,这个黑盒的输入为前状态和当前输入。这些“细胞”会决定哪些之前的信息和状态需要保留/记住,而哪些要被抹去。实际的应用中发现,这种方式可以有效地保存很长时间之前的关联信息。
在这里插入图片描述

LSTM与传统RNN不同就在与隐含层,LSTM在计算隐含层时,通过各种门进行计算,最终得到ht,而这些门就是用来缓解梯度消亡的。
下列我们来看看ht是如何计算的:
在这里插入图片描述

LSTM有三个门
Forget(遗忘门):忘记不重要的参数,保留重要的参数

Enput(输入门):决定我们应该更新哪一些参数。通过tanh激活函数创建我们的候选向量C(t)。
Output(输出门): 更新我们想要的Ht

当去更新新的参数时,要先通过遗忘门忘记上一层中不重要的参数,再将当前计算得到的C(t)输入层进行计算,相当于上一层的C(t-1)与这一层的C(t)进行融合,而遗忘门和输入门相当于权重参数。通过这种方式来缓解梯度消亡

六、 Bi-directional LSTM
在文本领域,我们想预测句子中的单词的上下文信息,那么就可以使用Bi-drectional LSTM,它是由两个LSTM组成,网络结构如下:
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值