為什麼標準形式很重要 (Why Standard Forms Matter)
在部分 (b) 經過一連串數學運算擺脫了絕對值函數之後,我們的問題在數學上已經是可解的了。但在實務上,它仍然是用兩組獨立的變數( 和 )寫成的。
電腦軟體函式庫(例如 Python 中的 scipy.optimize 或 MATLAB 中的 quadprog)看不懂我們客製化的機器學習符號。它們被設計用來解決高度廣泛通用、標準化的數學模型模板。
二次規劃模板 (The Quadratic Programming Template)
「二次規劃 (Quadratic Program, QP)」是一個非常有名的標準數學模型,它的形狀通常如下: 「在嚴格的邊界條件限制下,尋找一個碗狀(二次)表面的最低點。」
在數學上,這個模板期望接收:
- 一個單一、統一的變數向量:。
- 一個描述「碗的曲率」的矩陣:。
- 一個引導「線性坡度」的向量:。
- 一個標準的邊界條件,例如 。
打包變數 (Packing the Variables)
為了將我們的 LASSO 迴歸硬塞進這個模型中,我們就像一個工廠裡裝貨的工人:
- 我們將兩個獨立的向量( 和 )拿起來,緊緊地上下堆疊,將它們裝進一個更高大的箱子,並命名為 。
- 因為我們將變數向量的長度增加了一倍,其他所有的東西都必須跟著拉展適應。原本的矩陣和向量(如 和 )被複製並排列成一個 的區塊網格 (block grid),以確保能正確地與我們新高大向量 的上半部()和下半部()進行互動。
graph TD
subgraph 客製化問題 (Custom Problem)
O1[帶有 theta+ 和 theta- 的目標函數]
end
subgraph 標準 QP 求解器格式 (Standard QP Solver Format)
S[min 0.5 * x^T H x + f^T x]
end
O1 -- 將變數堆疊成向量 x --> S
O1 -- 將矩陣排列成區塊 H --> S
透過明確地將我們的機器學習問題映射到 的模板上,我們可以把實際的最佳化過程當作一個「黑盒子 (black box)」,依賴數十年間高度優化的高等數學計算軟體,瞬間就為我們找出解答。