一.概述

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

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

循环神经网络结构 循环神经网络结构讲解_循环神经网络

上图所示为 时刻的循环神经网络,其中,只有一个记忆体,它与和上一时刻的相关;输出和记忆体相关。

循环神经网络结构 循环神经网络结构讲解_循环神经网络结构_02

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

循环神经网络结构 循环神经网络结构讲解_标量_03

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

二.前向传播

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层,后边没有,所以,与当前层的输出

相关,因此: