解決最優化問題 :
稍微對它做一下改動,如下:
這是一個約束優化問題,更進一步說是一個二次規划問題,復習一下約束優化問題:
定義1:約束非線性問題是,
其中和
都是定義在
上的實值連續函數,且至少有一個是非線性的(反之為線性約束優化問題),m是一個正整數,
叫做目標函數,
叫做約束函數,如果目標函數是二次函數則叫做二次規划問題,由同時滿足所有約束方程的點組成的集合叫做可行域,這些點叫可行點。
定義2:Farkas引理,對於給定的n維向量與b,對於任意滿足
的向量P,必有
的充要條件是:b在向量
所形成的凸錐內,即成立:
,
。
怎么理解“某個向量在若干其它向量形成的凸錐內”這個描述呢?可以看下圖,
利用平行四邊形法則,可以看到向量b處於由形成的凸多邊形內,發揮一下想象力,在空間中這不就像是一個凸的錐狀體嘛。
則叫做K-T點。
K-T點的幾何意義可以從下圖看出:
顯然x1是K-T點而x2則不是。在一般非線性規划中,K-T條件是最優解的必要條件但不是它的充分條件,此時K-T點不一定是最優點,但對於凸規划問題,K-T條件是最優解的充要條件;順便說下,凸規划是個好同志,它的局部最優解就是全局最優解,所以它的K-T點就是全局最優點。
定理1:設是約束問題的局部極小點,
點處的線性化可行方向的集合等於其序列可行化方向的集合,則必存在
使得:
“點處的線性化可行方向的集合等於其序列可行化方向的集合”這個條件怎么滿足呢?只要所有有效約束都是線性函數即可,此時
必是一個K-T點。
定理2:一階最優性條件:對於可行點,如果目標函數和所有有效約束在
處可微,且任意、非零的,在
處的序列可行化方向向量d滿足:
,則
為嚴格局部極小點。這意味着,當向某一點處的任意方向移動都將導致目標函數值上升,那么這個點不就是一個局部極小點嘛。
定理3:二階最優性條件:設為K-T點,
是相應的拉格朗日乘子,如果
,其中d為非零的、
處的線性化零約束方向,則
為嚴格的局部極小點。
推論1:設為K-T點,
是相應的拉格朗日乘子,如果對一切滿足
的非零向量d都有
,則
為嚴格的局部極小點。
對於前面的約束非線性規划問題,如果是二次函數且所有約束是線性函數的時候就變成了二次規划問題,這一寫成以下形式:
定理4:如果是二次規划問題的可行點,則
是局部極小點的充要條件是:當且僅當存在拉格朗日乘子
,使得:
,
成立,(即是K-T點)且對於一切滿足
的向量d都有:。
定理5:設H為半正定矩陣(所有特征值大於等於0),則二次規划問題的全局極小點當且僅當它是一個局部極小點或者K-T點。
當H為半正定矩陣,目標函數為凸函數時,該二次規划被叫做凸二次規划,它的任何K-T點都是極小點。回想我們開篇要解決的那個問題,目標函數顯然是一個凸函數,所以它是一個凸二次規划問題,所以一定存在全局極小點(真好!)。
到此,我們就可以開始解決開篇的那個問題:
已經確定它是一個凸二次規划問題了,那么可以利用其拉格朗日函數:
通過對和
求偏導數后得到:
帶入原始拉格朗日函數,轉化為對偶問題:
這樣就把帶不等式約束的優化問題通過其對偶形式轉化為只帶等式約束的優化問題,即下面的最優化問題W:????
求得后就得到了
,它使得幾何間隔
取最大值,從而得到最優分類超平面。
K-T點要滿足的條件還有一個是:,這個式子說明了什么問題呢?
1、顯然,函數間隔不等於1的那些輸入點的拉格朗日系數必為0(這些點是非積極因素),而函數間隔恰好為1的輸入點的拉格朗日系數則不為0(這些點是積極因素),這說明確定最終分類超平面的就是這些函數間隔為1的邊界點,所以這些輸入點就是支持向量(Support Vector)。從這里也能看出支持向量機的抗干擾能力比較強,對非積極因素的擾動對於最優化解沒有影響;
2、,其中i為支持向量,因為:
,我們的目標函數
(注意這里
為常數,且有約束條件
)
於是通過這樣的對偶轉化,我們得到了實現幾何間隔為的最大間隔超平面。
通過上面的推導也可以看出將二次規划轉化為其對偶問題可以簡化約束條件,讓我們記住最優化問題W吧,這是一個很牛逼的轉化,這個式子還有個特點,就是“數據僅出現在內積中”。
前面的討論都是說輸入樣本是線性可分的時候怎么找到最大間隔超平面來划分兩類數據,那么如果輸入樣本是線性不可分的,那可怎么辦呀,前面的那些討論不就成徒勞的了么?學習SVM后才知道它牛的地方,如果我們可以通過某種函數映射將輸入樣本映射到另外一個高維空間並使其線性可分的話,前面的討論結果不就都可以用到了么,還記得“數據僅出現在內積中”吧,假設這個映射關系是:,這時候的內積
就變成了
,如果有方法能夠將內積
直接算出,就將把輸入樣本“從低維空間向高維空間映射”和“求映射后的內積”這兩步合並成了一步,這樣直接計算的方法就是核函數方法,下篇學習核函數吧,SVM的理論部分還是很數學的啊!