Home Blogs Readings Notes Jupyter Seafile

GRU的推导和实现

6 May 2018

Table of Content

===========

前向计算

反向推导

计算图

这个图是从参考的文章里直接拿来的,需要自己画个更好。

因为GRU中核心的要求的参数除外,就是, ,这三个。

此处 的意思是将其他项都看作常数项时的求导。 上面的求导公式中都添加了乘积的计算。这个乘积的具体推导过程和RNN是基本一致的。 从上面三个式子可以看出接下来需要具体展开的求导过程由两种, 一种是,另一种就是类似的2个。

在上述的推导过程中可以看到要对三个偏导计算的复杂度都是.那么有木有更高效的算法呢?通过对公式的进一步推导之和是有的。

的计算进行前后调整,这个调整实际上是将从t往前计算梯度的过程,转变成从后往前求。总量不变。

其实上式的核心点在于以累加的方式更新:

小结

GRU和LSTM的核心区别在于将三个门转成2个。减少了一定量的参数,但是二者的核心思想都是通过门路来调整 信息的传递。孰优孰劣并无定论。一图胜千言,有了计算图对反向传播的求导理解事半功倍。

Refs:

-->
Fork me on GitHub