凸優化 是什麼?

Convex Optimization:凸優化 的完整解釋

凸優化是一種數學優化方法,旨在尋找凸函數在凸集合上的最小值。其優點是局部最小值即為全局最小值,易於求解。

容易混淆

凸優化 vs 非凸優化 vs 一般最小化

凸優化:地形單純,局部最小值就是全局最小值

非凸優化:地形複雜,可能有很多假谷底

一般最小化:只是一個總稱,不一定保證好解

最關鍵的區別:凸優化能保證找到的局部解就是全局解。

記住這句就好

地形是凸的,找到小谷底就放心。

實際案例

廣告預算分配

前:想把預算切到最好,但搜尋空間太亂

後:把問題寫成凸優化,較容易穩定找到最佳配置

模型訓練中的正則化

前:損失函數不好調,參數更新常卡住

後:加入凸形式的目標和約束,讓求解更穩定

算法與應用

凸優化常搭配梯度下降、目標函數、正則化與損失函數一起看

很多線性模型、支援向量機和資源配置問題,都會受惠於凸結構

它的價值在於可解性和可分析性,讓工程上比較知道會收斂到哪裡

中英對照與常見說法

說法 出現場合
凸優化 台灣常見用語
凸最佳化 台灣學術界較嚴謹的譯法
凸优化 簡體寫法
Convex Optimization 英文原名

為什麼凸這件事這麼重要

一個最佳化問題如果是凸的,它有一個極強的性質:任何局部最低點都是全域最低點

這句話的實務意義是,只要演算法找到一個「往哪個方向走都不會更低」的點,就可以確定沒有更好的解了,不需要擔心卡在局部低點,也不需要多次隨機起始重跑。

非凸問題沒有這個保證。深度學習的損失函數幾乎都是非凸的,所以訓練結果會依初始值不同而不同,也沒有辦法證明訓練出來的模型是最好的。

判斷凸性的直觀方法:函數圖形上任取兩點連一條線,線段永遠不會落在函數圖形下方,就是凸函數。集合裡任取兩點的連線都完全落在集合內,就是凸集合。

主要優勢

有全域最優保證。 這是最核心的價值,前面已經說明。

收斂速度有理論保證。 凸問題的演算法可以事先估算需要多少次迭代才能達到指定精度,非凸問題做不到。

有成熟的求解器可用。 線性規劃、二次規劃、二階錐規劃、半正定規劃都有高度最佳化的商用與開源求解器,問題只要能寫成標準形式就能直接丟進去。

有對偶理論。 可以從對偶問題得到最優值的下界,用來判斷目前的解離最優還有多遠,這在大規模問題上很實用。

典型應用領域

領域 具體問題
機器學習 線性迴歸、脊迴歸、Lasso、支援向量機、邏輯斯迴歸
訊號處理 濾波器設計、壓縮感知
金融 投資組合最佳化(馬可維茲模型)
控制 模型預測控制
網路與營運 資源配置、排程、最短路徑

常被忽略的一點是:很多非凸問題可以透過鬆弛(relaxation)轉成凸問題求近似解。L0 範數(非零元素個數)的最佳化是非凸且難解的,鬆弛成 L1 範數之後就變成凸問題,這正是 Lasso 與壓縮感知的理論基礎。這種「先鬆弛成凸的再解」是最佳化領域最常用的手法之一。

情境判斷

Q1(直覺題): 如果一個問題是凸的,是不是通常比較好解?

→ 是,通常更容易穩定找到全局最優。

Q2(判斷題): 只要用了梯度下降,就代表你在做凸優化嗎?

→ 不一定。梯度下降可以用在凸問題,也可以用在非凸問題。

相關術語

常見問題

凸優化一定有解析解嗎?

不一定,但通常比較容易數值求解。

機器學習都屬於凸優化嗎?

不是,很多深度學習問題其實是非凸的。

為什麼凸優化這麼常見?

因為它穩定、可證明、可預測,工程上很實用。