SVM壓制了神經網絡好多年,如果不考慮集成學習算法,不考慮特定的訓練集,在分類算法中SVM表現排第一。
SVM是一個二元分類算法。
SVM學習策略:間隔最大化,可形式化為一個求解凸二次規划問題。
間隔最大化使它有別於感知機。
SVM包括核技巧,使它成為非線性分類器。
支持向量機模型包括:線性可分支持向量機、線性支持向量機、非線性支持向量機。當訓練集線性可分,通過硬間隔最大化學習的線性分類器為線性可分支持向量機,又稱硬間隔支持向量機;通過軟間隔最大化學習的線性分類器為線性支持向量機,又稱軟間隔支持向量機;當訓練集線性不可分,通過核技巧及軟間隔最大化學習的稱為非線性支持向量機。
1. 回顧感知機模型
在感知機原理中,在二維就是找到一條直線,在三維或者更高維就是找到一個超平面,將所有二元類別分開。這個超平面定義為:wTx+b=0。如圖,在超平面wTx+b=0上方定義y=1,在超平面下方定義y=-1。可以看出滿足這個超平面的不止一個。我們嘗試找到最好的。
感知機損失函數優化的思想:讓所有誤分類點(定義為M)到超平面的距離之和最小,即下面式子的最小化:
當w和b擴大N倍,分母L2范數也會擴大N倍。也就是分子,分母有倍數關系。所以可以固定分子或分母為1,然后求分母倒數或另一個分子最小化作為損失函數。感知機模型中,固定分母||w||2=1,則感知機損失函數簡化為:
2. 函數間隔與集合間隔
超平面為wTx+b=0,|wTx+b|為點x到超平面的相對距離。當wTx+b與y同號,分類正確,否則,分類不正確。這里引入函數間隔的感念,定義函數間隔 γ’為:
即函數間隔就是感知機模型中誤分類點到超平面距離的分子。對於訓練集中m個樣本點對應的m個函數間隔的最小值,就是整個訓練集的函數間隔。
函數間隔並不能正常反應點到超平面的距離,在感知機模型中,分子成比例增長,分母也增長。為了統一度量,對法向量w加上約束條件,得到幾何間隔γ為:
幾何間隔是點到超平面的真正距離,感知機模型里用到的距離就是幾何距離。
3. 支持向量
感知機利用誤分類最小的策略,求得分離超平面有無窮多個;線性可分支持向量機利用間隔最大化求得最優分離超平面只有一個。
如圖,線性可分支持向量機:決策邊界(實),間隔邊界(虛),支持向量(紅點)。
支持向量到超平面的距離為1/||w||2,兩個支持向量之間的距離為2/||w||2。
4. SVM模型目標函數與優化
SVM模型:讓所有點到超平面的距離大於支持向量到超平面的距離。數學表達式:
一般取函數間隔r‘為1,表達式變為:
也就是說在約束條件下 yi(wTxi + b)≥1 (i = 1,2,3...m)下,最大化1/||w||2。可以看出,SVM是固定分子優化分母,同時加上支持向量的限制。
由於的最大化等同於
最小化。所以SVM的優化函數等價於:
由於目標函數是凸函數,同時約束條件不等式是仿射的,根據凸優化理論,通過拉格朗日函數將優化目標轉化為無約束的優化函數,這和最大熵模型原理中講的目標函數優化方法一樣。優化函數轉化為:
由於引入拉格朗日乘子,優化目標變為:
和最大熵模型一樣,這個優化函數滿足KKT條件,可以通過拉格朗日對偶將優化問題轉化為等價的對偶問題。
上式中,可以先求優化函數對於 ω 和 b 的極小值。接着再求拉格朗日乘子 α 的極大值。
先求,對 ω 和 b 分別求偏導:
從上面兩個式子得到 ω 和 α 的關系,只要求出 α,就可以求出 ω,至於 b,由於上面兩個式子沒有 b,所以最后的 b 可以有多個。
求出 ω 和 α 的關系,帶入優化函數 L(ω,b,α) 消去 ω。我們定義:
下面是將 ω 替換為 α 的 ψ(α) 表達式:
其中,(1)到(2)用到了范數的定義,(2)到(3)用到了
,(3)到(4)把和樣本無關的 ωT 提前,(4)到(5)合並了同類項,(5)到(6)把和樣本無關的 b 提前,(6)到(7)繼續用
,(7)到(8)用到了向量的轉置。由於常量的轉置是其本身,所以只有向量 xi 被轉置,(8)到(9)是用到了
,(9)到(10)用到了
的乘法運算,(10)到(11)僅僅是位置的調整。
從上面看出,通過對 ω,b極小化以后,我們的優化函數 ψ(α) 僅僅只有 α 向量做參數。只要能夠極大化 ψ(α) ,就可以求出此時對應的 α,進而求出 ω,b。