技術指南

權重初始化

在訓練開始之前如何設定神經網路的起始權重,這很大程度上決定了訊號和梯度是否在深層中保持健康。

閱讀時間約2分鐘最後更新

概述

Good initialization is the difference between fast convergence and a model that never learns.

深入探討

在訓練之前,每個重量都需要一個起始值。將它們全部設為零是致命的:相同的權重產生相同的梯度,因此神經元永遠不會區分——這就是對稱性破缺問題。隨機初始化打破了對稱性,但規模非常重要。太大,激活和梯度爆炸;太小了,它們就會消失。原則方案根據層大小選擇方差,以保持各層訊號方差大致恆定。 Xavier (Glorot) 初始化透過輸入加輸出單元的數量來縮放方差,並且適合 tanh 和 sigmoid 網路。他(Kaiming)的初始化按輸入數量進行縮放,並考慮到 ReLU 丟棄了一半的輸入,使其成為基於 ReLU 的深度網路和 CNN 的標準。良好的初始化可以使早期訓練保持穩定,直到標準化和自適應優化器接管。

技術洞察

目標是保持層與層之間活化和梯度的變異數恆定。 Xavier 將權重變異數設定為 2 / (fan_in + fan_out),平衡對稱活化的前向和後向傳遞。他初始化使用 2 / fan_in ,因為 ReLU 將其大約一半的輸入清零,因此將變異數加倍可以補償丟失的訊號。偏差通常初始化為零,因為隨機權重已經破壞了對稱性。

戰略影響

成本與預算

多年來,架構決策決定著效能和營運成本。

更明確的決策

技術教育幫助團隊選擇正確的堆疊,而不僅僅是最新的堆疊。

品質管控

更好的工程選擇可以減少生產中的可靠性事故。

權重初始化的未來

歸一化層和殘差連接使得訓練對精確初始化不太敏感,但對於非常深或無歸一化的網路來說仍然很重要。積極的研究包括針對 Transformer 和注意力量身定制的方案、讓網路在沒有任何歸一化層的情況下進行訓練的方法,以及動態等距和僅通過初始化來預測可訓練性的神經切線內核等理論。資料相關的初始化,即從樣本批次中校準尺度,是另一個發展方向。

現實世界的實施

使用 ReLU 啟動的 CNN 透過 He 初始化進行初始化,因此深度卷積堆疊的訓練不會消失訊號。

具有 tanh 活化的網路使用 Xavier 初始化來保持跨層活化方差穩定。

一位工程師不小心將所有權重初始化為零,會發現網路無法學習,因為每個神經元都保持相同。

框架預設(PyTorch 的 Kaiming、Keras 的 Glorot 統一)在建立圖層時會自動套用原則性初始化。

風險與防護欄

優化一項基準測試可以隱藏更廣泛的系統弱點。

基礎設施和維護成本常常被低估。

隨著系統變得更加複雜,安全性和可觀察性差距可能會擴大。

實施路線圖

1

在實施之前定義延遲、品質和成本目標。

2

在實際負載和資料條件下進行基準測試。

3

儀器監控錯誤、漂移和使用者影響。

4

在擴展之前準備回滾和事件回應路徑。

不斷探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Weight Initialization quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

開始測驗

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一步指南

隨機權重平均

常見問題

What is Weight Initialization?

在訓練開始之前如何設定神經網路的起始權重,這很大程度上決定了訊號和梯度是否在深層中保持健康。良好的初始化是快速收斂和永遠不會學習的模型之間的區別。

為什麼將所有權重初始化為零是一個致命錯誤?

使用相同的權重,每個神經元計算相同的輸出和梯度,因此它們的更新相同,並且該層永遠無法學習不同的特徵。

他(Kaiming)的初始化是專門為哪個激活函數設計的?

他初始化將方差縮放 2 / fan_in 以補償 ReLU 將其大約一半的輸入歸零。

有原則的權重初始化方案的主要目標是什麼?

像 Xavier 和 He 這樣的方案從層大小中選擇權重方差,這樣訊號在傳播時既不會消失也不會爆炸。

Xavier (Glorot) 初始化最適合使用哪些活化的網路?

Xavier 平衡對稱、飽和活化(如 tanh 和 sigmoid)的前向和後向變異數。

為什麼 He 初始化使用變異數 2 / fan_in 而不是 1 / fan_in?

ReLU 僅傳遞正輸入,丟棄約一半的訊號,因此將變異數加倍即可恢復預期的活化變異數。