5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授
SVM補(bǔ)充
決策邊界
Coursera 上 ML 的課程對 SVM 介紹有限,參看了周志華教授的《機(jī)器學(xué)習(xí)》一書后,補(bǔ)充了當(dāng)中對于 SVM 的介紹。
首先,我們考慮用更傳統(tǒng)的權(quán)值定義式來描述我們的 SVM 決策邊界(劃分超平面):
wTx+b=0(1)w^Tx+b=0\tag1wTx+b=0(1)
其中, www 表示權(quán)值向量,權(quán)值向量對應(yīng)了決策邊界的法向量。 bbb 則表示偏置,也稱位移項(xiàng),表示了決策邊界距坐標(biāo)原點(diǎn)的距離。我們可以將決策邊界記為 (w,b)(w,b)(w,b) ,那么,樣本 xxx 到?jīng)Q策邊界的距離為:
r=∣wT+b∣∣∣w∣∣(2)r=\frac{|w^T+b|}{||w||}\tag2r=∣∣w∣∣∣wT+b∣?(2)
我們將正樣本標(biāo)識(shí)為 1,負(fù)樣本標(biāo)識(shí)為 -1, 則 SVM 的期望預(yù)測可以重新描述為:
{wTx(i)+b≥+1,ify(i)=+1wTx(i)+b≤?1,ify(i)=?1(3)\begin{cases}w^Tx^{(i)}+b≥+1,\quad if\ y^{(i)}=+1\\w^Tx^{(i)}+b≤-1,\quad if\ y^{(i)}=-1\end{cases}\tag3{wTx(i)+b≥+1,if?y(i)=+1wTx(i)+b≤?1,if?y(i)=?1?(3)
亦即:
y(i)(wTx(i)+b)≥1(4)y^{(i)}(w^Tx^{(i)}+b)≥1\tag4y(i)(wTx(i)+b)≥1(4)
使等號成立的樣本稱之為“支持向量(Support Vectors)”,兩個(gè)異類的支持向量到?jīng)Q策邊界的距離之和為:
γ=2∣∣w∣∣(5)γ=\frac2{||w||}\tag5γ=∣∣w∣∣2?(5)
γ 被稱之為間隔。
在之前的篇章中我們知道,SVM 就是力圖是 γγγ 足夠大,從而獲得更好的泛化能力:
max?w,b2∣∣w∣∣s.t.y(i)(wTx(i)+b)≥1,i=1,2,...,m(6)\max_{w,b}\frac2{||w||}\\ s.t.\quad y^{(i)}(w^Tx^{(i)}+b)≥1,\quad\quad i=1,2,...,m\tag6w,bmax?∣∣w∣∣2?s.t.y(i)(wTx(i)+b)≥1,i=1,2,...,m(6)
我們可以轉(zhuǎn)化為如下的二次優(yōu)化問題:
min?w,b12∣∣w∣∣2s.t.y(i)(wTx(i)+b)≥1,i=1,2,...,m(7)\min_{w,b}\frac12{||w||}^2\\ s.t.\quad y^{(i)}(w^Tx^{(i)}+b)≥1,\quad\quad i=1,2,...,m\tag7w,bmin?21?∣∣w∣∣2s.t.y(i)(wTx(i)+b)≥1,i=1,2,...,m(7)
硬間隔與軟間隔
下圖中,紅色的決策邊界表示了一種較硬的間隔劃分,這種劃分,能將所有正、負(fù)樣本區(qū)分開來:
硬間隔并不一定好,就像我們在回歸問題中提到的那樣,這只是對于訓(xùn)練樣本作出了極佳的擬合,但容易造成過度擬合。比如我們現(xiàn)在有了一個(gè)新的負(fù)樣本,他被錯(cuò)誤地分類為了正樣本:
而下圖則展示了一種較軟的間隔,這樣的決策邊界允許了一部分分類異常,避免了過擬合問題,但如果過軟,也容易造成欠擬合問題:
鑒于此,我們在優(yōu)化過程中,添加一個(gè)參數(shù) CCC 來控制間隔的“軟硬”:
min?w,b1∣∣w∣∣2+C∑i=1m?(y(i)(wTx(i))?1)s.t.y(i)(wTx(i)+b)≥1,i=1,2,...,m(8)\min_{w,b}\frac1{||w||^2}+C\sum_{i=1}^m ?(y^{(i)}(w^Tx^{(i)})-1)\\ s.t.\quad y^{(i)}(w^Tx^{(i)}+b)≥1,\quad\quad i=1,2,...,m\tag8w,bmin?∣∣w∣∣21?+Ci=1∑m??(y(i)(wTx(i))?1)s.t.y(i)(wTx(i)+b)≥1,i=1,2,...,m(8)
其中, ?(z)?(z)?(z) 是損失函數(shù),其衡量了樣本 xxx 與真實(shí)值 y(i)y^{(i)}y(i) 的近似程度,當(dāng) CCC 取值越大時(shí),為了最優(yōu)化問題,需要 ?(z)?(z)?(z) 越小,即各個(gè)樣本都要盡可能分類正確,這提高了訓(xùn)練準(zhǔn)確率,但也面臨過擬合的問題。
故而, CCC 扮演了回歸問題中正則化參數(shù) 1λ\frac 1λλ1? 的角色。當(dāng) C 的取值趨于 ∞∞∞ 時(shí),模型就變?yōu)榱擞查g隔支持向量機(jī)。
常見的損失函數(shù)有:
| 0/1 損失 | ?(z)={1,ifz<00,otherwise?(z)=\begin{cases}1,\quad if\ z<0\\0,\quad otherwise\end{cases}?(z)={1,if?z<00,otherwise? |
| hinge 損失 | ?(z)=max(0,1,?z)?(z)=max(0,1,-z)?(z)=max(0,1,?z) |
| 指數(shù)損失 | ?(z)=exp(?z)?(z)=exp(-z)?(z)=exp(?z) |
| 對數(shù)損失 | ?(z)=log(1+exp(?z))?(z)=log(1+exp(-z))?(z)=log(1+exp(?z)) |
若采用 hinge 損失函數(shù),則式 (8) 可以具體為:
min?w,b12∣∣w∣∣2+C∑i=1mmax(0,1?y(i)(wTx(i)+b))(9)\min_{w,b}\frac12||w||^2+C\sum_{i=1}^mmax(0,1-y^{(i)}(w^Tx^{(i)}+b))\tag9w,bmin?21?∣∣w∣∣2+Ci=1∑m?max(0,1?y(i)(wTx(i)+b))(9)
引入 “松弛變量(slack variables)” ξ(i)≥0ξ^{(i)}≥0ξ(i)≥0 ,可以將式 (9) 改寫為:
min?w,b,ξ(i)12∣∣w∣∣2+C∑i=1mξ(i)s.t.y(i)(wTx(i)+b)≥1?ξ(i)ξ(i)≥0,i=1,2,3,...,m(10)\min_{w,b,ξ^{(i)}}\frac12||w||^2+C\sum_{i=1}^mξ^{(i)}\\ s.t.\quad y^{(i)}(w^Tx^{(i)}+b)≥1?ξ^{(i)}\\ ξ^{(i)}≥0,i=1,2,3,...,m\tag{10}w,b,ξ(i)min?21?∣∣w∣∣2+Ci=1∑m?ξ(i)s.t.y(i)(wTx(i)+b)≥1?ξ(i)ξ(i)≥0,i=1,2,3,...,m(10)
這就構(gòu)成 “軟間隔支持向量機(jī)”。
松弛變量,顧名思義,就是控制每個(gè)樣本受到約束的程度。 ξ(i) 越大,則受約束程度越小(越松弛)。
- 當(dāng) ξ(i)>1ξ^{(i)}>1ξ(i)>1 ,則 max(0,1?y(i)(wTx(i)+b))>1max(0,1?y^{(i)}(w^Tx^{(i)}+b))>1max(0,1?y(i)(wTx(i)+b))>1 ,即 y(i)y^{(i)}y(i) 與 (wTx(i)+b))(w^Tx^{(i)}+b))(wTx(i)+b)) 異號,分類錯(cuò)誤。
- 當(dāng) ξ(i)=0ξ^{(i)}=0ξ(i)=0 ,則 max(0,1?y(i)(wTx(i)+b))=0max(0,1?y^{(i)}(w^Tx^{(i)}+b))=0max(0,1?y(i)(wTx(i)+b))=0 ,即 1?y(i)(wTx(i)+b)=01?y^{(i)}(w^Tx^{(i)}+b)=01?y(i)(wTx(i)+b)=0 ,樣本落在了最大間隔邊界上。
- 當(dāng) 0<ξ(i)≤10<ξ^{(i)}≤10<ξ(i)≤1 ,則 max(0,1?y(i)(wTx(i)+b))≤1max(0,1?y^{(i)}(w^Tx^{(i)}+b))≤1max(0,1?y(i)(wTx(i)+b))≤1 ,即 0≤1?y(i)(wTx(i)+b))≤10≤1?y^{(i)}(w^Tx^{(i)}+b))≤10≤1?y(i)(wTx(i)+b))≤1 ,樣本落在了最大間隔與決策邊界之間。
對偶問題
對于式 (10) 的優(yōu)化模型,應(yīng)用拉格朗日乘子法獲得的拉格朗日函數(shù)如下:
L(w,b,a,ξ,μ)=12∣∣∣∣2+C∑i=1mξ(i)+∑i=1ma(i)(1?ξ(i)?yi(wTxi+b))?∑i=1mμ(i)ξ(i)(11)L(w,b,a,ξ,μ)=\frac12||||^2+C\sum_{i=1}^mξ^{(i)}+\sum_{i=1}^ma^{(i)}(1-ξ^{(i)}-y_i(w^Tx_i+b))-\sum_{i=1}^mμ^{(i)}ξ^{(i)}\tag{11}L(w,b,a,ξ,μ)=21?∣∣∣∣2+Ci=1∑m?ξ(i)+i=1∑m?a(i)(1?ξ(i)?yi?(wTxi?+b))?i=1∑m?μ(i)ξ(i)(11)
其中, α(i)≥0,μ(i)≥0α^{(i)}≥0 , μ^{(i)}≥0α(i)≥0,μ(i)≥0 是拉格朗日乘子。
令 L(w,b,α,ξ,μ)L(w,b,α,ξ,μ)L(w,b,α,ξ,μ) 對 www , bbb , ξ(i)ξ^{(i)}ξ(i) 的偏導(dǎo)為 0 可得:
w=∑i=1ma(i)y(i)x(i)(12)w=\sum_{i=1}^ma^{(i)}y^{(i)}x^{(i)}\tag{12}w=i=1∑m?a(i)y(i)x(i)(12)0=∑i=1ma(i)y(i)(13)0=\sum_{i=1}^ma^{(i)}y^{(i)}\tag{13}0=i=1∑m?a(i)y(i)(13)C=a(i)+μ(i)(14)C=a^{(i)}+μ^{(i)}\tag{14}C=a(i)+μ(i)(14)
將其帶入 (1) 式中,得:
f(x)=wTx+b=∑i=1ma(i)y(i)(x(i))Tx+b(15)f(x)=w^Tx+b=∑_{i=1}^ma^{(i)}y^{(i)}(x^{(i)})^Tx+b\tag{15}f(x)=wTx+b=i=1∑m?a(i)y(i)(x(i))Tx+b(15)
將式 (12) - (14) 代入式 (11) 中,就得到了式 (10) 的 對偶問題:
max?a∑i=1ma(i)?12∑i=1m∑j=1ma(i)a(j)y(i)y(j)(x(i))Tx(j)s.t.∑i=1ma(i)y(i)=0,0≤α(i)≤C,i=1,2,...,m(16)\max_a\sum_{i=1}^ma^{(i)}-\frac12\sum_{i=1}^m\sum_{j=1}^ma^{(i)}a^{(j)}y^{(i)}y^{(j)}(x^{(i)})^Tx^{(j)}\\ s.t.\quad \sum_{i=1}^ma^{(i)}y^{(i)}=0,\quad\quad 0≤α^{(i)}≤C,\ i=1,2,...,m\tag{16}amax?i=1∑m?a(i)?21?i=1∑m?j=1∑m?a(i)a(j)y(i)y(j)(x(i))Tx(j)s.t.i=1∑m?a(i)y(i)=0,0≤α(i)≤C,?i=1,2,...,m(16)
對于軟間隔支持向量機(jī),KKT 條件要求:
{a(i)≥0,μ(i)≥0,y(i)f(x(i))?1+ξ(i)≥0,a(i)(y(i)f(x(i))?1+ξ(i))=0,ξ(i)≥0,μ(i)ξ(i)=0(17)\begin{cases}a^{(i)}≥0,μ^{(i)}≥0,\\ y^{(i)}f(x^{(i)})-1+ξ^{(i)}≥0,\\ a^{(i)}(y^{(i)}f(x^{(i)})-1+ξ^{(i)})=0,\\ ξ^{(i)}≥0,μ^{(i)}ξ^{(i)}=0 \end{cases}\tag{17}??????????a(i)≥0,μ(i)≥0,y(i)f(x(i))?1+ξ(i)≥0,a(i)(y(i)f(x(i))?1+ξ(i))=0,ξ(i)≥0,μ(i)ξ(i)=0?(17)
由式a(i)(y(i)f(x(i))?1+ξ(i))=0a^{(i)}(y^{(i)}f(x^{(i)})-1+ξ^{(i)})=0a(i)(y(i)f(x(i))?1+ξ(i))=0可得,對于任意訓(xùn)練樣本(x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i)),總有 a(i)=0a^{(i)}=0a(i)=0 或者 y(i)f(x(i))=1?ξ(i)y^{(i)}f(x^{(i)})=1-ξ^{(i)}y(i)f(x(i))=1?ξ(i)。
-
若 a(i)=0a^{(i)}=0a(i)=0,由 C=μ(i)+a(i)C=μ^{(i)}+a^{(i)}C=μ(i)+a(i) 得 μ(i)=Cμ^{(i)}=Cμ(i)=C,進(jìn)而得 ξ(i)=0ξ^{(i)}=0ξ(i)=0:
y(i)f(x(i))?1≥0(18)y^{(i)}f(x^{(i)})-1≥0\tag{18}y(i)f(x(i))?1≥0(18)- 此時(shí), x(i)x^{(i)}x(i) 不會(huì)對模型 f(x)f(x)f(x) 產(chǎn)生影響。
-
若 0<a(i)<C0<a^{(i)}<C0<a(i)<C,則有 y(i)f(x(i))?1+ξ(i)=0y^{(i)}f(x^{(i)})-1+ξ^{(i)}=0y(i)f(x(i))?1+ξ(i)=0,由 C=μ(i)+a(i)C=μ^{(i)}+a^{(i)}C=μ(i)+a(i) 得 μ(i)>0μ^{(i)}>0μ(i)>0,進(jìn)而得 ξ(i)=0ξ^{(i)}=0ξ(i)=0,綜合得:
y(i)f(x(i))?1=0(19)y^{(i)}f(x^{(i)})-1=0\tag{19}y(i)f(x(i))?1=0(19)- 此時(shí),樣本 x(i)x^{(i)}x(i) 為支持向量。
-
若 a(i)=Ca^{(i)}=Ca(i)=C,則有 y(i)f(x(i))?1+ξ(i)=0y^{(i)}f(x^{(i)})-1+ξ^{(i)}=0y(i)f(x(i))?1+ξ(i)=0,由 C=μ(i)+a(i)C=μ^{(i)}+a^{(i)}C=μ(i)+a(i) 得 μ(i)=0μ^{(i)}=0μ(i)=0,此時(shí) ξ(i)>0ξ^{(i)}>0ξ(i)>0,得:
y(i)f(x(i))?1≤0(20)y^{(i)}f(x^{(i)})-1≤0\tag{20}y(i)f(x(i))?1≤0(20)- 此時(shí),樣本 x(i)x^{(i)}x(i) 落在最大間隔與決策邊界之間 (ξ(i)≤0)(ξ^{(i)}≤0)(ξ(i)≤0),或者分類錯(cuò)誤 (ξ(i)>1)(ξ^{(i)}>1)(ξ(i)>1)。亦即,樣本異常,仍然不會(huì)被模型 f(x)f(x)f(x) 考慮。
綜上,我們不但可以將 KKT 條件寫為:
a(i)=0?y(i)f(x(i))≥10<a(i)<C?y(i)f(x(i))=1a(i)=C?y(i)f(x(i))≤1(21)a^{(i)}=0\ ?\ y^{(i)}f(x^{(i)})≥1\\ 0<a^{(i)}<C\ ?\ y^{(i)}f(x^{(i)})=1\\ a^{(i)}=C\ ?\ y^{(i)}f(x^{(i)})≤1\tag{21}a(i)=0???y(i)f(x(i))≥10<a(i)<C???y(i)f(x(i))=1a(i)=C???y(i)f(x(i))≤1(21)
并且,還能夠知道,采用了 hinge 損失函數(shù)的最終模型 f(x)f(x)f(x) 僅與支持向量有關(guān)。
核函數(shù)
假定我們面臨的數(shù)據(jù)呈現(xiàn)下面這樣的分布:
顯然,這不是一個(gè)線性可分的問題,在邏輯回歸中,我們會(huì)通過多項(xiàng)式擴(kuò)展來創(chuàng)建新的高維特征,從而將低維度的線性不可分問題轉(zhuǎn)換為了高維度的線性可分問題。
在 SVM 中,仍然是考慮將低維不可分問題轉(zhuǎn)換到高維度可分問題:
f(x)=wT?(x)+b(22)f(x)=w^T?(x)+b\tag{22}f(x)=wT?(x)+b(22)
?(x)?(x)?(x) 對應(yīng)了 xxx 的高維度特征向量。
此時(shí),SVM 優(yōu)化模型的對偶問題為:
max?a=∑i=1ma(i)?12∑i=1m∑j=1ma(i)a(j)y(i)y(j)?(x(i))T?(x(i))s.t.∑i=1ma(i)y(i)=0,0≤a(j)≤C,i=1,2,3,...,m(23)\max_a=\sum_{i=1}^m a^{(i)}-\frac12 \sum_{i=1}^m \sum_{j=1}^m a^{(i)} a^{(j)} y^{(i)} y^{(j)} ?(x^{(i)})^T ?(x^{(i)})\\ s.t. \quad \sum_{i=1}^m a^{(i)} y^{(i)}=0,\\ 0≤a^{(j)}≤C, \quad i=1,2,3,...,m \tag{23}amax?=i=1∑m?a(i)?21?i=1∑m?j=1∑m?a(i)a(j)y(i)y(j)?(x(i))T?(x(i))s.t.i=1∑m?a(i)y(i)=0,0≤a(j)≤C,i=1,2,3,...,m(23)
令 κ(x(i),x(j))κ(x^{(i)},x^{(j)})κ(x(i),x(j)) 表示 x(i)x^{(i)}x(i) 與 x(j)x^{(j)}x(j)的內(nèi)積:
κ(x(i),x(j))=??(x(i),?(x(j)))?=?(x(i))T?(x(j))(24)κ(x^{(i)},x^{(j)})=??(x^{(i)},?(x^{(j)}))?=?(x^{(i)})^T?(x^{(j)})\tag{24}κ(x(i),x(j))=??(x(i),?(x(j)))?=?(x(i))T?(x(j))(24)
函數(shù) κκκ 即表示了核函數(shù)(kernel function),引入核函數(shù)后,優(yōu)化模型可以寫為:
max?a=∑i=1ma(i)?12∑i=1m∑j=1ma(i)a(j)y(i)y(j)κ(x(i),x(j))s.t.∑i=1ma(i)y(i)=0,0≤a(j)≤C,i=1,2,3,...,m(26)\max_a=\sum_{i=1}^m a^{(i)}-\frac12 \sum_{i=1}^m \sum_{j=1}^m a^{(i)} a^{(j)} y^{(i)} y^{(j)} κ(x^{(i)},x^{(j)})\\ s.t. \quad \sum_{i=1}^m a^{(i)} y^{(i)}=0,\\ 0≤a^{(j)}≤C, \quad i=1,2,3,...,m \tag{26}amax?=i=1∑m?a(i)?21?i=1∑m?j=1∑m?a(i)a(j)y(i)y(j)κ(x(i),x(j))s.t.i=1∑m?a(i)y(i)=0,0≤a(j)≤C,i=1,2,3,...,m(26)
求解后,得到模型:
f(x)=wT?(x)+b=∑i=1ma(i)y(i)y(j)?(x(i))T?(x)+b=∑i=1ma(i)y(i)y(j)κ(x,x(i))+b(27)f(x)=w^T?(x)+b=\sum_{i=1}^m a^{(i)} y^{(i)} y^{(j)} ?(x^{(i)})^T ?(x)+b=\sum_{i=1}^m a^{(i)} y^{(i)} y^{(j)} κ(x,x^{(i)})+b\tag{27}f(x)=wT?(x)+b=i=1∑m?a(i)y(i)y(j)?(x(i))T?(x)+b=i=1∑m?a(i)y(i)y(j)κ(x,x(i))+b(27)
參考資料
- 《機(jī)器學(xué)習(xí)》
- 支持向量機(jī)通俗導(dǎo)論(理解 SVM 的三層境界)
- 支持向量機(jī)
總結(jié)
以上是生活随笔為你收集整理的5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.4 SVM的使用建议-机器学习笔记-
- 下一篇: 5.6 SMO-机器学习笔记-斯坦福吴恩