支持向量机的最大分类间隔(转)
SVM算法在在1995年正式發表,在針對中小型數據規模的分類任務上有著卓越的效果,同時有著完整的理論證明,在20世紀末的幾年和21世紀初的10年完勝神經網絡,吳恩達在其2003年的《Machien learning》公開課上用兩節課的時間對其進行講解,而神經網絡講解了20min左右。就是這個算法把神經網絡按在地上摩擦了大概15年的時間,直到深度學習的興起。但即便這樣,現在SVM算法依舊被廣泛的使用。?
SVM大概的可以不確切的分為三個程度理解:?
(1)線性可分情況下的線性分類器,這是最原始的SVM,它最核心的思想就是最大的分類間隔(margin maximization);?
(2)線性不可分情況下的線性分類器,引入了軟間隔(soft margin)的概念;?
(3)線性不可分情況下的非線性分類器,是SVM與核函數(kernel function)的結合。?
在下面只會第一部分的內容。
什么是最大分類間隔
SVM最大分類間隔的靈感來自于一個非常符合直覺的觀察,如果存在兩類數據,數據的特征是二維的,那么我們就可以把數據畫在一個二維平面上,此時我想找到一個決策面(決策邊界)去將這兩類數據分開。如下圖所示:?
?
理論上這個決策邊界有無數種選擇,就像圖中畫出的四條黑色的線,都能實現分類,但是哪一種是最好的分類方式呢?SVM算法認為在上圖中靠近決策平邊界的點(正負樣本)與決策邊界的距離最大時,是最好的分類選擇:?
?
上圖中紅色的線就是要優化的目標,它表征了數據到決策邊界的距離,這個距離就是所謂的最大分類間隔。同時在上面的幾個數據,如果靠近兩側的數據少了幾個,也不會影響決策邊界的確定,而被紅色框框出來三個數據才決定了最終的決策邊界,所以這三個數據被稱之為支持向量。
線性分類器
支持向量機算法如何實現最大分類間隔的任務呢?我們可以先從線性分類器開始理解它,支持向量在沒有引入核函數的時候就是一個線性的分類器,我們假設與決策邊界垂直的向量(決策面的法向量)為V:?
?
黑色的線是假設的決策邊界,X1和X2是決策邊界兩側的兩個點,Xt1和Xt2是兩個點在法向量V上面的投影,那么可以很直觀看到,原點到Xt1的距離<原點到Xt2的距離,而且可以推廣延伸到只要數據點在決策邊界的兩側,那么在決策邊界左側的數據點在法向量上面的投影距離永遠比右側的距離短,這就是支持向量機實現分類預測的依據。那么怎么用公式表征出這個點到直線投影的距離呢??
可以做這樣一個假設驗證一下:?
?
如上圖中的情況所示:要求向量b在向量a上的投影距離d,向量的內積可以表示為:?
?
于是角度的余弦為:?
?
距離d可以表示為:?
而在SVM的特征空間中,a是決策邊界的法向量,那么a為單位法向量的時候其模為1,所以就有:
最后我們把a和b換成上面設定的值就會有:?
?
有了這個東西,我們總能找到一個常數C分開兩類數據,也就是說:
到了上面的公式后,問題就非常的清晰了,法向量V其實就是決策邊界的系數(這是解析幾何里面的知識),那么大家肯定見過一種和它非常像的公式,叫做樣本空間下的超平面線性方程:
線性分類器就是這個樣子!!!?
不經過sigmoid函數的Logistic模型也是這個樣子!!?
不激活的神經網絡中的單個神經元還是這個樣子!!
如何實現最大分類間隔
從上面可以看到,此時的支持向量機(沒有加核函數)就是個線性的分類器,它的卓越性能就體現在在線性分類器基礎上的最大分類間隔。?
所以本質上SVM要訓練的參數只有w和b,關鍵就在于SVM如何在優化中體現最大分類間隔的思想!?
針對所有的訓練數據(traindata),SVM都希望:?
?
這里的正負1就體現的最大分類間隔,這里是選擇用正負1是為了計算方便,因為無論間隔是多少,都可以依靠伸縮w和b約為1。上述公式就是SVM的最大間隔假設。如下圖:?
?
在這個圖中,決策邊界兩邊的線之間的距離(最大間隔)為:?
?
它是這樣求出來的,數據中的支持向量在影響著最大間隔,那么假設兩個支持向量x1和x2分別為正負,最大間隔就應該是x2-x1在法向量上的投影:?
?
所以求取d的過程為:?
?
?
這就是SVM的優化目標,它想要找到max(d),然后大家可能發現了,這個目標里面沒有b,之和w有關,那么是不是任意的b都可以呢??
顯然不是的,這個優化有一個約束條件,因為推導的過程就有假設條件是兩個支持向量要求在兩側,所以這個約束條件可以寫成:?
所以最終的目標為:
?
或者為:?
?
需要注意的是,約束條件中的i=1…….n,n為樣本的個數。
總結
以上是生活随笔為你收集整理的支持向量机的最大分类间隔(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVM推导过程及SMO详细求解过程(转载
- 下一篇: 深入理解拉格朗日乘子法(Lagrange