iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
自我挑戰組

深度學習的學習 & ASR 中文語音辨識系列 第 6

【Day 06】深度學習的學習:Forward & Backward propagation

  • 分享至 

  • xImage
  •  

Forward/Backward propagation 前向/後向傳遞

這兩個聽起來有點厲害的名詞,Forward/Backward 其實只是在說 NN 裡面運作的方向
https://ithelp.ithome.com.tw/upload/images/20230921/201632878sEkBS9DqI.jpg

Forward propagation

就是 NN 的正常運作流程:Input layer 吃資料 → Hidden layer 運算 → Output layer 預測結果
前幾天的文章幾乎都是在寫 Forward propagation
而在最後 Output layer 預測結果後,發生了甚麼事?
我們會比對正確答案,看看跟答案差了多少,也就是計算 Cost function
接著就輪到 Backward propagation 出場

Backward propagation

想像成走原路回去的感覺:Output layer 取得誤差 → Hidden layer 調整參數 → 校正完成

這邊用 pseudo code 來說好了:
https://ithelp.ithome.com.tw/upload/images/20230921/20163287BhkkBDPwTt.jpg
下方的偏微分都可以用 chain rule 求出
想提一個小重點,我看滿多地方都省略的,就是那個 dz = a - y 到底怎麼出來
這邊 dz 指的是 https://chart.googleapis.com/chart?cht=tx&chl=%5Cfrac%20%7BdL%7D%7Bdz%7D

L 則是 Loss function https://chart.googleapis.com/chart?cht=tx&chl=L(%5Chat%20y%2C%20y)%3DL(a%2Cy) ,而 https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%20y 是預測的值,拿來跟 y(groud truth)做相比
然後 Activation function 是用 Sigmoid
接下來就能看到底為何 dz = a - y
https://chart.googleapis.com/chart?cht=tx&chl=%5Cbegin%7Balign*%7D%20%5Cfrac%20%7BdL%7D%7Bda%7D%26%3D-%5Cfrac%20ya%20%2B%20%5Cfrac%20%7B1-y%7D%7B1-a%7D%20%5C%5C%20%5Cfrac%20%7BdL%7D%7Bdz%7D%20%26%3D%20%5Cfrac%20%7BdL%7D%7Bda%7D%20%5Ccdot%20%5Cfrac%20%7Bda%7D%7Bdz%7D%20%20%3D%20%5Cfrac%20%7BdL%7D%7Bda%7D%20%5Ccdot%20a(1-a)%20%20%3D%20a-y%20%5Cend%7Balign*%7D

https://chart.googleapis.com/chart?cht=tx&chl=a%3D%5Csigma(z)%3D%5Cfrac1%7B1%2Be%5E%7B-z%7D%7D
其中 https://chart.googleapis.com/chart?cht=tx&chl=%5Cfrac%20%7Bda%7D%7Bdz%7D 的推導:

https://ithelp.ithome.com.tw/upload/images/20230922/20163287tFq5x0M9PC.jpg

那就先這樣!!!

Ref.

小心得

又變得好趕時間!!!


上一篇
【Day 05】深度學習的學習:重看一次 Neural Network
下一篇
【Day 07】深度學習的學習:Parameters vs. Hyperparameters
系列文
深度學習的學習 & ASR 中文語音辨識30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言