推导RNN反向传播

先考虑一个样本(输入和激活都是向量而不是矩阵)

正向传播:

推导RNN反向传播                       g是激活函数,例如tanh

推导RNN反向传播

推导RNN反向传播

推导RNN反向传播         输出的激活函数是softmax,损失函数是交叉熵

推导RNN反向传播                                  损失函数对所有时间步求和

以上五个式子就是正向传播中计算输出和损失用到的所有公式,通过对他们链式法则求导,我们也可以推出反向传播的所有公式

反向传播:

当输出的激活函数是softmax,损失函数是交叉熵时,损失函数推导RNN反向传播对线性输出推导RNN反向传播的偏导数可以简单的写成:

推导RNN反向传播        (1)

式(1)左边实际上表示一个向量,其第i个元素对应推导RNN反向传播

下面证明公式(1)

由于

推导RNN反向传播

可见损失函数推导RNN反向传播是向量推导RNN反向传播的函数, 推导RNN反向传播推导RNN反向传播的“导数”实际上是一个向量(一阶张量),为了方便表述,我们只计算这个向量的第j个元素,即对第j个元素推导RNN反向传播求偏导得到 

推导RNN反向传播        (2)

由于

推导RNN反向传播

 推导RNN反向传播推导RNN反向传播的导数是向量对向量的导数,实际上是一个矩阵(二阶张量),为了方便表述,我们只写出推导RNN反向传播推导RNN反向传播求偏导的结果。

 推导RNN反向传播

 

式中的推导RNN反向传播是Kronecker delta符号,在i=j时为1,否则为0. 我们用推导RNN反向传播推导RNN反向传播替换上式中的对应项,得到

推导RNN反向传播                   (3)

 

现在考虑式(1)中推导RNN反向传播推导RNN反向传播的导数,也只考虑第i项即对推导RNN反向传播的偏导数。由于我们在式(2)中已经得到了推导RNN反向传播推导RNN反向传播的偏导数,而在(3)中得到了推导RNN反向传播推导RNN反向传播的偏导数,根据偏导数的链式法则

 推导RNN反向传播 

即证明了式(1). 上式的推到中用到了推导RNN反向传播的性质,以及推导RNN反向传播这一特点(推导RNN反向传播作为表示分类的one-hot 0-1向量,只有一个元素为1,所以这里的求和为1)。

下面我们继续推导反向传播中的其他公式。

根据公式推导RNN反向传播,我们可以由推导RNN反向传播得到参数推导RNN反向传播推导RNN反向传播的导数

 

 吃完饭回来继续写。。。

 

 

上一篇:2021-09-010牛客网每日10题--前端


下一篇:Js(Javascript)的apply call 和bind区别