搜尋意圖: 如果你在找「凸優化 是什麼」或「凸優化 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 凸優化是一種數學優化方法,旨在尋找凸函數在凸集合上的最小值。其優點是局部最小值即為全局最小值,易於求解。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
你有沒有想過,為什麼有些最佳化問題比較好解?
你可以把凸優化想成「地形很單純的找最低點」:你往下走時,不太容易被假的小山谷騙住,找到的解通常就是全局最佳。
它很重要,因為很多機器學習和工程問題都要靠最佳化來找答案,凸優化因為穩定、可解,成了很多方法的基礎。
容易混淆
凸優化 vs 非凸優化 vs 一般最小化
凸優化:地形單純,局部最小值就是全局最小值
非凸優化:地形複雜,可能有很多假谷底
一般最小化:只是一個總稱,不一定保證好解
最關鍵的區別:凸優化能保證找到的局部解就是全局解。
記住這句就好
地形是凸的,找到小谷底就放心。
實際案例
廣告預算分配
前:想把預算切到最好,但搜尋空間太亂
後:把問題寫成凸優化,較容易穩定找到最佳配置
模型訓練中的正則化
前:損失函數不好調,參數更新常卡住
後:加入凸形式的目標和約束,讓求解更穩定
算法與應用
凸優化常搭配梯度下降、目標函數、正則化與損失函數一起看
很多線性模型、支援向量機和資源配置問題,都會受惠於凸結構
它的價值在於可解性和可分析性,讓工程上比較知道會收斂到哪裡
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 凸優化 | 台灣常見用語 |
| 凸最佳化 | 台灣學術界較嚴謹的譯法 |
| 凸优化 | 簡體寫法 |
| Convex Optimization | 英文原名 |
為什麼凸這件事這麼重要
一個最佳化問題如果是凸的,它有一個極強的性質:任何局部最低點都是全域最低點。
這句話的實務意義是,只要演算法找到一個「往哪個方向走都不會更低」的點,就可以確定沒有更好的解了,不需要擔心卡在局部低點,也不需要多次隨機起始重跑。
非凸問題沒有這個保證。深度學習的損失函數幾乎都是非凸的,所以訓練結果會依初始值不同而不同,也沒有辦法證明訓練出來的模型是最好的。
判斷凸性的直觀方法:函數圖形上任取兩點連一條線,線段永遠不會落在函數圖形下方,就是凸函數。集合裡任取兩點的連線都完全落在集合內,就是凸集合。
主要優勢
有全域最優保證。 這是最核心的價值,前面已經說明。
收斂速度有理論保證。 凸問題的演算法可以事先估算需要多少次迭代才能達到指定精度,非凸問題做不到。
有成熟的求解器可用。 線性規劃、二次規劃、二階錐規劃、半正定規劃都有高度最佳化的商用與開源求解器,問題只要能寫成標準形式就能直接丟進去。
有對偶理論。 可以從對偶問題得到最優值的下界,用來判斷目前的解離最優還有多遠,這在大規模問題上很實用。
典型應用領域
| 領域 | 具體問題 |
|---|---|
| 機器學習 | 線性迴歸、脊迴歸、Lasso、支援向量機、邏輯斯迴歸 |
| 訊號處理 | 濾波器設計、壓縮感知 |
| 金融 | 投資組合最佳化(馬可維茲模型) |
| 控制 | 模型預測控制 |
| 網路與營運 | 資源配置、排程、最短路徑 |
常被忽略的一點是:很多非凸問題可以透過鬆弛(relaxation)轉成凸問題求近似解。L0 範數(非零元素個數)的最佳化是非凸且難解的,鬆弛成 L1 範數之後就變成凸問題,這正是 Lasso 與壓縮感知的理論基礎。這種「先鬆弛成凸的再解」是最佳化領域最常用的手法之一。
情境判斷
Q1(直覺題): 如果一個問題是凸的,是不是通常比較好解?
→ 是,通常更容易穩定找到全局最優。
Q2(判斷題): 只要用了梯度下降,就代表你在做凸優化嗎?
→ 不一定。梯度下降可以用在凸問題,也可以用在非凸問題。
常見問題
凸優化一定有解析解嗎?
不一定,但通常比較容易數值求解。
機器學習都屬於凸優化嗎?
不是,很多深度學習問題其實是非凸的。
為什麼凸優化這麼常見?
因為它穩定、可證明、可預測,工程上很實用。