從中國象棋的角度,理解支持向量機
分界超平面:楚河漢界中心線;
支持向量:河岸邊線;
邊緣:河岸邊線到中心線的最小距離;
最大化:河越寬,越能支持和平。
支持向量機是最大邊緣分類器
不是最小邊緣分類器!
再次回頭看這篇博客,是因爲碰到了一道討厭的練習題(忍不住畫了一道刪除線!):
SVM是這樣一個分類器,它尋找具有最小邊緣的超平面,因此它也經常被稱爲最小邊緣分類器(minimal marginc lassifier)
邊緣是什麼?是margin!
紅線是決策邊界,margin
被定義爲決策邊界與任意樣本間的最小距離。
爲什麼要最大化邊緣?
距離拉得越大,就越涇渭分明,分類效果就越好,因此支持向量機SVM的工作就是要找最大化邊緣。
其實就是後面反覆提到的:
最小距離最大化!
最小距離最大化!!
最小距離最大化!!!
未能真正喫透害死人,讓我陷入最小邊緣分類器 糾結好久!
什麼是支持向量???
最⼤化邊緣會⽣成對決策邊界的⼀個特定的選擇,這個決策邊界的位置由數據點的⼀個⼦集確定,被稱爲⽀持向量,⽤圓圈表⽰。
簡而言之:
支持向量就是使邊緣最大化的向量,或者說使最小距離最大化的向量。
看上圖,支持向量好像阻攔着其它點向決策邊界靠近,支持着楚河漢界的和平。
支持向量機SVM相關知識點及部分公式推導
傳統機器學習中,【支撐向量機表現非常優秀】,有了單層神經網絡的影子。
支持向量機的工作核心
找分界平面,N-1維的超平面
高等數學中,相關基礎公式:
切平面:
Fx(x0,y0,z0)(x−x0)+Fy(x0,y0,z0)(y−y0)+Fz(x0,y0,z0)(z−z0)=0
法線方程:
Fx(x0,y0,z0)x−x0=Fy(x0,y0,z0)y−y0=Fz(x0,y0,z0)z−z0
法向量:
n=(Fx(x0,y0,z0),Fy(x0,y0,z0),Fz(x0,y0,z0))
直線方程:
Ax+By+C=0[ABC]⎣⎡xyz⎦⎤=0[ABC]稱爲法向量點(3,2)到平面(1.1)的距離:A2+B23A+2B+C−−−−−−−−−−−−−−−∗∗∗∗∗∗∗∗∗−−−−−−−−−−−−−−−a⋅b=∥a∥∥b∥cosθ=0a、b垂直,θ=90°(1.1)
矢量模式
wx+b=0w在不同維度下,形態不一樣wx=−b[w1w2][x1x2]w爲法向量
曲面外一點p到曲面的垂直距離(x爲曲面上任一假設已知點)
(p−x)⋅w=∥p−x∥∥w∥cosθcosθ=∥p−x∥∥w∥(p−x)⋅w−−−−−−−−−−−−−−−點到直線的距離−−−−−−−−−−−−−−−d=∥p−x∥cosθ=∥p−x∥∥p−x∥∥w∥(p−x)⋅w=∥w∥(p−x)⋅w=∥w∥wp+b−−−−−−−−−−−−−−−最近距離最大化−−−−−−−−−−−−−−−maximind
準備構造拉普拉斯算子
w,bmaximin∥w∥2∣wxi+b∣s.t.yi(wxi+b)>0,i=1,2,3,......wx+b>0y=1wx+b<0y=−1
等價變換
∥wxi+b∥總有辦法約爲1(此處不完全懂)w,bmaximin∥w∥2w,bmin2∥w∥s.t.1−yi(wxi+b)≤0,i=1,2,3,......−−−−−−−−−−−−拉普拉斯算子公式等價替換−−−−−−−−−−−−L(w,b,a)=21∥w∥2+i∑Na(1−yi(wxi+b))
求導,找最優條件
∇wL=w−i∑Nayixi=0∇bL=−i∑Nayi=0w=i∑Nayixi
將結果帶回
L(w,b,a)=21∥w∥2−i∑Na(yi(wxi+b)−1)=21w⋅wT−i∑Na(yi(wxi+b)−1)=21i∑Ni∑Naiajxixjyiyj−i∑Nai(yi(j∑Najyjxj xi+b)−1)=i∑Nai−21i∑Nj∑Naiajxixjyiyj−i∑Nbaiyi=i∑Nai−21i∑Nj∑Naiajxixjyiyj−−−−−−−−−−−−最終結果−−−−−−−−−−−−αmax−21i∑Naiajxixj(yiyj)+i∑Nais.t.i∑Naiyi=0ai>0−−−−−−−−−−−−通常習慣求最小−−−−−−−−−−−−αmini∑Nai−21i∑Naiajxixj(yiyj)s.t.i∑Naiyi=0ai>0
其它相關:
- 軟間隔最大化
- 核函數(映射到高維空間可分)
- SMO算法:⼀種最流⾏的訓練⽀持向量機的⽅法被稱爲順序最⼩化優化(
sequential minimal optimization
),這種⽅法考慮了分塊⽅法的極限情況,每次只考慮兩個拉格朗⽇乘數。(固定ai,迭代算aj;再固定aj,迭代算ai)
歡迎關注,敬請點贊!
返回頂部