《凸優化》學習筆記(一)


?凸優化在數學優化中有着重要且特殊的身份。數學優化是一個廣泛的話題,理解凸優化之前,請先理解線性優化。在機器學習算法中,已知的比如LogisticRegression,SVM,都與數學優化有關,在數學中,不存在無約束優化問題。比較常見的構建損失函數方法,從最簡單的兩個向量的二階范數的平方(KNN,Kmeans)到linearRegression、LogisticRegression的最小二乘模型,再到SVM的二次凸優化,都和數學優化理論緊密相關。本篇筆記主要學習數學優化的前奏部分:凸優化的概念部分。

1.1.1數學優化

--------------------①

這是數學優化的最基本形式。其中,x = (x1,x2,……xn)稱為優化變量,函數稱為目標函數,函數稱為約束函數。常數稱為約束上限或者約束邊界。如果在所有滿足約束的向量中向量對應的目標函數值最小,那么他就是問題的最優解。

在機器學習理論的推導中,一般只考慮特殊的優化問題,線性優化問題。對於上式,如果目標函數和約束函數都是線性函數,即對於任意的,都有:

------------------------------------②

則此問題成為線性規划。在機器學習算法中,還需要進一步特化,就是凸優化。凸優化中目標函數和約束函數都屬於凸函數,即對於任意的,任意,都有:

--------------------------------③成立。比較③和②式可以發現,③式是②式的特殊形式。只用在或者其中一個為0的情況下才成立。不同的是兩者的嚴格程度,后者凸優化是不太嚴格的線性優化問題。所以可以用線性優化的手段來解決凸優化問題,甚至包括特殊情況下的非線性規划問題,也可以采取特殊手段往這個方向靠攏(目前在業內,對於非線性優化問題的求解還不算成熟)。上一篇博客中推導過LogisticRegression的似然函數(與損失函數取反),其實屬於非嚴格意義上的凸優化問題,包括線性回歸,這類問題的損失函數構建可以用最小二乘模型來解決,它本身屬於線性優化問題的范疇。(對於凸函數的定義,有不同的說法。比如,一般認為二階導數<0的函數屬於凸函數,>0屬於凹函數。因為二階導數<0意味着一階導數屬於減函數,也就是原函數的切線的斜率是不斷減小的,這種情況原函數就只能是先增后減了。)在凸優化中,如果函數的自變量是R,我們認為二階導數>=0的函數為凸函數,反之為凹函數。

對於凸優化問題,我們認為目標函數是成本函數,在優化變量滿足約束的情況下,讓成本或者損失最小。

1.1.2 線性優化問題的求解

在工程實際應用中,我們需要的是得到稀疏性的解,不僅可以減少迭代次數,還可以解決過擬合問題,增強模型的解釋能力。關於sparse問題,有專門的研究課題(比如lasso學術研究,CD算法,LAR算法),這里不討論。對於優化問題的求解,有兩類非常重要且廣泛的求解方法:最小二乘法和線性規划問題。還有一類特殊的優化方法:凸優化。

1.2 最小二乘問題

在線性回歸的損失函數的推導中,假定認為偏差( = real - predict)遵循Gaussian Destribution(N(0,1)),根據判別學習模型估計最大似然函數,最后得出來的結論其實是最小二乘模型。最小二乘問題是回歸問題,最優控制以及很多參數估計和數據擬合方法的基礎。在統計學中有着很重要的意義,比如給定包含高斯噪聲的線性測量值時,似然函數的估計的最優解是最小二乘法。如果目標函數是二次函數並且半正定(開口朝上,並且函數值不全>0) ,他就是最小二乘問題。

用數學公式來解釋,最小二乘問題屬於特殊的數學優化問題,沒有約束(m=0)。目標函數其實是由偏差組成的列向量的二階范數的平方(個人理解),如下形式的優化:

--------------------------------------④

其中,A可以理解為機器學習中特征矩陣,x為估計參數,b為真實值組成的列向量,最后面的部分是拆解后的結果。在求解時,一般采用傳統的在線學習方法SGD。

正則化是此類問題的熱點。上個世紀90年代,有學者提出lasso,此后論文被引用了14000多次,由此可見lasso的重要性。在機器學習中,提高模型的泛化能力很重要。LogisticRegression的處理主要有嶺回歸和L1范數,關於這方面,專門寫一篇博客。

1.2.2 線性規划

另一類比較重要的問題是線性規划。如下形式:

-------------------⑤

。對線性規划的求解 ,一般采用內點法,對於原始問題不是線性規划的問題,可以通過一定的技巧轉化為線性規划問題。作為一個簡單的例子,考慮Chybeshev逼近問題:

 

這個公式和前面的最小二乘很相似,不同的是這個公式取偏差的絕對值的最大值作為優化目標。求解這個問題,可以轉換成如下形式的線性規划問題:

 

 1.3 凸優化

SVM就屬於典型的凸優化范疇。求解凸優化問題並不是一件特別難的事兒,難的在於如何判斷問題屬於凸優化問題,如何轉化成凸優化問題。在機器學習的范疇中,更多的是凸優化和非凸優化的判斷。求解凸優化的方法有內點法,但是凸優化的求解並不像最小二乘和線性規划那樣成熟。凸優化的形式和公式①一樣,目標函數和約束函數都是凸函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM