第561章 用故事解釋誤差反向傳播法(第1/2 頁)
故事:國王的信使與誤差反向傳播
在古老的王國裡,國王希望自己的弓箭手訓練營能夠培養出最強的射手。他設立了一場射箭比賽,要求所有弓箭手向目標射箭,並根據他們的成績給予獎勵或懲罰。
然而,比賽結果並不理想——大部分弓箭手射偏了。國王想知道:箭射歪了,到底是哪個環節出了問題?
於是,他召集了首席教官、弓匠和箭匠,希望找到問題的根源,並逐步改進訓練方法。
第一步:發現誤差(計算損失)
比賽結束後,國王檢查靶子,發現箭矢偏離目標的情況十分嚴重。有的射到了外環,有的甚至沒射中靶。
國王皺著眉頭說:“我們需要一個標準來衡量弓箭手的表現。”
於是,他決定:
? 目標中心是 完美的射擊點(理想輸出)
? 每支箭的落點表示 實際輸出
? 偏差越大,意味著誤差越大(損失函式 )
國王命令數學師計算每個射手的誤差,誤差越大,說明問題越嚴重。
第二步:誤差如何產生?(誤差的傳播)
國王想知道,是誰的責任導致了偏差?
他把弓箭訓練分解成多個環節:
1 弓箭手的瞄準(神經網路的最後一層)
2 弓的質量(隱藏層)
3 箭的質量(隱藏層)
4 訓練方法(輸入層)
如果箭偏離目標,可能是:
? 弓箭手沒瞄準好(類似於神經網路的輸出層計算錯誤)
? 弓有缺陷(類似於隱藏層的權重設定不當)
? 箭頭不夠穩定(類似於特徵提取不準確)
? 訓練方法不對(類似於輸入資料有誤)
誤差反向傳播的核心問題就是要找出這些因素對最終誤差的貢獻,並逐步調整它們。
第三步:誤差如何回溯?(反向傳播計算梯度)
國王決定,不能只懲罰弓箭手,因為問題可能出現在更深層次的環節。他讓信使從終點(箭靶)向前傳遞資訊,逐步追查問題的來源。
信使的任務是:
1 先從箭靶出發,檢查弓箭手的瞄準情況。
? 如果射手的手抖了,誤差可能主要來自瞄準(類似於反向傳播計算損失對輸出層的影響)。
2 再檢查弓是否有問題。
? 如果弓的張力不夠,導致射偏,那就要調整弓的設計(類似於計算誤差對隱藏層的影響)。
3 最後檢查箭的質量。
? 如果箭本身重量不均勻,可能是箭匠製作的問題(類似於輸入權重需要調整)。
這個過程就是誤差從輸出層向輸入層反向傳播,每一層都接收來自下一層的反饋,計算自己對誤差的貢獻,並調整自身。
第四步:調整各層引數(梯度下降)
找到了問題後,國王開始命令大家調整:
? 讓弓箭手加強瞄準訓練(調整最後一層的引數)。
? 讓弓匠改進弓的材料,使其更穩定(調整隱藏層權重)。
? 讓箭匠改進箭的工藝,使其更平衡(調整輸入層的引數)。
他們採用的原則是逐步調整,而不是一次性大改:
這類似於梯度下降演算法(gradient descent),每次調整一點點,慢慢減少誤差,讓射箭成績越來越好。
最終結果:誤差越來越小
隨著訓練的不斷最佳化,射箭誤差越來越小,弓箭手的命中率也越來越高。
國王滿意地說:“我們終於找到了讓射手變強