凸優化理論(1)

最近被迫學習了凸優化理論,感覺還是有點東西的,個人感覺機器學習的內核就是優化,如果該優化問題還能轉成或者近似成凸優化那將是一個巨大的突破,因爲凸函數的性質非常優秀,(擬)凸優化的理論研究也已經比較成熟。不過遺憾的是,我們的非凸優化問題理論尚不完,而在現在這個深度學習開始野蠻生成的時間點,顯然非凸問題更加常見。不過非凸近似或者轉換爲凸問題也不失爲一個不錯的策略,所以凸優化理論的重要性不言而喻,特此對最近的學習作一記錄,由於剛剛入門,如有錯誤,還請批評指正。

凸函數定義

關於凸函數的定義,個人總結了2種定義:
1、如果函數ff的上鏡圖epifepif爲凸集則,函數ff爲凸函數。(來自於convex analysis)
這裏又引申出2個問題,什麼是函數上鏡圖;凸集是什麼?
首先,凸集的定義,對於集合S,如果滿足:
x,yS,λ[0,1],λx+(1λ)yS\forall x,y\in S, \lambda \in [0,1],\lambda x+(1-\lambda)y\in S
則S爲凸集。直觀的理解就是凸集內的點通過加法和乘法無法逃出這個集合;或者說 x,yx,y 2個點構成的線段上任意一點還在該集合內。

然後關於什麼是上鏡圖這個問題我也還沒有搞清楚,留作標記。百度上說是值大於函數值的點構成的區域爲該函數的上鏡圖,但關於convex analysis這本書上的定義還是有點搞不懂。

2、第二種定義直接數學表達式比較粗暴。首先函數 f:SRf: S\rightarrow R, SS 爲凸集, 如果有:
x1,x2S,λ[0,1],f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)\forall x_1,x_2\in S,\forall \lambda \in [0,1], f(\lambda x_1 + (1-\lambda)x_2)\leqslant \lambda f(x_1)+(1-\lambda)f(x_2)
則函數 ff 爲凸函數。雖然直接給表達式比較簡單粗暴,但要想理解它還是比較困難的,簡單理解就是取 λ=12\lambda = \frac{1}{2}, 則函數上x1,x2x_1,x_2的中點函數值不大於x1,x2x_1,x_2之間連線中點的值。也就是說對於凸函數而言函數曲線會位於其任意2點之間連的直線。

嚴格凸和強凸

1、嚴格凸,凸函數不等式去個等於號就是嚴格凸了,也就是去掉了函數曲線在2點之間是直線的情況。
x1,x2S,λ[0,1],f(λx1+(1λ)x2)<λf(x1)+(1λ)f(x2)\forall x_1,x_2\in S,\forall \lambda \in [0,1], f(\lambda x_1 + (1-\lambda)x_2)< \lambda f(x_1)+(1-\lambda)f(x_2)
2、強凸,強凸函數的定義將涉及函數的二階偏導數,即Hessian矩陣,這也與凸函數的性質息息相關,放在下篇博客給出。下篇博客將給出強凸函數的定義和凸函數的各種良好性質。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章