若想暸解 forward propagation 可參考 UFLDL。
更新 weight 使得 cost function 變小: Wji(l):=Wji(l)−η∇Wji(l)J(W)
所以要找到 ∇Wji(l)J(W)⇒
∇Wji(l)J(W)=∂Wji(l)∂J(W)=∂zj(l+1)∂J(W)∂Wji(l)∂zj(l+1)∵zj(l+1)=∀i∑Wji(l)∗ai(l)∴∂Wji(l)∂zj(l+1)=ai(l)=∂zj(l+1)∂J(W)ai(l)=δj(l+1)ai(l)
所以,
∂zj(l+1)∂J(W)=δj(l+1)=??
∵if f(x)=s is sigmoid, f′()
error term δi(l)
δi(l) 代表的是這個 node 對 Error (cost) 有多少責任
∂zj(l+1)∂J(W)=δj(l+1)
Example: 假設 cost 使用 least squared error
以下推導帶入 J(W,b;x,y)=21∥hW,b(x)−y∥2
output node 的 δi(L)
zj(l+1)→[node]→aj(l+1)→Err=J(W)
- 先考慮 output layer 只有單一 node
- 對 output node 來說 Error 直接 = J(W)
- 最後一層的層數: L
δj(L)=∂zj(L)∂J(W)=∂aj(L)∂J(W)∂zj(L)∂aj(L)∵J(W,b;x,y)=21∥y−hW,b(x)∥2=21∥∥∥y−aj(L)∥∥∥2=∂aj(L)∂21∥∥y−aj(L)∥∥2∂zj(L)∂aj(L)=−(y−aj(L))∂zj(L)∂aj(L)=−(y−aj(L))∂zj(L)∂ f(zj(L))=−(y−aj(L)) f′(zj(L))∵aj(L)=sigmoid(zj(L))∴∂zj(L)∂aj(L)=sigmoid′(zj(L))=aj(L)[1−aj(L)]=−(y−aj(L)) aj(L)[1−aj(L)]
hidden layer node 的 δi(l)
For l=nl−1,nl−2,nl−3,…,2
For each node i in layer l, set
δi(l)=(j=1∑sl+1Wji(l)δj(l+1))f′(zi(l))