SVM學習——求解二次規劃問題
稍微對它做一下改動,如下:
這是一個約束優化問題,更進一步說是一個二次規劃問題,複習一下約束優化問題:
定義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的理論部分還是很數學的啊!