当前位置:   article > 正文

GCN的反向传播推导_gcn反向传播

gcn反向传播
GCN的反向传播
1.预备知识

随机梯度下降法根据以下公式更新梯度
θ t + 1 = θ t − α 1 K ∑ ( x , y ) ∈ δ t ∂ L ( y , f ( x ; θ ) ) ∂ θ ( 1 ) \theta_{t+1}=\theta_{t}-\alpha\frac{1}{K}\sum_{(x,y)\in \delta_t}\frac{\partial L(y,f(x;\theta))}{\partial \theta} \qquad (1) θt+1=θtαK1(x,y)δtθL(y,f(x;θ))(1)
同样的,如果要更新网络中的W,那么就要计算
W t + 1 = W t − α 1 K ∑ ( x , y ) ∈ δ t ∂ L ( y , f ( x ; W ) ) ∂ W W_{t+1}=W_{t}-\alpha\frac{1}{K}\sum_{(x,y)\in \delta_t}\frac{\partial L(y,f(x;W))}{\partial W} Wt+1=WtαK1(x,y)δtWL(y,f(x;W))
关键是计算其中的 ∂ L ∂ W \frac{\partial L}{\partial W} WL,而 ∂ L ∂ W = ∂ L ∂ z ∂ z ∂ W \frac{\partial L}{\partial W}=\frac{\partial L}{\partial z}\frac{\partial z}{\partial W} WL=zLWz(其中 z z z是网络神经元的输出),把第一项 ∂ L ∂ z \frac{\partial L}{\partial z} zL

定义为误差 δ \delta δ,那么就可以先求出误差,然后再求第二项 ∂ z ∂ W \frac{\partial z}{\partial W} Wz,再根据 ( 1 ) (1) (1)更新参数。

整个流程大致为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保失败,源站可能有防盗链机制,建议将图片保存下来直接上传存下来(img-z3qOlS4n-1585308262098)(C:\Users\a\AppData\Roaming\Typora\typora-user-images\image-20200327182408276.png)(C:\Users\a\AppData\Roaming\Typora\typora-user-images\image-20200327182408276.png)]

GCN的反向传播

GCN的前向传播为:
Z l + 1 = P H l W l , H l + 1 = σ ( z l + 1 ) Z^{l+1}=PH^lW^l,\qquad H^{l+1}=\sigma(z^{l+1}) Zl+1=PHlWl,Hl+1=σ(zl+1)
那么根据以上流程,前馈计算每一层的净输入 z l z^l zl和激活值 a l a^l al,直到最后一层;然后计算每一层的误差 δ l \delta^l δl:
δ l = ∂ L ∂ Z l = ∂ L ∂ H l ∂ H l ∂ Z l = ∂ L ∂ Z l + 1 ∂ Z l + 1 ∂ H l ∂ H l ∂ Z l ( 2 ) \delta^l=\frac{\partial L}{\partial Z^l}=\frac{\partial L}{\partial H^l}\frac{\partial H^l}{\partial Z^l}=\frac{\partial L}{\partial Z^{l+1}}\frac{\partial Z^{l+1}}{\partial H^l}\frac{\partial H^l}{\partial Z^l} \qquad (2) δl=ZlL=HlLZlHl=Zl+1LHlZl+1ZlHl(2)
又因为
Z l + 1 = P H l W l , H l = σ ( Z l ) Z^{l+1}=PH^lW^l, \qquad H^{l}=\sigma(Z^{l}) Zl+1=PHlWl,Hl=σ(Zl)
所以 ( 2 ) (2) (2)式为
δ l = δ l + 1 P T W l σ ′ ( Z l ) \delta^l=\delta^{l+1}P^TW^l\sigma'(Z^l) δl=δl+1PTWlσ(Zl)
得到误差传播公式以后,根据流程,计算参数的导数 ∂ L ∂ W l = ∂ L ∂ Z l + 1 ∂ Z l + 1 ∂ W l = δ l + 1 ∂ Z l + 1 ∂ W l \frac{\partial L}{\partial W^l}=\frac{\partial L}{\partial Z^{l+1}}\frac{\partial Z^{l+1}}{\partial W^l}=\delta^{l+1} \frac{\partial Z^{l+1}}{\partial W^l} WlL=Zl+1LWlZl+1=δl+1WlZl+1,所以现在只要计算 ∂ Z l + 1 ∂ W l \frac{\partial Z^{l+1}}{\partial W^l} WlZl+1
∂ Z l + 1 ∂ W l = ∂ ( P H l W l ) ∂ W l = ( P H l ) T ( 3 ) \frac{\partial Z^{l+1}}{\partial W^l}=\frac{\partial (PH^{l}W^{l})}{\partial W^l}=(PH^l)^T \qquad (3) WlZl+1=Wl(PHlWl)=(PHl)T(3)
然后根据求得的参数导数和式(1)更新参数,直到模型错误率不再下降。

( 3 ) (3) (3)证明了,每次计算第 l l l层的梯度都要使用到前一层邻居节点的特征。如图[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RJpWO2Sc-1585308262122)(C:\Users\a\AppData\Roaming\Typora\typora-user-images\image-20200327184906204.png)]

所以随着网络层数的增加,感受野越大,计算复杂度也越大。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/240648
推荐阅读
相关标签
  

闽ICP备14008679号