Convex Optimization 凸函數最佳化 #
機器學習在訓練模型時通常是在求函數的極小值,以監督式學習而言,這個函數就是衡量模型預測跟答案 (label) 差異的函數。當函數值極小時,我們可以得到預測錯誤極小的模型。
當一個函數是 convex 且有極值的時候其極值為全域極小值 (global minimum)。Convex 函數長這個樣子:
如圖,極小值發生在斜率為 0 (也是微分為 0) 的地方。
Convex 函數 \(f\) 的數學定義為: \(f:\R^n\rightarrow\R\) 為 n 維實數映到一維實數的函式。對所有在 \(f\) 定義域中的 \(x\) , \(y\) 滿足以下: \[f(tx + (1-t)y) \le tf(x) + (1-t)f(y), for\enspace 0\le t\le 1\]
意即將 \(f(x)\) 與 \(f(y)\) 連成直線,該直線會在 \(f\) 上方。
嚴格(Strictly)的 Convex 定義為,對所有 \(x\) , \(y\) ,其中 \(x \ne y\) 滿足以下: \[f(tx + (1-t)y) \lt tf(x) + (1-t)f(y), for\enspace 0\lt t\lt 1\]
意即直線不為 strictly convex。
有些函數並沒有解析解 (或稱公式解),沒辦法用一個公式算出極值。這時候就需要使用 convex optimization 的技巧來求得極值。或是有些函數很複雜,並不滿足 convex 的條件 (像各種深度學習的模型),也會假裝它是 convex ,使用類似的技巧求區域極小值。
參考資料: