Zubnet AI學習Wiki › Weight Initialization
訓練

Weight Initialization

別名:Xavier 初始化、Kaiming 初始化、He 初始化
在訓練開始前如何設定神經網路權重。糟糕的初始化可能讓訓練在開始之前就失敗(消失或爆炸的激活值)。好的初始化確保激活值和梯度在各層之間維持合理的量級。Xavier 初始化(用於 tanh/sigmoid)和 Kaiming/He 初始化(用於 ReLU)是標準方法,各自針對激活函數進行校準。

為什麼重要

初始化看起來像是小細節,但對訓練深度網路至關重要。一個初始權重過大的網路會產生爆炸的激活值。一個權重過小的會產生消失的激活值。適當的初始化讓網路處於一個「恰到好處的區間」,信號在不爆炸或消失的情況下流過——這是梯度下降運作的先決條件。

深度解析

核心原則:初始化權重使得激活值的變異數在各層之間大致恆定。如果每一層都放大信號(變異數增長),激活值就會爆炸。如果每一層都減弱信號(變異數縮小),激活值就會消失。Xavier 初始化將權重設為變異數 2/(fan_in + fan_out)。Kaiming 初始化將變異數設為 2/fan_in,考慮到 ReLU 會將一半的值歸零。

在 Transformer 中

現代 Transformer 通常使用縮放初始化:注意力和 FFN 層中的輸出投影權重使用標準差除以 1/√(2×num_layers) 進行初始化。這防止殘差流因為來自多層的貢獻累積而變得太大。GPT-2 和許多後續模型使用這種「縮放初始化」方法。一些架構(如 muP/最大更新參數化)進一步使用數學推導的縮放規則。

預訓練權重

對於大多數實用目的,從頭開始初始化是罕見的——你從預訓練權重開始並進行微調。但初始化對新組件仍然重要:LoRA 適配器、新的分類頭,或擴展的詞彙嵌入。LoRA 的 B 矩陣使用零初始化(讓適配器從恆等映射開始)以及新 token 嵌入的適當初始化(通常複製現有嵌入的均值)是常見的模式,防止新組件在微調開始時擾亂預訓練模型。

相關概念

← 所有術語
ESC
Start typing to search...