最優化問題就像做菜,放多少水、撒多少鹽、燉多長時間都是需要我們慢慢摸索,才能找到合適的量,掌握恰當的火候,然後做出最美味的菜餚。
最優化問題目前在機器學習,數據挖掘等領域應用非常廣泛,簡單來說機器學習主要做的就是優化問題。解決最優化問題的方法有很多種,比如微分學中求極值、常用微分公式、變分學中求極值、凸集與凸函數等。
今天晚上我們就來學習目前應用最廣泛的解決方法——凸集與凸函數。
01 凸集
凸集的語言定義是,若集合C內任意兩點間的線段均在集合C內,則稱集合C為凸集。
翻譯成數學語言就是:
為了讓大家更直觀的了解什麼是凸集,我們來看下面一組圖形和線段。
任意的一條線段和多邊形都可以看成一段凸集,上圖中只有左邊圖1是完整的凸集,中間圖2因為有段線段在圖形之外,右邊圖3中的多邊形有些邊沒有包含集合也不能稱為凸集。
02 超平面、半空間與多面體
超平面(hyperplane)的數學定義:
其中 a 是一個非零向量,b 是實數,即 a≠0,b∈R.
幾何定義如圖所示:
一個超平面有兩個半空間,半空間的數學定義為:
利用超平面和半空間我們可以定義多面體,多面圖表示有限個半空間和超平面的交集,它是一個凸集,單純形(三角形,四面體)也是一個多面體。
多面體的數學定義如下:
03 保持凸性的運算
保持凸性運算是凸優化中很重要的一個知識點,常見的保凸運算有以下幾種。
集合交運算
對於任意兩個集合A、B,由所有既屬於A又屬於B的元素構成的集合,稱作A與B的交集,記作
表達成數學式即為:
= {
且
}。
仿射變換
簡單來說仿射變換就是「線性變換」+「平移」。
仿射變換從幾何直觀只有兩個要點:
變換前是直線的,變換後依然是直線直線比例保持不變
仿射變換用數學表示即為:
透視變換
透視函數對向量進行伸縮(規範化),使得最後一維分量為1並捨棄之。
透視變換的數學定義如下:
04 凸函數
學習了凸集和保凸運算之後,我們再來看下什麼是凸函數。
若函數f它的定義域domf為凸集,且滿足
則這樣的函數f就是凸函數。
如果一個函數是凸函數,則該函數的圖像上方區域一定是凸集。反過來也成立,即:如果一個函數圖像的上方區域是凸集,則該函數是凸函數,於是如下圖所示:
05 一階可微
若函數f一階可微,則函數f為凸函數若且唯若f的定義域domf為凸集,且
將上面的數學公式放置函數圖像中,任意給出x和 f(x)這1點,可以看出其實是在這1點處的分割超平面。
對於凸函數,其一階Taylor近似本質上是該函數的全局下估計。反之一個函數的一階Taylor總是起全局下估計,則該函數是凸函數。
06 二階可微
若函數f二階可微,則函數f為凸函數若且唯若dom為凸集,且
若f是一元函數,上式表示二階導大於等於0
若f是多元函數,上式表示二階導Hessian矩陣半正定。
07 上鏡圖
函數f的圖像定義為:
函數f的上鏡圖(epigraph)定義為:
函數圖像表示如下圖所示:
一個函數是凸函數,若且唯若其上鏡圖是凸集,一個函數是凹函數,若且唯若其亞圖是凸集。
08 保持函數凸性的算子
了解了凸函數的定義之後,我們來看下什麼樣的運算會讓函數不丟失凸性。下面的f(x)代表凸函數,則以下3種運算的結果會繼續保持凸性。
1、凸函數的非負加權和
f(x) = w1f1(x)+ ... + wnfn(x),wn > 0
2,凸函數與仿射函數的複合
g(x)= f(Ax + b)
eg:y = u2是凸函數,而u =ax+b,則 y = (ax+b)2也是凸函數
3,凸函數的逐點最大值、逐點上確界
a,f(x) = max(f1(x),..., fn(x))
b,f(x) = sup g(x,y),其中y∈A
好啦~今晚的課程就到這裡了。
咱們「AI大學移動端」已經將【凸優化】的視頻課程上線了~小夥伴們記得戳菜單欄【AI大學】或點擊閱讀原文,去學習更多關於最優化的知識。