http://www.cnblogs.com/tornadomeet/p/3300132.htmlhtml
沒有系統學過數學優化,可是機器學習中又經常使用到這些工具和技巧,機器學習中最多見的優化當屬凸優化了,這些能夠參考Ng的教學資料:http://cs229.stanford.edu/section/cs229-cvxopt.pdf,從中咱們能夠大體瞭解到一些凸優化的概念,好比凸集,凸函數,凸優化問題,線性規劃,二次規劃,二次約束二次規劃,半正定規劃等,從而對凸優化問題有個初步的認識。如下是幾個重要相關概念的筆記。dom
凸集的定義爲:機器學習
其幾何意義表示爲:若是集合C中任意2個元素連線上的點也在集合C中,則C爲凸集。其示意圖以下所示:函數
常見的凸集有:tornado
n維實數空間;一些範數約束形式的集合;仿射子空間;凸集的交集;n維半正定矩陣集;這些均可以經過凸集的定義去證實。工具
凸函數的定義爲:學習
其幾何意義表示爲函數任意兩點連線上的值大於對應自變量處的函數值,示意圖以下:優化
凸函數的一階充要條件爲:spa
其中要求f一階可微。.net
二階充要條件爲:
其中要求f二階可微,表示二階導數需大於0纔是凸函數。
按照上面的兩個定義,若是f(x)=x^2確定是凸函數,而g(x) = -x^2是非凸函數。也就是說開口向下的函數是非凸函數,可是對於這種狀況能夠經過添加負號變成凸函數,從而求解。
常見的凸函數有:指數函數族;非負對數函數;仿射函數;二次函數;常見的範數函數;凸函數非負加權的和等。這些能夠採用上面2個充要條件或者定義去證實。
凸優化問題(OPT)的定義爲:
即要求目標函數是凸函數,變量所屬集合是凸集合的優化問題。或者目標函數是凸函數,變量的約束函數是凸函數(不等式約束時),或者是仿射函數(等式約束時)。
對於凸優化問題來講,局部最優解就是全局最優解。
常見的凸優化問題包括:
線性規劃(LP):該問題是優化下面的式子:
其中那個不常見的奇怪符號表示按元素小於等於,後面出現相似符號能夠相似理解。
二次規劃(QP):該問題是優化下面的式子:
二次約束的二次規劃(QCQP):該問題是優化下面的式子:
半正定規劃(SDP):該問題是優化下面的式子:
按照文章說SDP在機器學習領域應用很廣,最近很流行,不過我好像沒太接觸到過。
參考資料: