凸優化
作者:櫻花豬
摘要:
本文為七月算法(julyedu.com)12月機器學習第四次課在線筆記。“凸優化”指的是一種比較特殊的優化,通過“凸優化”我們能夠把目標函數轉化成一個“凸函數”然后利用凸函數的性質求極值來求解問題。“凸優化”不僅僅在機器學習中有所應用,幾乎在任何用到有關於目標函數求值的問題都會用到。本次課程由淺入深,將學術上復雜的問題解釋的通俗易懂,個人認為是機器學習系列課程非常有亮點的一課。
引言:
本文用凸函數結合凸集的視角來闡述凸優化的方案,在課程中提供了一些簡單易操作的例子讓看起來比較陽春白雪的凸優化問題變得非常接地氣。這次課程的內容不僅僅可以運用到機器學習,還可以用於許多將優化目標函數的問題中。本次比較比較注重於基礎概念的記錄以及算法的思路而不過多糾結定理的證明。
預備知識:
高等數學
預備概念:
凸集保凸運算;分割超平面;支撐超平面;上境圖;Jensen不等式;凸函數的保凸運算;
凸優化:
KKT條件;
一、預備知識
1、直線的向量表達:
![]()
假設直線經過兩點A、B,則:
,
,
;
當
時,
表示過AB的直線。
當
時,
表示過AB的線段。
2、幾何體的向量表達
任何體都可以用向量表達
三維平面:![]()
超平面:![]()
(超)幾何體:![]()
3、仿射集
定義:通過集合C中任意兩個不同點的直線仍然在集合C內,則稱集合C為仿射集。
![]()
類比幾何體向量表達中的平面表達,多點的時候要滿足![]()
4、凸集
集合C內任意兩點間的線段均在集合C內, 則稱集合C為凸集。
![]()
類比幾何體向量表達中的幾何體表達,多點的時候要滿足![]()
因為仿射集的條件比凸集的條件強,所以,仿射集必然是凸集。
5、凸包
集合C的所有點的凸組合形成的集合,叫做集C的凸包。
![]()
集合C的凸包是能夠包含C的最小的凸集。
6、超平面和半空間
半空間half space![]()
7、歐式球和橢球
歐式球:
橢球:
。
8、范數:

9、范數球
10、范數錐
11、多面體
多面體有限個半空間和超平面的交集。
仿射集(如超平面、直線)、射線、線段、半空間都 是多面體。
多面體是凸集。
12、保凸運算
集合交運算:仿射變換(線性變換
)
透視變換:透視函數對向量進行伸縮(規范化),使得最 后一維的分量為1並舍棄之。(降維)
投射變換:投射函數是透視函數和仿射函數的復合
13、支撐超平面
14、凸函數
15、上境圖
16、凸函數與凸集
一個函數是凸函數,當且僅當其上境圖是凸集,(凸優化重要思路)
17、Jesen不等式
若f是凸函數:![]()
18、保持函數凸性的算子
a. 凸函數的非負加權和
b. 凸函數與仿射函數的復合
c. 凸函數的逐點最大值、逐點上確界
19、共軛函數
原函數
共軛函數定義:
![]()
定義式的右端是關於y的仿射函數,它們逐點求上確界,得到的函數f*(y)一定是凸函數。
20、Fenchel不等式
根據共軛函數定義有:![]()
二、凸優化
凸優化的基本形式:
目標:求f(x)的最小值解。
條件:
凸函數:
;
仿射函數:![]()
凸優化問題的重要性質:
凸優化問題的可行域為凸集
凸優化問題的局部最優解即為全局最優解(非常重要)
根據凸優化問題的基本形式,很容易想到拉格朗日乘子法。
構造拉格朗日函數:
![]()
對固定的x,Lagrange函數L(x,λ,v)為關於λ和v的仿射函數
求下界,即Lagrange對偶函數
![]()
若原優化問題有最值
,則![]()
於是我們希望Lagrange對偶函數為凹函數。
於是我們希望求右圖的上界。
若要對偶函數的最大值即為原問題的最小值,考察需要滿足的條件:
最后得到KKT條件:
