計算神經網路中每個參數對誤差的貢獻程度的演算法,使梯度下降能有效地更新參數。反向傳播透過網路反向應用微積分的鏈式法則:從輸出的損失開始,將梯度逆向傳播通過每一層,以確定每個權重應承擔的責任。
反向傳播是使神經網路訓練成為可能的演算法。沒有高效計算數十億參數梯度的方法,梯度下降在計算上是不可行的。你使用的每個模型 — 從小型分類器到 400B 的 LLM — 都是使用反向傳播訓練的。它是深度學習中最重要的單一演算法。
前向傳遞:輸入流經網路,每層應用其轉換,最終層產生預測。損失函數計算預測有多錯誤。反向傳遞:從損失開始,反向傳播使用鏈式法則為網路中的每個權重計算 ∂loss/∂weight:∂loss/∂w = ∂loss/∂output · ∂output/∂hidden · ∂hidden/∂w。每一層接收來自上方層的梯度,並將自己的梯度傳遞給下方的層。
天真地為每個權重獨立計算梯度需要每個權重一次獨立的前向傳遞 — 對於數十億參數來說不可能昂貴。反向傳播重用中間結果:每層的梯度只計算一次,並在該層的所有權重之間共享。反向傳遞的計算成本大約是前向傳遞的 2 倍,這意味著一個訓練步驟的總成本(前向 + 反向 + 更新)大約是單次前向傳遞的 3 倍。
現代深度學習框架(PyTorch、JAX)透過自動微分(autograd)實現反向傳播。你定義前向計算,框架自動建構反向計算圖並計算梯度。這意味著你永遠不需要手動推導梯度 — 你定義模型架構和損失,呼叫 loss.backward(),框架處理其餘的一切。這種自動化使快速的架構實驗成為實用的可能。