詳細解釋
反向傳播(Backpropagation)是計算神經網絡梯度的算法,通過鏈式法則從輸出層向輸入層高效計算所有參數的梯度。
過程:
- 前向傳播:計算輸出和損失
- 計算輸出層梯度
- 反向傳播:
- 應用鏈式法則
- 從後向前逐層計算
- 複用中間結果
- 參數更新
鏈式法則:
- ∂Loss/∂w = ∂Loss/∂output × ∂output/∂w
- 多層複合函數求導
- 高效計算所有梯度
計算圖:
- 動態圖(PyTorch):即時構建
- 靜態圖(TensorFlow 1.x):預定義
- 反向遍歷:從損失到輸入
效率:
- 一次反向:計算所有梯度
- 時間複雜度:與前向相同數量級
- 空間複雜度:存儲中間激活
歷史:
- 1986年:Rumelhart等推廣
- 深度學習復興的關鍵
- 現在:框架自動處理
反向傳播是深度學習的核心算法。