從中國象棋的角度,理解支持向量機SVM【不包懂,包記住】

歡迎關注,敬請點贊!

楚河漢界

從中國象棋的角度,理解支持向量機

分界超平面:楚河漢界中心線;
支持向量:河岸邊線;
邊緣:河岸邊線到中心線的最小距離;
最大化:河越寬,越能支持和平。

支持向量機是最大邊緣分類器

不是最小邊緣分類器!
再次回頭看這篇博客,是因爲碰到了一道討厭的練習題(忍不住畫了一道刪除線!):
SVM是這樣一個分類器,它尋找具有最小邊緣的超平面,因此它也經常被稱爲最小邊緣分類器(minimal marginc lassifier)

邊緣是什麼?是margin!

邊緣
紅線是決策邊界margin被定義爲決策邊界與任意樣本間的最小距離

爲什麼要最大化邊緣?

距離拉得越大,就越涇渭分明,分類效果就越好,因此支持向量機SVM的工作就是要找最大化邊緣
其實就是後面反覆提到的:
最小距離最大化
最小距離最大化!!
最小距離最大化!!!
未能真正喫透害死人,讓我陷入最小邊緣分類器 糾結好久!

什麼是支持向量???

最⼤化邊緣會⽣成對決策邊界的⼀個特定的選擇,這個決策邊界的位置由數據點的⼀個⼦集確定,被稱爲⽀持向量,⽤圓圈表⽰。
在這裏插入圖片描述
簡而言之:
支持向量就是使邊緣最大化的向量,或者說使最小距離最大化的向量
看上圖,支持向量好像阻攔着其它點向決策邊界靠近,支持着楚河漢界的和平

支持向量機SVM相關知識點及部分公式推導

傳統機器學習中,【支撐向量機表現非常優秀】,有了單層神經網絡的影子。

支持向量機的工作核心

找分界平面,N-1維的超平面

高等數學中,相關基礎公式:

切平面:
Fx(x0,y0,z0)(xx0)+Fy(x0,y0,z0)(yy0)+Fz(x0,y0,z0)(zz0)=0 F_x(x_0,y_0,z_0)(x-x_0) + F_y(x_0,y_0,z_0)(y-y_0) + F_z(x_0,y_0,z_0)(z-z_0) = 0
法線方程:
xx0Fx(x0,y0,z0)=yy0Fy(x0,y0,z0)=zz0Fz(x0,y0,z0) \frac{x-x_0}{F_x(x_0,y_0,z_0)} = \frac{y-y_0}{F_y(x_0,y_0,z_0)} = \frac{z-z_0}{F_z(x_0,y_0,z_0)}
法向量:
n=(Fx(x0,y0,z0),Fy(x0,y0,z0),Fz(x0,y0,z0)) n = (F_x(x_0,y_0,z_0), F_y(x_0,y_0,z_0), F_z(x_0,y_0,z_0))

直線方程:

Ax+By+C=0[ABC][xyz]=0[ABC](3,2)(1.1)3A+2B+CA2+B2ab=abcosθ=0abθ=90°(1.1) Ax + By + C = 0 \tag{1.1}\\ \begin{bmatrix}A & B & C\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix} = 0\\ \begin{bmatrix}A & B & C\end{bmatrix}稱爲法向量\\ 點(3,2)到平面(1.1)的距離:\frac{3A +2B+C}{\sqrt{A^2+B^2}}\\ ---------------*********---------------\\ a \cdot b = \|a\|\|b\|cos\theta = 0\\ a、b垂直,θ=90°\\

矢量模式
wx+b=0wwx=b[w1w2][x1x2]w wx + b = 0\\ w在不同維度下,形態不一樣\\ wx = -b\\ \begin{bmatrix}w_1 & w_2\end{bmatrix}\begin{bmatrix}x_1 \\ x_2\end{bmatrix}\\ w爲法向量

曲面外一點p到曲面的垂直距離(x爲曲面上任一假設已知點)

(px)w=pxwcosθcosθ=(px)wpxwd=pxcosθ=px(px)wpxw=(px)ww=wp+bwmaxminid (p - x) \cdot w = \|p-x\|\|w\|cos\theta \\ cos\theta = \frac{(p - x) \cdot w}{ \|p-x\|\|w\|} \\ ---------------點到直線的距離---------------\\ d = \|p-x\|cos\theta = \|p-x\| \frac{(p - x) \cdot w}{ \|p-x\|\|w\|}=\frac{(p - x) \cdot w}{\|w\|}=\frac{wp+b}{\|w\|}\\ ---------------最近距離最大化---------------\\ max\min_id

準備構造拉普拉斯算子

maxw,bmini2wwxi+bs.t.yi(wxi+b)>0,i=1,2,3,......wx+b>0y=1wx+b<0y=1 \max_{w,b}\min_{i} \frac{2}{\|w\|}|wx_i + b|\\ s.t.\quad y_i(wx_i + b) >0,i=1,2,3,......\\ wx+b>0 \quad y=1\\ wx+b<0 \quad y=-1\\

等價變換

wxi+b1()maxw,bmini2wminw,bw2s.t.1yi(wxi+b)0,i=1,2,3,......L(w,b,a)=12w2+iNa(1yi(wxi+b)) \|wx_i + b\|總有辦法約爲1(此處不完全懂)\\ \max_{w,b}\min_{i}\frac{2}{\|w\|}\\ \min_{w,b}\frac{\|w\|}{2}\\ s.t. \quad1- y_i(wx_i+b)\le 0,i=1, 2, 3,......\\ ------------拉普拉斯算子公式等價替換------------\\ L(w,b,a) = \frac{1}{2}\|w\|^2 + \sum^N_i{a(1-y_i(wx_i+b))}

求導,找最優條件

wL=wiNayixi=0bL=iNayi=0w=iNayixi \nabla_wL=w-\sum^N_i a y_i x_i=0\\ \nabla_bL=-\sum^N_i a y_i=0\\ w=\sum^N_i a y_i x_i

將結果帶回

L(w,b,a)=12w2iNa(yi(wxi+b)1)=12wwTiNa(yi(wxi+b)1)=12iNiNaiajxixjyiyjiNai(yi(jNajyjxj xi+b)1)=iNai12iNjNaiajxixjyiyjiNbaiyi=iNai12iNjNaiajxixjyiyjmaxα12iNaiajxixj(yiyj)+iNais.t.iNaiyi=0ai>0minαiNai12iNaiajxixj(yiyj)s.t.iNaiyi=0ai>0 L(w,b,a) = \frac{1}{2}\|w\|^2 - \sum^N_i{a(y_i(w x_i + b) - 1)}\\ =\frac{1}{2}w \cdot w^T - \sum^N_i{a(y_i(w x_i + b) - 1)}\\ =\frac{1}{2}\sum^N_i\sum^N_i a_i a_j x_i x_j y_i y_j - \sum^N_i{a_i(y_i(\sum^N_j{a_j y_j x_j \ x_i + b}) - 1)}\\ =\sum^N_ia_i - \frac{1}{2}\sum^N_i\sum^N_j a_i a_j x_i x_j y_i y_j -\sum^N_i b a_i y_i\\ =\sum^N_ia_i - \frac{1}{2}\sum^N_i\sum^N_j a_i a_j x_i x_j y_i y_j\\ ------------最終結果------------\\ \max_\alpha{-\frac{1}{2}\sum^N_i a_i a_j x_i x_j (y_i y_j) + \sum^N_ia_i}\\ s.t. \sum^N_i a_i y_i = 0\\ a_i > 0\\ ------------通常習慣求最小------------\\ \min_\alpha{\sum^N_i a_i - \frac{1}{2}\sum^N_i a_i a_j x_i x_j (y_i y_j)}\\ s.t. \sum^N_i a_i y_i = 0\\ a_i > 0

其它相關:

  1. 軟間隔最大化
  2. 核函數(映射到高維空間可分)
  3. SMO算法:⼀種最流⾏的訓練⽀持向量機的⽅法被稱爲順序最⼩化優化sequential minimal optimization),這種⽅法考慮了分塊⽅法的極限情況,每次只考慮兩個拉格朗⽇乘數。(固定ai,迭代算aj;再固定aj,迭代算ai)

歡迎關注,敬請點贊!
返回頂部

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章