SVM學習記錄1:線性可分硬間隔最大化

SVM是機器學習中非常流行的一個分類算法,尤其是處理二分類問題。但是相對於其他算法SVM可能難度稍大——至少我是這麼覺得。但是,這又是一個必須攻克的課題。我在學習SVM的時候痛下決心,將自己的學習歷程記錄在筆記本上。現在將其整理成博客,與諸君共勉。

概念理解

SVM的中文名叫做“支持向量機”,什麼意思呢?也就是隻依靠少量的支持向量做出決策而並不是依靠所有的訓練樣本。那麼支持向量又是什麼呢?書上說:“在線性可分情況下,訓練數據集的樣本點中與分離超平面距離最近的樣本點的實例,成爲支持向量。”

知道了什麼是支持向量,貌似還是雲裏霧裏,好吧,我們先講點宏觀一點的概念。SVM主要用來處理二分類問題,如何將一個測試樣本分類呢?這和邏輯斯蒂迴歸的方法類似。我們先通過訓練得到一個超平面,如果特徵維度爲二,那就是平面內的一條直線。然後,如果測試樣本在這條線的上邊,就屬於A類,如果在這條直線的下邊,就屬於B類。具體就是通過將數據輸入分類決策函數中去計算。

邏輯斯蒂迴歸也是通過訓練一個超平面去分類,感知機算法也是。但是,SVM厲害就在於它這個超平面找到很好,是最好的。什麼是最好呢?就是使所有的訓練樣本儘量遠離分離超平面,這樣保證了置信度。

顯然,找到一個相對最好的超平面,這涉及到一個最優化問題。這個最優化問題就是最優二次規劃問題。爲了描述這個問題,還需要引入兩個基本概念:函數間隔和幾何間隔。這裏引用一下《統計學習方法》中對函數間隔的描述:

一般來說,一個點距離分離超平面的遠近可以表示分類預測的確信程度。在超平面wx+b=0確定的情況下,|wx+b|能夠相對地表示點x距離超平面的遠近(想想點到超平面的距離公式),而wx+b的符號與類標記y的符號是否一致能夠表示分類是否正確。所以可用量y(wx+b)來表示分類的正確性及確信度,這就是函數間隔的概念。

函數間隔可以表示分類預測的正確性及確信度,但是我們的SVM模型在選擇超平面時,只有函數間隔是不夠的。因爲分離超平面的公式爲wx+b=0,我們發現只要成比例地改變w和b,超平面並沒有變,但是函數間隔卻成比例的改變了。所以,可以對分離超平面的法向量w加某些約束,如規範化,使w的L2範數||w||=1,使得間隔是確定的。這時函數間隔就成爲了幾何間隔。

超平面關於樣本點的幾何間隔一般是實例點到超平面的帶符號的距離,當樣本點被超平面正確分類時就是實例點到超平面的距離。

最後說一下什麼是支持向量。在線性可分的情況下,訓練數據集的樣本點中與分離超平面距離最近的樣本點的實例,成爲支持向量。即支持向量本質上只是訓練集中的幾個特殊的樣本而已。這幾個樣本點可牛了,它們決定了分離超平面的位置,其他的訓練樣本並不起作用。這就是SVM支持向量機原因。

最優化問題——間隔最大化

OK,選出最佳的分離超平面必然帶來一個最優化問題。這個最優化問題就是幾何間隔最大化。我們要最大化關於訓練數據集的幾何間隔,使得所有的訓練樣本到達分類超平面的幾何間隔都大於這個幾何間隔。然後,經過一系列簡單的變換,這個最優化問題便轉化成爲了一個凸二次規劃問題。

爲了求解線性可分支持向量機的最優化問題,將它作爲原始最優化問題,應用拉格朗日對偶性,通過求解對偶問題得到原始問題的最優解,這就是線性可分支持向量機的對偶算法。這樣做的優點,一是對偶問題往往更容易求解;二是自然引入核函數,進而推廣到非線性分類問題。

線性可分支持向量機的對偶算法

首先需要構建拉格朗日函數。爲此,對所有不等式約束引進拉格朗日乘子alpha。原始問題可以看做是一個基於拉格朗日函數的極小極大問題,那麼原始問題的對偶問題就是極大極小問題。所以,爲了得到原始問題的解,需要先求出拉格朗日函數L(w,b,alpha)對w,b的極小,再求對alpha的極大。

對w,b求極小很好求,只要用函數L分別對它們求偏導就可以了。最後得到一個w關於訓練數據集和alpha的表達,和alpha關於訓練集的一個等式。然後將這個結果帶入原拉格朗日函數,經過整理之後,就可以再對alpha求極大了。

對alpha求極大就簡單多了,這時候的最優化問題已經是一個僅有alpha和訓練數據集的表達。這樣,我們最終可以求出alpha向量的所有維度的值。然而,得到alpha的值,又如何得到分離超平面的參數w和b呢?

我們前面說過,我們將原始問題的求解轉化成了求解其對偶問題,那麼,原始問題和對偶問題的最優值要想完全相等,有一個充分必要條件,那就是要求解的參數滿足KKT條件。KKT條件是一系列條件,包括拉格朗日函數對參數的分別求偏導結果爲零以及一些簡單的約束條件。通過將求得的alpha帶入這些條件中,便可以求出我們所要的參數w和b了。

通過查看我們求出的alpha向量可以發現,其中並不是所有的維度都不爲零。其實,進一步觀察可以發現,只有那些不爲零的維度所對應的數據點纔對w和b有影響。也就是說,訓練數據中對應於alpha中不爲零維度的樣本點的實例就是傳說中的支持向量。

發佈了45 篇原創文章 · 獲贊 109 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章