凸優化問題01:概述
前言
最近在學習數據挖掘相關過程,之前已經學習了樸素貝葉斯和SVM,但沒有及時記錄下來,之後可能會補發相關的學習筆記,目前的學習系列是凸優化的學習內容,內容會比較詳細,可能涉及公式推導之類的基礎問題。
凸優化基礎知識體系
在正式講述什麼是凸優化之前,我們需要大致瞭解一些凸優化的相關概念,進而引入凸優化,以下是幾個重要相關概念的筆記:
一個簡單的定理證明
定理證明
在介紹凸優化相關概念之前,首先介紹一個簡單的定理,這個定理的內容是:
For any x1,x2, 且 x1<x2, 若x0,則
這個定理是很容易證明的,具體如下:
如圖,該直線上有三個點:x0,x1和x2,其中x0位於x1和x2之間,引入一個參數 t:
t的範圍即爲[0,1]
從而得證。
從一維推導至多維
上述結論可以由一維推廣到多維,具體來說:
For any X,Y, 其中 X = (x1, x2, …, xd), Y = (y1, y2, …,yd), 若任取一個Z 位於X, Y的連線上,則
凸集(convex sets)
凸集,定義目標函數和約束函數的定義域。
英文的準確表述爲:
A set C is convex if the lines segment between any two points in C lines in C, i.e., if for any x1, x2, and any with 0<<1, we have:
舉個例子來說:
(one convex, two nonconvex sets)
凸集(convex sets)與仿射集(Affine Set)區分
仿射集:如果通過集合 C 中任意兩個不同點之間的直線仍在集合C中,那麼稱集合C是仿射的。
凸集:如果通過集合 C 中任意兩個不同點之間的線段仍在集合C中,那麼稱集合C是凸的。
因爲仿射集的條件比凸集的條件強,所以仿射集必然是凸集。
凸函數(convex function)
凸函數定義
函數f(x): RnR 爲凸函數,當且僅當滿足如下條件:
- x的定義域 D(f) 爲凸;即for any x, y D(f),
- 對上述x, y, 滿足 f(x+(1-)y) f(x)+ (1-) f(y)
凸函數舉例
-
一維上
幾何意義表示爲函數任意兩點連線上的值大於對應自變量處的函數值,示意圖如下:
由圖可以看出,f(z) = f(x+(1-)y) < f(x)+ (1-) f(y)
一維情況下,不嚴格的說,凸函數是弦在上的函數。 -
二維上
由圖可以看出,f(x0) = f(x1+(1-)x2) < f(x1)+ (1-) f(x2)
常見的一些凸函數
凸優化
凸優化是約束優化的特殊形式(即要求定義域和目標函數均爲凸函數)
其具體定義爲:
A convex optimization problem is one of the form
where the function f0, ,fm: Rn R are convex, i.e., satisfy
for all x, y Rn and all , R with = 1, , .