赞
踩
随机梯度下降法根据以下公式更新梯度
θ
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)∈δt∑∂W∂L(y,f(x;W))
关键是计算其中的
∂
L
∂
W
\frac{\partial L}{\partial W}
∂W∂L,而
∂
L
∂
W
=
∂
L
∂
z
∂
z
∂
W
\frac{\partial L}{\partial W}=\frac{\partial L}{\partial z}\frac{\partial z}{\partial W}
∂W∂L=∂z∂L∂W∂z(其中
z
z
z是网络神经元的输出),把第一项
∂
L
∂
z
\frac{\partial L}{\partial z}
∂z∂L
定义为误差 δ \delta δ,那么就可以先求出误差,然后再求第二项 ∂ z ∂ W \frac{\partial z}{\partial W} ∂W∂z,再根据 ( 1 ) (1) (1)更新参数。
整个流程大致为:
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=∂Zl∂L=∂Hl∂L∂Zl∂Hl=∂Zl+1∂L∂Hl∂Zl+1∂Zl∂Hl(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}
∂Wl∂L=∂Zl+1∂L∂Wl∂Zl+1=δl+1∂Wl∂Zl+1,所以现在只要计算
∂
Z
l
+
1
∂
W
l
\frac{\partial Z^{l+1}}{\partial W^l}
∂Wl∂Zl+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)
∂Wl∂Zl+1=∂Wl∂(PHlWl)=(PHl)T(3)
然后根据求得的参数导数和式(1)更新参数,直到模型错误率不再下降。
式 ( 3 ) (3) (3)证明了,每次计算第 l l l层的梯度都要使用到前一层邻居节点的特征。如图
所以随着网络层数的增加,感受野越大,计算复杂度也越大。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。