CH3.3 數值優化技術與方法
數值優化技術與方法
模型訓練 = 數值優化問題(目標函數、決策變數、可行域、凸性/可導性)→ 損失函數設計決定學習方向與風險偏好 → 優化演算法(梯度下降及其變形:SGD、Momentum、Adagrad、RMSprop、Adam)依梯度資訊更新參數 → 收斂判準與穩定訓練策略(學習率調整、早停法、梯度裁剪、批次正規化)確保訓練不發散、不過擬合。
1. 模型訓練即數值優化問題
「訓練模型」本質上就是一個數值優化問題(Numerical Optimization Problem):不論是調整線性模型權重、深度神經網路數千萬個連接係數,或強化式學習中尋找最適策略,核心邏輯皆是找出一組能讓損失函數達到最小(或目標函數最大)的參數組合。
2. 最佳化問題的基本構成要素
| 要素 | 定義 | 機器學習中的對應 |
|---|---|---|
| 目標函數(Objective Function) | 衡量模型輸出與實際答案偏差程度,也稱損失/成本函數 | 迴歸:MSE;分類:交叉熵損失;排序:對比損失/排序損失 |
| 決策變數(Decision Variables) | 模型中可調整的數值參數 | 線性模型的權重與偏差項;神經網路的權重/偏差;機率模型的條件機率表、潛在變數 |
| 可行域(Feasible Region) | 決策變數的合法範圍 | 非負條件(NMF)、上下限限制、總和約束(機率分佈需為1)、稀疏性限制(L1 正則化) |
| 函數性質:凸性與可導性 | 決定求解難易度 | 凸問題(線性/邏輯迴歸)可保證找到全域最佳解;非凸問題(神經網路)存在多個局部最小值與鞍點 |
若目標函數是凸函數,從任一初始點持續往下降的方向走,最終一定能找到全域最佳解;神經網路等非凸問題則需依賴適當初始化、動量機制與調整策略才能取得良好解。
3. 損失函數:學習過程的導航器
損失函數(Loss Function)不僅是誤差的量化工具,更體現學習目標的策略偏好與風險容忍度,其設計決定模型如何看待不同型態的錯誤(如假陽性 vs 假陰性的權重差異)。
| 任務類型 | 常見損失函數 | 特點 |
|---|---|---|
| 迴歸任務 | 均方誤差(MSE) | 放大較大誤差的懲罰,適合誤差穩定的情況 |
| 迴歸任務 | 平均絕對誤差(MAE) | 對極端值較不敏感,適用含異常值資料 |
| 迴歸任務 | Huber 損失 | 結合 MSE 與 MAE 優點,兼顧穩定性與抗雜訊 |
| 分類任務 | 交叉熵損失(Cross-Entropy) | 衡量預測機率分佈與實際標籤分佈差距,多數分類模型標準選擇 |
| 分類任務 | Focal Loss | 強化難分類樣本學習,適合資料不平衡問題 |
| 排序/重建任務 | 排序損失、重建損失 | 關注相對順序或輸入輸出相似度,用於推薦系統、自編碼器 |
不當選擇損失函數(例如分類問題使用迴歸損失)會導致模型訓練無效,甚至完全無法收斂,損失函數的選型必須對應任務型態,不可隨意替換。
4. 優化演算法:梯度下降及其變形
優化演算法(Optimization Algorithm)負責判斷每次應往哪個方向移動、該移動多遠,以逐步接近最佳解。
(1) 基礎方法
| 方法 | 概念 | 特點 | 適用情境 |
|---|---|---|---|
| 梯度下降法(Gradient Descent, GD) | 使用整個訓練集計算梯度並更新參數 | 更新穩定、計算成本高、訓練速度慢 | 小型資料集、高精度需求 |
| 隨機梯度下降(SGD) | 每次用一筆樣本估算梯度 | 更新快、記憶體需求低,但梯度波動大、收斂不穩定 | 大型資料集、線上學習 |
| 小批次梯度下降(Mini-batch SGD) | 每次用一批資料計算梯度 | 在穩定性與效率間取得平衡 | 深度學習最常見選擇,能與 GPU 高度結合 |
(2) 進階方法:學習率調整與收斂加速
| 優化器 | 核心概念 | 優點 | 限制 |
|---|---|---|---|
| 動量法(Momentum) | 累積前幾次梯度方向,模仿物理慣性 | 加速收斂並穩定學習,適合高曲率空間 | 需調整動量係數 |
| Adagrad | 依每個參數的歷史梯度大小自動調整學習率 | 適合稀疏特徵或不均衡參數更新 | 學習率隨時間過度衰減,可能導致收斂停止 |
| RMSprop | 引入滑動平均,修正 Adagrad 學習率過快下降的問題 | 穩定訓練,特別適合非穩定梯度(如 RNN) | 需調整衰減率 |
| Adam(Adaptive Moment Estimation) | 結合動量與 RMSprop,追蹤梯度一階與二階動量 | 訓練快速、收斂穩定,廣泛適用 | 記憶體需求較高 |
優化器演進口訣:「GD 太慢 → SGD 太抖 → Momentum 加慣性 → Adagrad/RMSprop 自動調學習率 → Adam 集大成」,依序理解各方法解決的痛點就能快速判斷考題。
5. 收斂判準與訓練穩定性
(1) 常見收斂判準
- 損失函數變化趨緩(連續多次迭代變化幅度低於閾值 ε)
- 驗證集效能不再提升(持續持平甚至下降,代表已達泛化能力上限)
- 梯度趨近零(損失函數位於平坦區域)
- 訓練步數或時間達上限(應搭配其他指標,避免尚未收斂即中止)
(2) 訓練不穩定的常見成因
學習率過高、初始權重設置不當、損失函數或資料分佈不連續、批次大小過小,都可能導致訓練震盪或發散。
(3) 常用穩定訓練策略
📝 章節考題自測(先作答,再點開解答)
Q1. 在梯度下降(Gradient Descent)中,「梯度」代表下列哪一項?
(A) 資料點個數 (B) 模型精確度 (C) 損失函數對參數的偏微分 (D) 模型計算速度
解答與解析
參考 Ans: (C) 梯度是損失函數相對於模型參數的導數,指引參數應往哪個方向調整以減少損失,梯度越大表示調整幅度應越大。
Q2. 以下哪一種優化方法會累積每個參數的歷史梯度大小,以調整學習率?
(A) Momentum (B) Adagrad (C) SGD (D) Batch Normalization
解答與解析
參考 Ans: (B) Adagrad 根據各參數歷史梯度平方和調整每個參數的學習率,對變動少的參數保留較高學習率,對變動大的參數降低學習率,適合稀疏特徵資料,但缺點是學習率會持續衰減。
Q3. 當深度學習模型在訓練時出現梯度爆炸現象,應優先採用哪種技術加以處理?
(A) 增大學習率 (B) 梯度裁剪(Gradient Clipping) (C) 減少資料量 (D) 刪除輸入特徵
解答與解析
參考 Ans: (B) 梯度裁剪能限制梯度的最大值,防止數值爆炸,特別適用於深度神經網路或 RNN 訓練,是處理梯度爆炸的首選技術。
Q4. Adam 優化器結合了下列哪兩種方法的優點?
(A) SGD 與 Batch Normalization (B) Momentum 與 RMSprop (C) Dropout 與 Early Stopping (D) Adagrad 與 SVM
解答與解析
參考 Ans: (B) Adam(Adaptive Moment Estimation)結合動量與 RMSprop,追蹤梯度的一階與二階動量,自動調整各參數的學習率,是目前最常用的深度學習優化器之一。
Q5. 一個目標函數若為凸函數(Convex Function),下列敘述何者正確?
(A) 必定無法求解 (B) 從任一初始點持續下降最終能找到全域最佳解 (C) 一定存在多個局部最小值 (D) 無法使用梯度下降法求解
解答與解析
參考 Ans: (B) 凸函數具有可預期、穩定的求解特性,從任一初始點開始只要持續往下降方向走,最終一定能找到全域最佳解,線性迴歸、邏輯迴歸皆屬凸問題。
Q6. 若在分類問題中誤用了迴歸任務常見的損失函數(如 MSE),最可能導致的結果是?
(A) 訓練效果更好 (B) 完全沒有影響 (C) 模型訓練無效甚至無法收斂 (D) 訓練速度大幅加快
解答與解析
參考 Ans: (C) 損失函數需對應任務型態設計,不當選擇損失函數(如分類問題使用迴歸損失)將導致模型訓練無效,甚至完全無法收斂,因為損失函數的梯度訊號無法正確反映分類任務的優化方向。
Q7. 下列何者是判斷模型訓練是否收斂的常見依據?
(A) 訓練資料的筆數 (B) 驗證集效能是否持續提升 (C) 使用者介面設計 (D) 資料視覺化工具種類
解答與解析
參考 Ans: (B) 若模型在驗證集上的準確率、F1 分數等指標持續持平甚至下降,代表模型可能已達到泛化能力上限,是常見的收斂判準之一,此時再繼續訓練反而可能導致過擬合。
Q8. 承第 7 題情境,此時最適合搭配下列哪一種訓練策略以避免過擬合?
(A) 提高學習率 (B) 增加批次大小至最大 (C) 早停法(Early Stopping) (D) 移除所有正則化項
解答與解析
參考 Ans: (C) 早停法在驗證集效能連續多次未改善時即中止訓練,可有效防止模型在無實質提升下持續學習而產生過擬合,常與學習率調整策略搭配使用。