对于神经网络而言,每一个样本的输入与输入直接都是独立的,即预测的结果之间并没有联系

而对于RNN而言:不仅仅是有当前的输入,而且上一层的隐藏层也将进行输入,用于进行结果的预测。因此每一个输入都与之前的输入可以通过隐藏层的输入而产生联系。

这种特性在自然语言的处理中使用较广,即当前输入预测下一个词,与上一层隐藏层的传入有关

RNN的前向传播

深度学习原理与框架-RNN网络架构-RNN网络  1.RNN的前向传播  2.RNN的反向传播-LMLPHP

比如预测ot结果,即输入xt,预测下一个词的结果即为ot,

st表示的是当前隐藏层的个数,V表示将st进行np.argmax求得预测类别, 使用softmax计算损失值函数

输入的话分为两步:当前预测值得输入和上一个隐藏层的输出,通过st = f(Uxt + Wst - 1) 获得当前隐藏层的结果,进行ot的预测

RNN的反向传播

当预测结果E3进行反向传播时,先经过一个dloss/dprobs, 即损失值对softamx概率的反向求导,然后分为两步:一步是对u的求导,即dout * dx, 另外一步是

ds3/ ds2 进行求导,即dout * W, 在此之前也需要一步relu的求导, 一步一步向后传,直到传到第一个输入层

深度学习原理与框架-RNN网络架构-RNN网络  1.RNN的前向传播  2.RNN的反向传播-LMLPHP

05-06 09:52