RNN、GRU和LSTM前向傳播和反向傳播的公式

目錄

1. 普通遞推神經網絡(Recurrent Neural Network)的前向傳播公式

2. 門控遞推單元(Gated Recurrent Unit,GRU)的前向傳播公式

3. 長短期記憶單元(Long Short-Term Memory,LSTM)的前向傳播公式

4. 普通遞推神經網絡的反向傳播公式

5. GRU的反向傳播公式

6. LSTM的反向傳播公式


a\cdot b\mathrm{ab}表示矩陣乘法,a * b表示按元素相乘(學名叫做Hadamard product)。a^{<t>}中的<t>表示第t步。W_{ax}表示矩陣有n_a(激活值的維度)行,n_x(輸入值的維度)列。x表示輸入,a表示激活值,c表示隱藏狀態,u表示更新(輸入)門,o表示輸出門,f表示遺忘門。

1. 普通遞推神經網絡(Recurrent Neural Networ_t^j=\sigma(W_r\mathrm{x}_t+U_r\mathrm{h}_{t-1})^jrk)的前向傳播公式

下式輸出了激活值。

a^{<t>}=\tanh{(W_{ax}x^{<t>}+W_{aa}a^{<t>}+b_{a})} \\ =\tanh{(\begin{bmatrix}W_{ax} W_{aa} \end{bmatrix} \begin{bmatrix}x^{<t>} \\ a^{<t>} \end{bmatrix} + b_a)} \\ = \tanh{(W_a \begin{bmatrix} x^{<t>} \\ a^{<t>} \end{bmatrix} + b_a)}

下式把激活值映射到輸出的概率空間中。

\widehat{y}^{<t>}=softmax(W_{ya}a^{<t>}+b_y)

2. 門控遞推單元(Gated Recurrent Unit,GRU)的前向傳播公式

重置門(reset gate)r_t的計算

r_t=\sigma(W_r\mathrm{x}_t+U_r\mathrm{h}_{t-1})t代表第t步。

候選激活值(candidate activation)\widetilde{h}_t的計算

\widetilde{h}_t=\tanh{(W\mathrm{x}_t+U(\mathrm{r}_t*\mathrm{h}_{t-1}))}

更新門(update gate)z_t的計算

z_t=\sigma{(W_z\mathrm{x}_t+U_z\mathrm{h}_{t-1})}

激活值h_t的計算

h_t=(1-z_t)*h_{t-1}+z_t*\widetilde{h}_t

3. 長短期記憶單元(Long Short-Term Memory,LSTM)的前向傳播公式

下式是遺忘門,用於忘記上一步的隱藏狀態。

h_{\Gamma_f}^{<t>}=W_f \begin{bmatrix} a^{<t-1>} \\ x^{<t>} \end{bmatrix} + b_f

\Gamma_{f}^{<t>}=\sigma(h_{\Gamma_f}^{<t>})

這是更新(輸入)門,用於決定保留多少輸入。

h_{\Gamma_u}^{<t>}=W_u \begin{bmatrix} a^{<t-1>}\\ x^{<t>} \end{bmatrix}+b_u

\Gamma_{u}^{<t>}=\sigma(h_{\Gamma_u}^{<t>})

這是初步的隱藏狀態,與遺忘門和更新門無關。

h_{\widetilde{c}}^{<t>}=W_c \begin{bmatrix}a^{<t-1>} \\ x^{<t>} \end{bmatrix} +b_c

\widetilde{c}^{<t>}=\tanh{(h_{\widetilde{c}}^{<t>})}

這是最終的隱藏狀態,經過遺忘門和更新門的調整。

c^{<t>}=\Gamma_f^{<t>}*c^{<t-1>}+\Gamma_u^{<t>}*\widetilde{c}^{<t>}

這是輸出門,用於決定輸出多少隱藏狀態。

h_{\Gamma_o}^{<t>}=W_o \begin{bmatrix} a^{<t-1>} \\ x^{<t>} \end{bmatrix} + b_o

\Gamma_o^{<t>}=\sigma(h_{\Gamma_o}^{<t>})

這是最終的激活值。

a^{<t>}=\Gamma_o^{<t>}*\tanh{(c^{<t>})}

4. 普通遞推神經網絡的反向傳播公式

這是激活值。

a^{<t>}=\tanh{(W_{ax}x^{<t>}+W_{aa}a^{<t-1>}+b)}

這是tanh的求導公式。

\frac{\mathrm{d} \tanh{(x)}}{\mathrm{d} {x}}=1-\tanh{(x)}^2

下面是對各個參數的偏導。

\frac{\partial{a^{<t>}}}{\partial{W_{ax}}} = (1-(a^{<t>})^2)\cdot (x^{<t>})^T

\frac{\partial{a^{<t>}}}{\partial{W_{aa}}}=(1-(a^{<t>})^2)\cdot (a^{<t-1>})^T

\frac{\partial{a^{<t>}}}{\partial{b}}=\sum_{batch}(1-(a^{<t>})^2)

\frac{\partial{a^{<t>}}}{\partial{x^{<t>}}}=W_{ax}^T \cdot (1-(a^{<t>})^2)

\frac{\partial{a^{<t>}}}{\partial{a^{<t-1>}}}=W_{aa}^T\cdot (1-(a^{<t>})^2)

5. GRU的反向傳播公式

\frac{\partial{h_t}}{\partial{z_t}}=h_{t-1}+\widetilde{h}_t

\frac{\partial{h}_t}{\partial{W_z}}=(\frac{\partial{h_t}}{\partial{z_t}}*(z_t*(1-z_t)))\cdot \mathrm{x}_t^T

\frac{\partial{h_t}}{\partial{U_z}}=(\frac{\partial{h_t}}{\partial{z_t}}*z_t*(1-z_t))\cdot h_{t-1}^T

\frac{\partial{h_t}}{\partial{W}}=(z_t*(1-\widetilde{h}_t^2))\cdot \mathrm{x}_t^{T}

\frac{\partial{h_t}}{\partial{U}}=(z_t * (1-\widetilde{h}_t^2))\cdot (r_t * h_{t-1})^T

\frac{\partial{h_t}}{\partial{r_t}}=(U^T\cdot (z_t * (1 - \widetilde{h}_t^2))) * h_{t-1}

\frac{\partial{h_t}}{\partial{W_r}}=(\frac{\partial{h_t}}{\partial{r_t}}*r_t*(1-r_t))\cdot \mathrm{x}_t^{T}

\frac{\partial{h_t}}{\partial{U_r}}=(\frac{\partial{h_t}}{\partial{r_t}}*r_t*(1-r_t)) \cdot h_{t-1}^T

\begin{aligned} \frac{\partial{h_t}}{\partial{x_t}} &=W_z^T\cdot ((\widetilde{h}_t-h_{t-1})*z_t*(1-z_t)) + z_t*(W^T \cdot (1-\widetilde{h}^2_t) +W_r^T\cdot ((U^T \cdot (1-\widetilde{h}^2_t))*h_{t-1}*r_t * (1-r_t))) \end{aligned}

\begin{aligned} \frac{\partial{h_t}}{\partial{h_{t-1}}} =&-U_z^T\cdot (h_{t-1}*z_t*(1-z_t))+ (1-z_t) +U_z^T\cdot (\widetilde{h}_t*z_t*(1-z_t)) \\ &+U_r^T\cdot((U^T\cdot(z_t*(1-\widetilde{h_t}^2)))*h_{t-1}*r_t*(1-r_t)) \\ &+(U^T\cdot (z_t*(1-\widetilde{h}_t^2)))*r_t \end{aligned}

6. LSTM的反向傳播公式

\frac{\partial{a^{<t>}}}{\partial{\Gamma_o^{<t>}}}=\tanh{(c^{<t>})}

\frac{\partial{a^{<t>}}}{\partial{\widetilde{c}^{<t>}}}=\Gamma_{u}^{<t>}+\Gamma_o^{<t>}*(1-\tanh{(c^{<t>})^2})*\Gamma_u^{<t>}

\frac{\partial{a^{<t>}}}{\partial{\Gamma_u^{<t>}}}=\widetilde{c}^{<t>}+\Gamma_o^{<t>}(1-\tanh{(c^{<t>})^2})*\widetilde{c}^{<t>}

\frac{\partial{a^{<t>}}}{\partial{\Gamma_{f}^{<t>}}}=\widetilde{c}^{<t-1>}+\Gamma_o^{<t>}*(1-\tanh{(c^{<t>})}^2)*c^{<t-1>}

\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_f}^{<t>}}}=\frac{\partial{a^{<t>}}}{\partial{\Gamma_{f}^{<t>}}}* \Gamma^{<t>}_f * (1-\Gamma_f^{<t>})

\frac{\partial{a^{<t>}}}{\partial{W_f}}=\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_f}^{<t>}}} \cdot \begin{bmatrix}a^{<t-1>} \\ x_t \end{bmatrix}^T

\frac{\partial{a^{<t>}}}{\partial{b_f}}=\sum_{batch}\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_f}^{<t>}}}

\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_u}^{<t>}}}=\frac{\partial{a^{<t>}}}{\partial{\Gamma_u}}*\Gamma_u^{<t>}*(1-\Gamma_u^{<t>})

\frac{\partial{a^{<t>}}}{\partial{W_u}}=\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_u}^{<t>}}}\cdot \begin{bmatrix}a^{<t-1>} \\ x_t \end{bmatrix}^T

\frac{\partial{a^{<t>}}}{\partial{b_u}}=\sum_{batch}\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_u}^{<t>}}}

\frac{\partial{a^{<t>}}}{\partial{h_{\widetilde{c}}^{<t>}}}=\frac{\partial{a^{<t>}}}{\partial{\widetilde{c}^{<t>}}}* (1-(\widetilde{c}^{<t>})^2)

\frac{\partial{a^{<t>}}}{\partial{W_c}}= \frac{\partial{a^{<t>}}}{\partial{h_{\widetilde{c}}^{<t>}}} \cdot \begin{bmatrix} a^{<t-1>}\\x_t \end{bmatrix}^T

\frac{\partial{a^{<t>}}}{\partial{b_c}}=\sum_{batch}\frac{\partial{a^{<t>}}}{\partial{h_{\widetilde{c}}^{<t>}}}

\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_o}^{<t>}}}=\frac{\partial{a^{<t>}}}{\partial{\Gamma_o^{<t>}}}*\Gamma_o^{<t>}*(1-\Gamma_o^{<t>})

\frac{\partial{a^{<t>}}}{\partial{W_o}}=\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_o}^{<t>}}}\cdot \begin{bmatrix}a^{<t-1>}\\x_t \end{bmatrix}^T

\frac{\partial{a^{<t>}}}{\partial{b_o}}=\sum_{batch}\frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_o}^{<t>}}}

下式中的W_fW_f=\begin{bmatrix} W_a W_x \end{bmatrix}中的W_aW_u, W_o, W_c類似。

\frac{\partial{a^{<t>}}}{\partial{a^{<t-1>}}}=W^{T}_f \cdot \frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_f}^{<t>}}}+W_u^T\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_u}^{<t>}}}+W_c^T\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\widetilde{c}}^{<t>}}}+W_o^T\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_o}}^{<t>}}

\frac{\partial{a^{<t>}}}{\partial{c^{<t-1>}}}=\Gamma_o^{<t>}*(1-\tanh{(c^{<t>})^2})*\Gamma_f^{<t>}

\frac{\partial{c^{<t>}}}{\partial{c^{<t-1>}}}=\Gamma_f^{<t>}

下式中的W_fW_f=\begin{bmatrix}W_a W_x \end{bmatrix}中的W_xW_u, W_c, W_o類似。

\frac{\partial{a^{<t>}}}{\partial{x^{<t>}}}=W_f^{T}\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_f}^{<t>}}}+W_u^T\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_u}^{<t>}}}+W_c^T\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\widetilde{c}}^{<t>}}}+W_o^T\cdot \frac{\partial{a^{<t>}}}{\partial{h_{\Gamma_o}^{<t>}}}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章