日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授

發布時間:2025/4/5 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SVM補充

決策邊界

Coursera 上 ML 的課程對 SVM 介紹有限,參看了周志華教授的《機器學習》一書后,補充了當中對于 SVM 的介紹。

首先,我們考慮用更傳統的權值定義式來描述我們的 SVM 決策邊界(劃分超平面):
wTx+b=0(1)w^Tx+b=0\tag1wTx+b=0(1)

其中, www 表示權值向量,權值向量對應了決策邊界的法向量。 bbb 則表示偏置,也稱位移項,表示了決策邊界距坐標原點的距離。我們可以將決策邊界記為 (w,b)(w,b)(w,b) ,那么,樣本 xxx 到決策邊界的距離為:
r=∣wT+b∣∣∣w∣∣(2)r=\frac{|w^T+b|}{||w||}\tag2r=wwT+b?(2)

我們將正樣本標識為 1,負樣本標識為 -1, 則 SVM 的期望預測可以重新描述為:
{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)”,兩個異類的支持向量到決策邊界的距離之和為:
γ=2∣∣w∣∣(5)γ=\frac2{||w||}\tag5γ=w2?(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?w2?s.t.y(i)(wTx(i)+b)1,i=1,2,...,m(6)

我們可以轉化為如下的二次優化問題:
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?w2s.t.y(i)(wTx(i)+b)1,i=1,2,...,m(7)

硬間隔與軟間隔

下圖中,紅色的決策邊界表示了一種較的間隔劃分,這種劃分,能將所有正、負樣本區分開來:

硬間隔并不一定好,就像我們在回歸問題中提到的那樣,這只是對于訓練樣本作出了極佳的擬合,但容易造成過度擬合。比如我們現在有了一個新的負樣本,他被錯誤地分類為了正樣本:

而下圖則展示了一種較的間隔,這樣的決策邊界允許了一部分分類異常,避免了過擬合問題,但如果過軟,也容易造成欠擬合問題:

鑒于此,我們在優化過程中,添加一個參數 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?w21?+Ci=1m??(y(i)(wTx(i))?1)s.t.y(i)(wTx(i)+b)1,i=1,2,...,m(8)

其中, ?(z)?(z)?(z) 是損失函數,其衡量了樣本 xxx 與真實值 y(i)y^{(i)}y(i) 的近似程度,當 CCC 取值越大時,為了最優化問題,需要 ?(z)?(z)?(z) 越小,即各個樣本都要盡可能分類正確,這提高了訓練準確率,但也面臨過擬合的問題。

故而, CCC 扮演了回歸問題中正則化參數 1λ\frac 1λλ1? 的角色。當 C 的取值趨于 ∞∞ 時,模型就變為了硬間隔支持向量機。

常見的損失函數有:

名稱函數式
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)
指數損失?(z)=exp(?z)?(z)=exp(-z)?(z)=exp(?z)
對數損失?(z)=log(1+exp(?z))?(z)=log(1+exp(-z))?(z)=log(1+exp(?z))

若采用 hinge 損失函數,則式 (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?w2+Ci=1m?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?w2+Ci=1m?ξ(i)s.t.y(i)(wTx(i)+b)1?ξ(i)ξ(i)0,i=1,2,3,...,m(10)

這就構成 “軟間隔支持向量機”。

松弛變量,顧名思義,就是控制每個樣本受到約束的程度。 ξ(i) 越大,則受約束程度越小(越松弛)。

  • ξ(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)) 異號,分類錯誤。
  • ξ(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 ,樣本落在了最大間隔邊界上。
  • 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))≤101?y(i)(wTx(i)+b))1 ,樣本落在了最大間隔與決策邊界之間。

對偶問題

對于式 (10) 的優化模型,應用拉格朗日乘子法獲得的拉格朗日函數如下:
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=1m?ξ(i)+i=1m?a(i)(1?ξ(i)?yi?(wTxi?+b))?i=1m?μ(i)ξ(i)(11)

其中, α(i)≥0,μ(i)≥0α^{(i)}≥0 , μ^{(i)}≥0α(i)0μ(i)0 是拉格朗日乘子。

L(w,b,α,ξ,μ)L(w,b,α,ξ,μ)L(w,b,α,ξ,μ)wwwbbbξ(i)ξ^{(i)}ξ(i) 的偏導為 0 可得:
w=∑i=1ma(i)y(i)x(i)(12)w=\sum_{i=1}^ma^{(i)}y^{(i)}x^{(i)}\tag{12}w=i=1m?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=1m?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=1m?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=1m?a(i)?21?i=1m?j=1m?a(i)a(j)y(i)y(j)(x(i))Tx(j)s.t.i=1m?a(i)y(i)=0,0α(i)C,?i=1,2,...,m(16)

對于軟間隔支持向量機,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(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,進而得 ξ(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))?10(18)

    • 此時, x(i)x^{(i)}x(i) 不會對模型 f(x)f(x)f(x) 產生影響。
  • 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,進而得 ξ(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)

    • 此時,樣本 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,此時 ξ(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))?10(20)

    • 此時,樣本 x(i)x^{(i)}x(i) 落在最大間隔與決策邊界之間 (ξ(i)≤0)(ξ^{(i)}≤0)(ξ(i)0),或者分類錯誤 (ξ(i)>1)(ξ^{(i)}>1)(ξ(i)>1)。亦即,樣本異常,仍然不會被模型 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 損失函數的最終模型 f(x)f(x)f(x) 僅與支持向量有關。

核函數

假定我們面臨的數據呈現下面這樣的分布:


顯然,這不是一個線性可分的問題,在邏輯回歸中,我們會通過多項式擴展來創建新的高維特征,從而將低維度的線性不可分問題轉換為了高維度的線性可分問題。

在 SVM 中,仍然是考慮將低維不可分問題轉換到高維度可分問題:

f(x)=wT?(x)+b(22)f(x)=w^T?(x)+b\tag{22}f(x)=wT?(x)+b(22)

?(x)?(x)?(x) 對應了 xxx 的高維度特征向量。

此時,SVM 優化模型的對偶問題為:

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=1m?a(i)?21?i=1m?j=1m?a(i)a(j)y(i)y(j)?(x(i))T?(x(i))s.t.i=1m?a(i)y(i)=0,0a(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)的內積:

κ(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)

函數 κκκ 即表示了核函數(kernel function),引入核函數后,優化模型可以寫為:
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=1m?a(i)?21?i=1m?j=1m?a(i)a(j)y(i)y(j)κ(x(i),x(j))s.t.i=1m?a(i)y(i)=0,0a(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=1m?a(i)y(i)y(j)?(x(i))T?(x)+b=i=1m?a(i)y(i)y(j)κ(x,x(i))+b(27)

參考資料

  • 《機器學習》
  • 支持向量機通俗導論(理解 SVM 的三層境界)
  • 支持向量機

總結

以上是生活随笔為你收集整理的5.5 SVM补充-机器学习笔记-斯坦福吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。