ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GRU反向传播公式推导

2021-08-02 23:04:18  阅读:539  来源: 互联网

标签:GRU 7D% 推导 5E% 3E% 7B% 反向 plus 5Cpartial%


1、正向传播

计算图(红色部分不属于时间步t):

公式:

\Gamma_u^{<t>}= \sigma(W_u[c^{<t-1>},x^{<t>}]+b_u)

\Gamma_r^{<t>}= \sigma(W_r[c^{<t-1>},x^{<t>}]+b_r)

\widetilde{c}^{<t>}=tanh(W_c[\Gamma_r^{<t>}.*c^{<t-1>},x^{<t>}]+bc)

c^{<t>}=\Gamma_u^{<t>}.*\widetilde{c}^{<t>}+(1-\Gamma_u^{<t>}).*c^{<t-1>}

z^{<t>}=W_yc^{<t>}+b_y

\hat{y}^{<t>}=softmax(z^{<t>})

\mathcal{L}^{<t>}(\hat{y}^{<t>}, y^{<t>})=-\sum_{j=1}^{n_y}y^{<t>}_jlog(\hat{y}^{<t>}_j)

L=\sum_{t=1}^{T_x}\mathcal{L}^{<t>}(\hat{y}^{<t>}, y^{<t>})  

2、反向传播

GRU反向传播的计算图(红色部分不属于时间步t):

根据计算图,从上往下推导反向传播的公式。

对于输出激活函数是softmax,损失函数是交叉熵的情况,常用的公式是:

\frac{\partial \mathcal{L}^{<t>}}{\partial z^{<t>}}=\hat{y}^{<t>}-y^{<t>}                                                                                                (1)

我在RNN反向传播的推导中证明了这个公式,这里就不证明了。

根据

z^{<t>}=W_yc^{<t>}+b_y

我们可以进而得到:

\frac{\partial \mathcal{L}^{<t>}}{\partial b_y}=\hat{y}^{<t>}-y^{<t>}\Rightarrow\frac{\partial L}{\partial b_y}=\sum_t\hat{y}^{<t>}-y^{<t>}                                                    (2)

\frac{\partial \mathcal{L}^{<t>}}{\partial W_y}=(\hat{y}^{<t>}-y^{<t>})(c^{<t>})^T\Rightarrow \frac{\partial L}{\partial W_y}=\sum_{t=1}^{T_x}(\hat{y}^{<t>}-y^{<t>})(c^{<t>})^T                   (3)

\frac{\partial \mathcal{L}^{<t>}}{\partial c^{<t>}}=W_y^T(\hat{y}^{<t>}-y^{<t>})                                                                                         (4)

 只需要利用a^{<t>}=c^{<t>},以上公式和RNN的情况是一模一样的,也不多解释了。

 正如计算图所显示的那样,c^{<t>}的导数总共和5项相关,即:

\frac{\partial L}{\partial c^{<t>}}\\ =\frac{\partial \mathcal{L}^{<t>}}{\partial c^{<t>}}\\ +\frac{\partial L}{\partial c^{<t+1>}}\frac{\partial c^{<t+1>}}{\partial c^{<t>}}\\ +\frac{\partial L}{\partial \Gamma_{u}^{<t+1>}}\frac{\partial \Gamma_{u}^{<t+1>}}{\partial c^{<t>}}\\ +\frac{\partial L}{\partial \Gamma_{r}^{<t+1>}}\frac{\partial \Gamma_{r}^{<t+1>}}{\partial c^{<t>}}\\ +\frac{\partial L}{\partial \widetilde{c}^{<t+1>}}\frac{\partial \widetilde{c}^{<t+1>}}{\partial c^{<t>}}                                                                                                        (5.a)

考虑正向传播的以下公式:

c^{<t+1>}_i=\Gamma_{ui}^{<t+1>}.*\widetilde{c}_i^{<t+1>}+(1-\Gamma_{ui}^{<t+1>}).*c^{<t>}_i

 \widetilde{c}^{<t+1>}_i=tanh(W_{cij}[\Gamma_r^{<t+1>}.*c^{<t>},x^{<t+1>}]_j+b_{ci})

\Gamma_{ui}^{<t+1>}= \sigma(W_{uij}[c^{<t>},x^{<t+1>}]_j+b_{ui})

\Gamma_{rk}^{<t+1>}= \sigma(W_{rkj}[c^{<t>},x^{<t+1>}]_j+b_{rk})

得到:

\frac{\partial c^{<t+1>}_i}{\partial c^{<t>}_i}=1-\Gamma_{ui}^{<t+1>}

\frac{\partial L}{\partial \Gamma_{ui}^{<t+1>}}=\frac{\partial L}{\partial c_{i}^{<t+1>}}\frac{\partial c_i^{<t+1>}}{\partial \Gamma_{ui}^{<t+1>}}=\frac{\partial L}{\partial c_{i}^{<t+1>}}(\widetilde{c}^{<t+1>}_i-c_i^{<t>})

\frac{\partial \Gamma_{ui}^{<t+1>}}{\partial c^{<t>}_j}=\Gamma_{ui}^{<t+1>}(1-\Gamma_{ui}^{<t+1>})W_{uc ,ij}        (其中W_{uc}=W_u[:,1:n_c]

 \frac{\partial L}{\partial \widetilde{c}^{<t+1>}_i}=\frac{\partial L}{\partial c^{<t+1>}_i}\frac{\partial c^{<t+1>}_i}{\partial \widetilde{c}^{<t+1>}_i}=\frac{\partial L}{\partial c^{<t+1>}_i}\Gamma_{ui}^{<t+1>}

\frac{\partial \widetilde{c}_i^{<t+1>}}{\partial c^{<t>}_j}=[1-(\widetilde{c}_i^{<t+1>})^2]W_{cc,ij}\Gamma^{<t+1>}_{rj}        (其中W_{cc}=W_c[:,1:n_c]

 \frac{\partial \widetilde{c}_i^{<t+1>}}{\partial \Gamma^{<t+1>}_{rk}}=[1-(\widetilde{c}_i^{<t+1>})^2]W_{cc,ik}c^{<t>}_k

\frac{\partial L}{\partial \Gamma_{rk}^{<t+1>}}=\sum_i\frac{\partial L}{\partial \widetilde{c}^{<t+1>}_i}\frac{\partial \widetilde{c}_i^{<t+1>}}{\partial \Gamma^{<t+1>}_{rk}}=\sum_i\frac{\partial L}{\partial c^{<t+1>}_i}\Gamma_{ui}^{<t+1>}[1-(\widetilde{c}_i^{<t+1>})^2]W_{cc,ik}c^{<t>}_k

\frac{\partial \Gamma_{rk}^{<t+1>}}{\partial c^{<t>}_j}=\Gamma_{rk}^{<t+1>}(1-\Gamma_{rk}^{<t+1>})W_{rc,kj}        (其中W_{rc}=W_r[:,1:n_c]

 

标签:GRU,7D%,推导,5E%,3E%,7B%,反向,plus,5Cpartial%
来源: https://blog.csdn.net/weixin_52100611/article/details/119333215

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有