Skip to main content

為什麼標準形式很重要 (Why Standard Forms Matter)

在部分 (b) 經過一連串數學運算擺脫了絕對值函數之後,我們的問題在數學上已經是可解的了。但在實務上,它仍然是用兩組獨立的變數(θ+\theta^+θ\theta^-)寫成的。

電腦軟體函式庫(例如 Python 中的 scipy.optimize 或 MATLAB 中的 quadprog)看不懂我們客製化的機器學習符號。它們被設計用來解決高度廣泛通用、標準化的數學模型模板。

二次規劃模板 (The Quadratic Programming Template)

「二次規劃 (Quadratic Program, QP)」是一個非常有名的標準數學模型,它的形狀通常如下: 「在嚴格的邊界條件限制下,尋找一個碗狀(二次)表面的最低點。」

在數學上,這個模板期望接收:

  1. 一個單一、統一的變數向量:x\mathbf{x}
  2. 一個描述「碗的曲率」的矩陣:H\mathbf{H}
  3. 一個引導「線性坡度」的向量:f\mathbf{f}
  4. 一個標準的邊界條件,例如 x0\mathbf{x} \ge 0

打包變數 (Packing the Variables)

為了將我們的 LASSO 迴歸硬塞進這個模型中,我們就像一個工廠裡裝貨的工人:

  • 我們將兩個獨立的向量(θ+\theta^+θ\theta^-)拿起來,緊緊地上下堆疊,將它們裝進一個更高大的箱子,並命名為 x\mathbf{x}
  • 因為我們將變數向量的長度增加了一倍,其他所有的東西都必須跟著拉展適應。原本的矩陣和向量(如 ΦΦT\Phi\Phi^TΦy\Phi y)被複製並排列成一個 2×22 \times 2 的區塊網格 (block grid),以確保能正確地與我們新高大向量 x\mathbf{x} 的上半部(θ+\theta^+)和下半部(θ\theta^-)進行互動。
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

透過明確地將我們的機器學習問題映射到 (x,H,f)(\mathbf{x}, \mathbf{H}, \mathbf{f}) 的模板上,我們可以把實際的最佳化過程當作一個「黑盒子 (black box)」,依賴數十年間高度優化的高等數學計算軟體,瞬間就為我們找出解答。