原文鏈接:SVM支持向量機原理及核函數
轉載請註明出處
支持向量機原理
大距離分類算法
1、名詞解釋:
SVM算法的原理就是找到一個分割超平面,它能把數據正確的分類,並且間距最大!
2、計算間距
在而爲空間裏,可以使用方程
w1x1+w2x2+b=0
來表示分割超平面。針對高緯度空間,可以寫成一般化的向量形式,即
wTx+b=0
。這裏畫出與分割線超平面平行的兩條直線,分別穿過兩個類別的支持向量。這兩條直線的方程分別爲
wTx+b=−1
和
wTx+b=1
。如下圖所示:
根據點到直線的距離公式,可以算出支持向量A到分割超平面的距離爲:
d=∣∣wTA+b∣∣∣∣∣∣w∣∣∣∣
由於點
A
在直線
wTx+b=−1
和
wTx+b=1
在,代入可的支持向量
A
到分割超平面的距離爲
d=1∣∣∣∣w∣∣∣∣
。爲了使間距最大,只需找到合適的參數
w
和
b
,使
1∣∣∣∣w∣∣∣∣
最大即可。
||w||
使向量
w
的L2範數,計算公式爲:
∣∣∣∣w∣∣∣∣=∑i=1nw2i‾‾‾‾‾‾⎷
求
1∣∣∣∣w∣∣∣∣
的最大值即使求
||w||2
的最小值:
∣∣∣∣w∣∣∣∣2=∑i=1nw2i
其中
n
爲限量
w
的緯度。除了間距最大,分割超平面更能用來解決分類問題!回到上圖,針對方形點
x
,必須滿足
wTx+b≥1
的約束條件。針對圓形的點必須滿足
wTx+b<=−1
的約束條件。
類別是離散的值,分別使用-1表示圓點類別,1表示方點類別,即y\in \left\(-1,1 \right\)。針對數據集中的所有樣本
x(i),y(i)
,只要滿足以下約束條件,則由以下參數
w
和參數
b
定義的分割超平面進行分類:
y(i)(wTx(i)+b)≥1
一句話概括:求解SVM算法,就是在滿足約束條件
y(i)(wTx(i)+b)≥1
的前提下,求解
||w||2
的最小值。
鬆弛係數
針對現行不可分的數據集,上面的方法就不能用了。解決這個問題的辦法就是引入一個參數
ϵ
,稱爲鬆弛係數。然後把優化的目標函數變爲:
argmin∣∣∣∣w2∣∣∣∣+R∑i=1mϵi
其中
m
爲數據集的個數,
R
爲算法參數,其約束條件變爲:
y(i)(wTx(i)+b)≥1−ϵi
理解鬆弛係數:
可以把
εi
理解爲樣本
x(i)
違反一大間距規則的程度。針對大多數滿足約束條件的樣本
ε=0
。而對部分違反最大間距規則的樣本
ε>0
。參數
R
則表示對違反約束的樣本的」懲罰」。
R
越大對違反約束的點「懲罰力度」越大反之越小 。這樣模型就會傾向於允許部分點違反最大間距規則。
把
y(i)(wTx(i)+b)
作爲橫座標,違反約束條件的代價
Ji
作爲縱座標畫圖:
上圖可以看出,針對哪些沒有違反約束條件的樣本,其成本爲0。違反了約束條件的樣本其成本與
ε
成正比,斜線的斜率爲
R
。
因此,引入鬆弛係數類似於邏輯迴歸的成本函數引入正則項,目的是爲了糾正過擬合問題,讓SVM對噪聲數據由更強的忍耐性。如上上圖所示,當出現違反大間距規則的噪聲樣本出現時,仍能讓分割超平面是原來的樣子,這就是鬆弛係數的作用。
核函數
核函數是特徵轉換函數。
最簡單的核函數
回顧上面內容,我們的任務是找出合適的參數
w,b
,使得分割超平面間距最大,且能正確對數據進行分類。間距最大是我們的優化目標。真確地對數據分類是約束條件。即在滿足約束條件
y(i)(wTx(i)+b)≥1
的前提下,求解
||w||2
的最小值。
拉格朗日乘子法是解決約束條件下求函數極值的理想方法。其方法是引入非負係數
α
來作爲約束條件的權重:
L=12∣∣∣∣w∣∣∣∣2−∑i=1mαi(y(i)(wTx(i)+b)−1)
由於極值的偏導數爲0,因此這需要讓
L
對
w
求導使之爲0得到
w
和
α
對關係:
w=∑i=1maiy(i)x(i)
接着繼續求
L
對
b
對偏導數得出:
∑i=1my(i)αi=0
把這兩個式子代入
L
通過數學運算得出:
L=∑i=1mai−12∑i=1m∑j=1maiajy(i)y(j)x(i)Tx(j)
這個公式中
m
是數據集個數,
a
是拉格朗日乘子法引入的一個係數,針對數據集中的每個樣本
x(i)
,都有對應的
ai
。
x(i)
是數據集中地
i
個樣本的輸入,它是一個向量,
y(i)
是對應的輸出標籤,值爲
y\in \left\( -1,1 \right\)。
這個公式的最小值求解這裏就不說明了。最後求出的
a
有個明顯的特點。即大部分
ai=0
。因爲只有那些支持向量所對應的樣本直接決定了間隙的大小。實際上以上推導出這個公式就是爲了引入支持向量機的另外一個核心概念:核函數:
K(x(i),x(j))=x(i)Tx(j)
L
裏的
x(i)Tx(j)
部分,其中
x(i)
是一個特徵向量,所以x(i)Tx(j)