Back propagation

Back propagation是一種有效率算出∂L∂W¯¯\frac{\partial{L}}{\partial{\bar{\bar{W}}}} 來讓訓練Neural Network變得更有效率。

一個Neural Network裡可能有上百萬的參數(weights W¯¯\bar{\bar{W}}, biases b¯\bar{b}),在使用Gradient Descent作訓練時就會產生上百萬維的矩陣 ∂L∂W¯¯\partial{L} \over \partial{\bar{\bar{W}}} 和 ∂L∂b¯¯\partial{L} \over \partial{\bar{\bar{b}}},其中LL 是loss function,如下圖一所示:

圖一 Overview of Gradient Descent.

圖二.機器學習的Forward propagation and backward propagation 的示意圖。

圖二呈現機器學習的Forward propagation and backward propagation 示意圖,forward propagation指的是順向運算,意義上是機器

做出推論。backward propagation指的是逆向運算,意義上是學習,本質是調整機器的參數(w¯¯\bar{\bar{w}},b¯\bar{b})。其實,當Forward propagation 清楚定義後,Back propagation 也已經被決定。 Tensorflow會幫忙計算 Back propogation 中複雜的∂L∂w¯\frac{\partial{L}}{\partial{\bar{w}}}

Back propagation立基於微積分的Chain rule,如下圖三所示:

圖三 Schematic of Chain Rule

考慮 yy 是 xx的函數,而 zz 是yy 的函數,當xx有Δx\Delta x 變化時,zz將有Δz\Delta z的變化。將zz對xx微分的定義是:

∂z∂x=limΔx→0ΔzΔx=∂z∂y∂y∂x=h′g′ \begin{aligned} \frac{\partial z}{\partial x} = \mathop {\lim }\limits_{\Delta x \to 0}{\frac{\Delta z}{\Delta x}} = \frac{\partial z}{\partial y} \frac{\partial y}{\partial x} = h'g' \end{aligned}

先看下圖四的一個Neural Network,輸入K筆input data: x,

會得到K筆output data: y,而LkL_k是每一筆輸出output data與label data的距離。

Lk(w¯¯,b¯)=distance(y¯,y^)L_k(\bar{\bar{w}},\bar{b})=\textrm{distance}(\bar{y},\hat{y})

定義Loss function為每筆data 的L值總合。

L=∑k=1KLkL=\sum_{k=1}^K L_k

計算Loss function對其中一變數w偏微分時即是L值總合對變數w偏微分。

∂L∂w=∑k=1k∂Lk∂w\frac{\partial L}{\partial w}=\sum_{k=1}^k \frac{\partial L_k}{\partial w}

圖四 Neural Network, loss function, and weight gradient of loss function

以圖四中Loss 對w作偏微分為範例,其等於z對w作偏微分乘上Loss對z偏微分。其中z對w作偏微分稱作forward pass,Loss對z偏微分稱作backward pass。z 為activation function 的input。

圖五 Forward pass and backward pass of weight gradient ∂L∂w¯¯\frac{\partial L}{\partial \bar{\bar{w}}} computation

Forward Pass

先看forward pass: z對w作偏微分 如下圖五 z對w作偏微分即為input x

圖六 Elaboration on forward pass of ∂L∂w\frac{\partial L}{\partial w} computation

Backward pass

圖七. 深層神經網絡架構之訓練(deep neural network, DNN)。網絡層數為ℓe\ell_e, 第ℓ\ell層之神經元數為Dℓ=2D_\ell = 2,其神經元表示為x¯ℓ\bar{x}^\ell,激活函數為factf_{\mathrm act},渴望輸出(desired output)為y¯=[y1,y2]t\bar{y} = [y_1, y_2]^t。

圖七顯示深層神經網絡架構之訓練。網絡層數為ℓe\ell_e, 第ℓ\ell層神經元數為Dℓ=2D_\ell = 2,其神經元表示為x¯ℓ\bar{x}^\ell,激活函數為factf_{\mathrm act},渴望輸出(desired output)為y¯=[y1,y2]t\bar{y} = [y_1, y_2]^t,tt為轉置操作。

圖八. 激活函數factf_{\mathrm act}與其導函數fact′f_{\mathrm act}'。此處激活函數選為sigmoid function。

圖八顯示激活函數factf_{\mathrm act}與其導函數fact′f_{\mathrm act}'。此處激活函數選為sigmoid function。

考慮第ℓ\ell層,此層輸入x¯ℓ−1\bar{x}^{\ell-1}(為前一層神經元)與此層神經元x¯ℓ\bar{x}^\ell間之權重矩陣以及偏差表示為

W¯¯ℓ=[w11ℓw12ℓw21ℓw22ℓ], b¯ℓ=[b1ℓb2ℓ](1) \bar{\bar{W}}^\ell = \left[ \begin{matrix} w_{11}^\ell & w_{12}^\ell \\ w_{21}^\ell & w_{22}^\ell \end{matrix} \right], \ \bar{b}^\ell = \left[ \begin{matrix} b_1^\ell \\ b_2^\ell \end{matrix} \right] \pod{\text{1}}

激活函數輸入值z¯ℓ\bar{z}^\ell為第ℓ−1\ell-1層神經元乘以權重矩陣之轉置加上偏差而得,即

z¯ℓ=W¯¯ℓtx¯ℓ−1+b¯ℓ=[z1ℓz2ℓ]=[w11ℓw21ℓw12ℓw22ℓ][x1ℓ−1x2ℓ−1]+[b1ℓb2ℓ](2) \bar{z}^\ell = \bar{\bar{W}}^{\ell t} \bar{x}^{\ell - 1} + \bar{b}^\ell = \left[ \begin{matrix} z_1^\ell \\ z_2^\ell \end{matrix} \right] = \left[ \begin{matrix} w_{11}^\ell & w_{21}^\ell \\ w_{12}^\ell & w_{22}^\ell \end{matrix} \right] \left[ \begin{matrix} x_1^{\ell-1} \\ x_2^{\ell-1} \end{matrix} \right] + \left[ \begin{matrix} b_1^\ell \\ b_2^\ell \end{matrix} \right]\pod{\text{2}}

Backward pass所要求的目標是損耗函數LL對激活函數輸入值znℓz_n^\ell(n=1,2n = 1,2)的偏導數,此項目稱為error sensitivity,即

∂L∂znℓ=∂L∂xnℓ∂xnℓ∂znℓ=∂L∂xnℓfact′(znℓ)(3) \displaystyle \frac{\partial L}{\partial z_n^\ell} = \frac{\partial L}{\partial x_n^\ell} \frac{\partial x_n^\ell}{\partial z_n^\ell} = \frac{\partial L}{\partial x_n^\ell} f'_{\mathrm act}(z_n^\ell) \pod{\text{3}}

其中,由圖七可看出xnℓ=fact(znℓ)x_n^\ell = f_{\mathrm act}(z_n^\ell)。而LL對神經元xnℓx_n^\ell的偏導數可再由ℓ+1\ell+1層的error sensitivity表達,即

∂L∂xnℓ=∑m=1Dℓ+1=2∂L∂zmℓ+1∂zmℓ+1∂xnℓ=∑m=1Dℓ+1=2∂L∂zmℓ+1wnmℓ+1(4) \frac{\partial L}{\partial x_n^\ell} = \sum_{m = 1}^{D_{\ell+1} = 2} \frac{\partial L}{\partial z_m^{\ell+1}} \frac{\partial z_m^{\ell+1}}{\partial x_n^\ell} = \sum_{m = 1}^{D_{\ell+1} = 2} \frac{\partial L}{\partial z_m^{\ell+1}} w_{nm}^{\ell+1} \pod{\text{4}}

以第一層ℓ=1\ell= 1為例,網絡輸入x¯0\bar{x}^0(可視為第零層神經元)與第一層神經元x¯1\bar{x}^1間之權重矩陣以及偏差表示為

W¯¯1=[w111w121w211w221], b¯1=[b11b21](5) \bar{\bar{W}}^1 = \left[ \begin{matrix} w_{11}^1 & w_{12}^1 \\ w_{21}^1 & w_{22}^1 \end{matrix} \right], \ \bar{b}^1 = \left[ \begin{matrix} b_1^1 \\ b_2^1 \end{matrix} \right] \pod{\text{5}}

激活函數輸入z¯1\bar{z}^1為第零層神經元乘以權重矩陣之轉置加上偏差而得,即

z¯1=W¯¯1tx¯0+b¯1=[z11z21]=[w111w211w121w221][x10x20]+[b11b21](6) \bar{z}^1 = \bar{\bar{W}}^{1t} \bar{x}^0 + \bar{b}^1 = \left[ \begin{matrix} z_1^1 \\ z_2^1 \end{matrix} \right] = \left[ \begin{matrix} w_{11}^1 & w_{21}^1 \\ w_{12}^1 & w_{22}^1 \end{matrix} \right] \left[ \begin{matrix} x_1^0 \\ x_2^0 \end{matrix} \right] + \left[ \begin{matrix} b_1^1 \\ b_2^1 \end{matrix} \right]\pod{\text{6}}

損耗函數LL對激活函數輸入值z11z_1^1的偏導數為

∂L∂z11=∂L∂x11∂x11∂z11=∂L∂x11fact′(z11)(7) \displaystyle \frac{\partial L}{\partial z_1^1} = \frac{\partial L}{\partial x_1^1} \frac{\partial x_1^1}{\partial z_1^1} = \frac{\partial L}{\partial x_1^1} f_{\mathrm act}'(z_1^1) \pod{\text{7}}

其中

∂L∂x11=∂z12∂x11∂L∂z12+∂z22∂x11∂L∂z22 \displaystyle \frac{\partial L}{\partial x_1^1} = \frac{\partial z_1^2}{\partial x_1^1} \frac{\partial L}{\partial z_1^2} +\frac{\partial z_2^2}{\partial x_1^1}\frac{\partial L}{\partial z_2^2}

∂L∂x11=w112∂L∂z12+w122∂L∂z22(8) \frac{\partial L}{\partial x_1^1} = w_{11}^2 \frac{\partial L}{\partial z_1^2} + w_{12}^2 \frac{\partial L}{\partial z_2^2} \pod{\text{8}}

圖九. 第一層神經元x11x_1^1與第二層神經元之連結。

圖九顯示第一層神經元x11x_1^1與第二層神經元之連結。當LL要對x11x_1^1做偏微分時,依chain rule會先微至zn2z_n^2(n=1,2n = 1,2),得出error sensitivity,再參考圖九,得出(8)(8)。

圖十.反向網絡。輸入為error sensitivity。網絡結構與圖九網絡相同,權重亦相同。

圖十顯示一反向網絡。輸入為error sensitivity。網絡結構與圖九網絡相同,權重亦相同。式(8)(8)可看成一個反向網絡如圖十,結構與權重均與原網絡相同,唯傳播方向相反。

最後,backpropagation的目標,LL對權重的偏導數,即為forward pass與backward pass兩者所得結果之乘積,

∂L∂wnmℓ=∂L∂znℓ∂znℓ∂wnmℓ(9) \frac{\partial L}{\partial w_{nm}^\ell} = \frac{\partial L}{\partial z_n^\ell} \frac{\partial z_n^\ell}{\partial w_{nm}^\ell} \pod{\text{9}}

results matching ""

    No results matching ""