对深度学习之RNN(循环神经网络)的理解。

深度学习之RNN(循环神经网络)

RNN网络存在三个矩阵在不同时刻权重共享,即从头到尾只需要计算这三个矩阵。

U:输入层到隐层的矩阵

V:隐层到输出层

W:隐层到自身的矩阵

二、反向传播

RNN损失为各个时间点的损失之和,故各个梯度的变化为各个时间点梯度变化之和

RNN语言模型为例子,损失函数使用交叉熵,其中yt为t时刻正确的词语,y^t为t时刻预测的词语。

深度学习之RNN(循环神经网络)

分别对三个矩阵进行求导

                                                深度学习之RNN(循环神经网络)

 

深度学习之RNN(循环神经网络),用到了softmax的求导公式。可见关于V的梯度用不到上一层的状态值,所以不需要累计。

 

深度学习之RNN(循环神经网络)   

由于深度学习之RNN(循环神经网络) 依赖s2,而s2依赖W和s1,以此类推。所以

深度学习之RNN(循环神经网络)

可见由于W在所有隐层中共享,许多变量都依赖W,导致求导链变长,这就是BPTT的特点,将每层的影响都累计起来。下图为各链接之间的导数,在所有层中不会改变,也体现了传播的路径。

深度学习之RNN(循环神经网络)

跟一般的反向传播一样,这里也定义一个Delta 向量:

深度学习之RNN(循环神经网络)

其中:深度学习之RNN(循环神经网络),所以:

深度学习之RNN(循环神经网络)

同理

深度学习之RNN(循环神经网络)