反向傳播實作

Python 深度學習入門

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

反向傳播

ch2_4_v2.002.png

Python 深度學習入門

反向傳播

ch2_4_v2.003.png

Python 深度學習入門

反向傳播

ch2_4_v2.004.png

Python 深度學習入門

反向傳播

ch2_4_v2.010.png

Python 深度學習入門

計算任一權重的斜率

  • 權重的梯度為以下乘積:
    1. 輸入該權重的節點值
    2. 被輸入節點之啟用函式的斜率
    3. 損失函式對輸出節點的斜率
Python 深度學習入門

反向傳播

ch2_4_v2.016.png

Python 深度學習入門

反向傳播

ch2_4_v2.017.png

Python 深度學習入門

反向傳播

ch2_4_v2.018.png

Python 深度學習入門

反向傳播

ch2_4_v2.019.png

Python 深度學習入門

反向傳播

ch2_4_v2.020.png

Python 深度學習入門

反向傳播

ch2_4_v2.021.png

Python 深度學習入門

反向傳播:重點回顧

  • 先從一組隨機權重開始
  • 用前向傳播做出預測
  • 用反向傳播計算損失函式對各權重的斜率
  • 將該斜率乘以學習率,從當前權重中扣除
  • 重複此循環直到到達平坦區
Python 深度學習入門

隨機梯度下降

  • 常見做法是僅用資料子集(batch)計算斜率
  • 用不同的 batch 計算下一次更新
  • 當所有資料都用過後,從頭再來
  • 每跑完所有訓練資料一次稱為一個 epoch
  • 每次只用一個 batch 計算斜率:隨機梯度下降
Python 深度學習入門

一起來練習吧!

Python 深度學習入門

Preparing Video For Download...