循环神经网络_四十.循环神经网络(RNN)原理

一.概述

全连接网络和卷积网络都属于前向反馈网络,模型的输出和模型本身没有关联。而循环神经网络的输出和模型间有反馈。

循环神经网络引入了记忆体的概念,

时刻的记忆体
通过
时刻的输入
和上一时刻的记忆体
求得,因此,循环神经网络保留了历史信息,常用来处理语音、文字等序列相关的信息。

04aa372dfd7659e1073e0aaa21bfec9f.png

上图所示为

时刻的循环神经网络,其中,只有一个记忆体
,它与
和上一

时刻的

相关;输出
和记忆体
相关。

f0ae909f392fbd4defa0330fd4a30148.png

如上图所示,将循环核按时间序列展开后,在前向传播的过程中,主要更新记忆体

和输出
,参数矩阵
是不变的;在反向传播过程中,主要用梯度下降来更新参数矩阵
。循环神经网络借助循环核对时间特征进行提取,然后将提取的特征送入全连接网络进行预测。

2c9bb284dc7a776612e1261937263829.png

如上图所示,循环核的数量可以进行设定。

二.前向传播

1.

时刻记忆体

对于任意一个索引序号

,隐藏状态
由序列
对应的输入
和前一时刻的隐藏状态
共同决定:

其中,U、W为系数矩阵,全局共享。b为偏置向量。

为激活函数,一般为tanh。

2.

时刻的预测值

V和W、U一样,是全局共享的系数矩阵,c为偏置向量,

一般为softmax函数。

三.反向传播

1.损失函数

模型的整体损失定义为各个时刻损失的和:

时刻的损失一般定义为交叉熵损失:

其中,

为one-hot编码的0-1向量,
为各个类别的预测概率值。

为计算方便,引入中间量

,则
为softmax函数时:

上式中,

为全1行向量,
为类别数,分子为向量,分母为标量,
为向量,带入损失函数:

上式中,

为标量,最终结果
为标量。

2.

对V、c求梯度

标量对矩阵、向量求导,使用矩阵微分和迹函数公式:

所以:

3.对

求梯度:

已知:

可得:


综上:

令公共项

为误差项
,求误差项。由RNN模型的求解过程可知,在某一序列位置t的梯度损失由当前位置的输出对应的梯度损失和序列索引位置
t+1时的梯度损失两部分共同决定:

所以:

更新

梯度公式:

因此,可以由后一层的梯度误差

求出前一层的梯度误差
,那么最后一层的梯度误差
怎么求?

对于最后一层T层,后边没有

,所以,
与当前层的输出
相关,因此:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值