AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
17/100 第二週:多層感知器 MLP
17.權重初始化技巧 🌱 好的開始是成功的一半!
________________________________________
✅ 核心概念:
神經網路的學習過程是從隨機初始化權重開始的,但「隨機」並不代表可以亂來!
📌 若初始化太大 → 容易梯度爆炸
📌 若初始化太小 → 容易梯度消失
📌 若全部初始化為一樣 → 對稱性無法打破,模型學不到東西
所以:權重初始化策略 = 模型是否能順利開始學習的關鍵起跑點。
________________________________________
🔍 為什麼不能都設成 0?
如果你把所有權重初始化為 0,則每個神經元收到相同輸入、學習相同東西 → 無法打破對稱 → 相當於只有一顆神經元在學習,這樣的網路無法發揮功能。
________________________________________
🌱 常見初始化策略總整理:
常見的權重初始化策略對深度學習模型的訓練成效有關鍵影響。
Random Normal 是最基本的初始化方法,雖簡單但易導致梯度消失,訓練不穩;
Xavier(Glorot)初始化 適合使用 Sigmoid 或 Tanh 的網路,可保持前後層輸入輸出方差一致,提升收斂穩定性;
He 初始化 則專為 ReLU 系列激活函數設計,能有效避免前幾層輸出過小,有助深層網路學習;
而將權重設為 Constant 或 Zeros 雖可用於偏差項(bias),但若用於權重會使所有神經元學習方向相同,無法有效更新,因此不建議使用。選擇合適的初始化方式,是建立穩定深度模型的第一步。
________________________________________
🧠 Xavier 與 He 初始化差異解析:
- Xavier 初始化
- 計算方式:Var = 1 / (n_in + n_out)
- 適用激活函數:Sigmoid、Tanh
- He 初始化
- 計算方式:Var = 2 / n_in
- 適用激活函數:ReLU、Leaky ReLU
📌 n_in: 輸入單元數量;n_out: 輸出單元數量
________________________________________
⚙️ TensorFlow 實作方式:
python
from tensorflow.keras import layers, initializers
model = tf.keras.Sequential([
layers.Dense(128, activation='relu',
kernel_initializer=initializers.HeNormal()),
layers.Dense(10, activation='softmax',
kernel_initializer=initializers.GlorotUniform())
])
這段程式碼定義了一個使用 TensorFlow/Keras 建構的簡單前饋神經網路,共兩層 Dense 全連接層,並針對不同層選用合適的初始化方式。第一層具有 128 個神經元,使用 ReLU 激活函數,搭配 HeNormal 初始化器,這種初始化專為 ReLU 設計,有助於避免梯度消失並提升深層網路的學習效果;第二層是輸出層,有 10 個神經元(對應 10 類分類),使用 Softmax 激活函數產生機率分布,並採用 GlorotUniform(Xavier) 初始化器,能維持輸入輸出方差平衡,使分類結果更穩定。整體設計合理且符合實務最佳慣例。
________________________________________
📊 初始化策略對訓練影響:
在神經網路初始化方式中,各方法對收斂速度、準確率與風險影響不同。Xavier 初始化收斂速度中等,表現穩定,特別適合與 Sigmoid 搭配使用。He 初始化則能加速收斂並提高準確率,最適合 ReLU 或其變種激活函數結構。Random Normal 初始化通常導致收斂較慢,準確率不穩定,因初始梯度容易過大或過小。若採用Zero 初始化,神經元權重完全相同,導致無法分工,模型無法收斂,因此是不可取的選擇。
________________________________________
💡 小技巧建議:
• ReLU → He Normal
• Sigmoid/Tanh → Xavier
• 避免自定義大範圍隨機初始值(如 ±10)
________________________________________
🎯 小結與啟示:
✅ 權重初始化雖然只設定一次,但會「決定模型學習能不能啟動」
✅ 不同激活函數適合不同初始化策略
✅ 初始化不是點火器,是燃料管理器,讓梯度穩定流動才是關鍵!