CH5.4 模型調整與優化
模型調整與優化
超參數調校(學習率、批次大小、網路深度寬度、激活函數、優化器、正則化係數)→ 正則化與模型穩定化技術(L1/L2/Elastic Net/Dropout/早停法)→ 資料增強與重取樣(過採樣/欠採樣/類別權重)→ 模型壓縮與加速(知識蒸餾/模型剪枝/量化/混合精度訓練),四大面向共同解決「效能不穩、推論延遲、過擬合、資源消耗過高」等實務落地問題。
1. 超參數總覽
超參數(Hyperparameters)是由開發者手動指定、不由資料自動學習得出的參數,對訓練穩定性、收斂速度與最終效能影響深遠。
| 超參數 | 定義 | 過大/過小的影響 |
|---|---|---|
| 學習率(Learning Rate) | 控制每次反向傳播後參數更新的幅度 | 過大:震盪、發散;過小:收斂慢、易卡在局部極小值 |
| 批次大小(Batch Size) | 每次參與梯度更新的樣本數量 | 過小:梯度波動大、訓練不穩;過大:泛化能力下降、易卡局部最小值 |
| 網路深度與寬度 | 層數與每層神經元數量,決定模型容量 | 過深:梯度消失(需搭配殘差連接);過寬:易過擬合;過淺:欠擬合 |
| 正則化係數 λ | 控制正則化項在損失函數中的影響力 | λ 大:模型簡化但可能欠擬合;λ 小:模型靈活但易過擬合 |
批次大小與學習率具高度耦合關係——若批次放大而未同步調整學習率,可能導致訓練無效或不穩定,這是實務調參中容易忽略的交互作用。
2. 激活函數選型(複習與延伸)
| 激活函數 | 適用範圍 | 特點 |
|---|---|---|
| Softmax | 多類別單選輸出層 | 輸出為機率分佈,總和為 1,確保類別互斥 |
| ReLU | 深度網路隱藏層 | 解決梯度消失、計算簡單快速,但輸出不在固定範圍 |
| Sigmoid | 二元分類、多標籤分類輸出層 | 每個輸出獨立表示機率,不保證總和為 1 |
| Tanh | 隱藏層(需正負對稱輸出時) | 中心對稱,中心區域梯度較大,學習較快 |
3. 優化器完整比較
| 優化器 | 核心公式概念 | 適用範圍 | 特點 |
|---|---|---|---|
| SGD | \(\theta_{t+1}=\theta_t-\eta\cdot\nabla_\theta L(\theta_t)\) | 小型模型、記憶體有限環境 | 計算簡單,但收斂慢、易受噪聲影響 |
| Momentum | \(v_{t+1}=\gamma v_t+\eta\nabla_\theta L(\theta_t)\),\(\theta_{t+1}=\theta_t-v_{t+1}\) | 梯度震盪大的深度網路 | 加入慣性減少震盪,加快收斂 |
| Adagrad | \(\theta_{t+1}=\theta_t-\dfrac{\eta}{\sqrt{G_t+\epsilon}}\nabla_\theta L(\theta_t)\) | 稀疏特徵場景(文字、NLP) | 自動調整各參數學習率,但學習率會持續衰減至過小 |
| Adam | 結合一階動量 \(m_t\) 與二階動量 \(v_t\),並做偏差修正 | 幾乎所有深度學習模型 | 收斂快且穩定、自動調整學習率,但記憶體需求較高,泛化能力有時略遜 SGD |
Adam 完整公式:
Adagrad 的學習率會隨訓練過程持續衰減,可能導致模型過早停止學習;Adam 透過二階動量的偏差修正機制,有效緩解了這個問題,同時保留了 Momentum 的加速效果,這是兩者的核心差異,也是 Adam 成為「萬用優化器」的原因。
4. 正則化與模型穩定化技術
| 技術 | 公式 | 效果 |
|---|---|---|
| L1 正則化(Lasso) | \(\text{Loss}=\text{原始損失}+\lambda\sum|\theta_i|\) | 可將不重要參數縮為 0,自動特徵選擇 |
| L2 正則化(Ridge) | \(\text{Loss}=\text{原始損失}+\lambda\sum\theta_i^2\) | 權重縮小但不會變 0,穩定權重大小 |
| Elastic Net | \(\text{Loss}=\text{原始損失}+\lambda_1\sum|\theta_i|+\lambda_2\sum\theta_i^2\) | 兼具特徵選擇與權重平滑,適合處理多重共線性 |
| Dropout | 訓練時以機率 \(p\) 隨機關閉神經元 | 讓模型學習多種「子網路」路徑,降低神經元間過度依賴 |
| 早停法(Early Stopping) | 透過 patience 參數監控驗證集效能 | 防止過擬合,節省訓練時間,無需修改模型架構 |
Dropout 只在訓練階段生效;測試階段不再丟棄神經元,而是把權重按保留率縮放,以保持輸出期望值一致。忘記在測試時關閉 Dropout(或未正確縮放)是常見的實作錯誤。
5. 資料增強與重取樣策略
| 方法 | 原理 | 優點 | 缺點 |
|---|---|---|---|
| 過採樣(Oversampling) | 增加少數類別樣本數(複製或用 SMOTE 合成新樣本) | 平衡類別分佈、不損失原始資料 | 單純複製易過擬合;合成樣本可能不自然 |
| 欠採樣(Undersampling) | 減少多數類別樣本數 | 降低計算成本、實作簡單 | 可能丟失有價值資料,導致準確度下降 |
| 類別權重調整(Class Weighting) | 損失函數中賦予少數類別更高權重 | 不需更動樣本數,保留資料完整性 | 權重需謹慎調整,過大會過度補償 |
6. 模型壓縮與加速
| 技術 | 定義 | 優點 | 常見問題 |
|---|---|---|---|
| 知識蒸餾(Knowledge Distillation) | 大型教師模型知識傳遞給小型學生模型 | 學生模型體積小、推論快,準確度接近教師模型 | 蒸餾需額外訓練資源;教師模型偏誤也會傳遞 |
| 模型剪枝(Pruning) | 移除影響較小的權重或神經元 | 減少參數、提升運算效率 | 過度剪枝會使準確度明顯下降;非結構化剪枝硬體支援較差 |
| 量化(Quantization) | 高精度參數(32-bit)轉為低精度(8-bit) | 大幅降低儲存與記憶體需求,適合硬體加速器 | 直接量化可能降低準確度,常需搭配量化感知訓練(QAT) |
| 混合精度訓練 | 訓練中同時使用 FP16 與 FP32 | 加速訓練、減少記憶體佔用 | 需硬體支援,低精度運算可能數值不穩定,需梯度縮放 |
| 剪枝類型 | 說明 | 硬體整合難易 |
|---|---|---|
| 結構化剪枝(Structured Pruning) | 移除整個神經元、卷積通道或層級 | 較容易與硬體加速器整合 |
| 非結構化剪枝(Unstructured Pruning) | 移除零散的單一權重參數 | 模型稀疏化,但硬體支援較差 |
模型壓縮四招口訣:「蒸餾換小腦袋、剪枝去掉沒用的神經連結、量化降低數字精度、混合精度訓練速度快」——四種技術可以組合使用,共同解決模型落地邊緣裝置的挑戰。
📝 章節考題自測(先作答,再點開解答)
Q1. 在訓練深度學習模型時,隨機將部分神經元暫時關閉以減少過擬合的技術是什麼?
(A) Early Stopping (B) Dropout (C) Batch Normalization (D) Quantization
解答與解析
參考 Ans: (B) Dropout 透過隨機將神經元暫時設為零,迫使模型在每次訓練都以不同的「子網路」進行學習,有效降低模型對特定神經元的過度依賴,減少過擬合風險。
Q2. 在模型壓縮技術中,知識蒸餾(Knowledge Distillation)的主要目的是什麼?
(A) 減少資料維度 (B) 降低參數數量使模型更小 (C) 將大型模型的知識轉移至小型模型 (D) 增強資料平衡
解答與解析
參考 Ans: (C) 知識蒸餾是利用大型、高性能的教師模型,將知識以軟標籤形式傳遞給小型學生模型,讓學生模型在參數較少的情況下,仍維持接近的預測能力,與單純剪枝(減少參數)的手段不同。
Q3. 在優化器中,哪一個方法會自動調整每個參數的學習率,特別適用於稀疏資料?
(A) Momentum (B) Adagrad (C) Adam (D) SGD
解答與解析
參考 Ans: (B) Adagrad 能針對每個參數調整不同的學習率,累積梯度平方和後自動減小常被更新參數的學習步伐,適合處理特徵稀疏的場景(如文字分析),但學習率會不斷衰減至極小值。
Q4. 若批次大小(Batch Size)大幅提高,卻未同步調整學習率,最可能出現的問題是?
(A) 訓練效果必然提升 (B) 完全沒有影響 (C) 可能導致訓練無效或不穩定 (D) 記憶體使用量會下降
解答與解析
參考 Ans: (C) 批次大小與學習率具高度耦合,若批次放大而未調整學習率,可能導致訓練無效或不穩,這是超參數交互作用中容易被忽略的重點。
Q5. 假設某模型使用 Momentum 優化器,動量係數 γ=0.9,學習率 η=0.1,上一輪累積動量 \(v_t=2\),當前梯度 \(\nabla_\theta L(\theta_t)=1\),請計算更新後的動量 \(v_{t+1}\)。
(A) 1.9 (B) 2.0 (C) 2.9 (D) 0.29
解答與解析
參考 Ans: (A) \(v_{t+1} = \gamma \cdot v_t + \eta \cdot \nabla_\theta L(\theta_t) = 0.9\times2 + 0.1\times1 = 1.8+0.1 = 1.9\) Momentum 將前次動量按係數 γ 衰減後,加上本次梯度乘上學習率,模仿物理慣性使參數更新更平滑。
Q6. 若欲減少 AI 模型因少數群體樣本過少而造成的過擬合風險,可以採用哪種資料增強方法?
(A) SMOTE (B) Softmax (C) Momentum (D) Dropout
解答與解析
參考 Ans: (A) SMOTE(Synthetic Minority Over-sampling Technique)透過合成新樣本擴增少數類別資料,有助於平衡類別分佈,降低過擬合及模型偏誤風險。
Q7. 下列關於結構化剪枝與非結構化剪枝的敘述,何者正確?
(A) 結構化剪枝移除零散的單一權重,較容易與硬體整合 (B) 非結構化剪枝移除整個神經元或通道,硬體支援佳 (C) 結構化剪枝移除整個神經元、卷積通道或層級,較容易與硬體加速器整合 (D) 兩者完全相同
解答與解析
參考 Ans: (C) 結構化剪枝移除整個神經元、卷積通道或層級,較容易與硬體加速器整合;非結構化剪枝移除零散的單一權重參數,雖能達到更高稀疏化,但硬體支援較差。
Q8. 量化(Quantization)技術直接應用後,最常見的副作用與對應解法為何?
(A) 訓練時間變長,無解法 (B) 模型準確度可能下降,常搭配量化感知訓練(QAT)緩解 (C) 記憶體用量會增加 (D) 完全不影響模型表現
解答與解析
參考 Ans: (B) 直接量化可能導致模型準確度下降,常需搭配量化感知訓練(Quantization Aware Training, QAT),讓模型學習適應量化誤差,避免精度損失。