標籤:

關於支持向量機的數學問題?

不太理解點到分割面的距離求解公式


高維想不通那我們就從低維開始想起,笛卡爾坐標系中的直線可以表達為ax+by+c=0,這個方程的意思就是直線上任意一點(x_0,y_0)都滿足條件ax_0+by_0+c=0,這裡的係數ab決定直線的斜率(slope),也可以理解為方向,舉個實際點的例子直線x+2y+1=0,那麼它的方向向量可以是(2,-1)或者所有與之平行的向量,這條直線在坐標繫上的是和這個向量平行的,那麼與這個向量垂直的向量比如(1,2)是與這條直線垂直的,也稱為這條直線的法向量,很容易看到這個法向量正好是與(a,b)線性相關的。

其實也很容易理解這種「正好」。經過原點的直線ax+by=0表達的正好是這樣一種關係:向量(a,b)和直線上任意一點(x_0,y_0)與原點構成的向量都滿足垂直關係,而參數c表示的只是在這個經過原點的直線的基礎上平移多少(改變截距),ax+by的值始終是一個定值。所以對於直線來說向量(a,b)始終是一個法向量。

還記得初中還是高中的分析幾何裡面學過的點P(x_0,y_0)到直線l:ax+by+c=0的距離公式么?dist=frac{|ax_0+by_0+c|}{sqrt{a^2+b^2}}也是距離公式的一個具體化的實例。

常規理解的P到l的距離是通過P直接向l作垂線得到的,這裡不妨換個思路:以直線l上任意一點(x_1,y_1)為起點到P的構成向量f{v}(這裡我取的直線上的點是原點,這個向量就是藍線標出的部分),f{v}在法向量f{w}上的投影長度(紅線)部分可以表示P到l的距離。至於為什麼能表示,這些詳細證明我不作論證了,這裡就推導一下這個思路算的距離公式:

f{v}(x_0-x_1, y_0-y_1)

f{w}(a,b)

f{v}f{w}上的投影長度:{f{frac{|w^Tv|}{|w|}}}=frac{|(a,b)cdot (x_0-x_1,y_0-y_1)|}{sqrt{a^b+b^2}}=frac{|ax_0+by_0-(ax_1+by_1)|}{sqrt{a^b+b^2}}

又因為(x_1,y_1)在直線l上所以滿足ax_1+by_1+c=0

frac{|ax_0+by_0-(ax_1+by_1)|}{sqrt{a^b+b^2}}=frac{|ax_0+by_0+c|}{sqrt{a^2+b^2}}

如果到此為止的理解沒有問題那麼就可以從具體的二維平面擴展到超平面(hyperplane),SVM最終得到的是一個分類函數:g({f{x}})=alpha_0+alpha_1 x_1+alpha_2 x_2+ldots+alpha_n x_n,對於有n個特徵的向量f{x}來說,函數值的正負決定分類結果,那麼等式置0是一個n維空間裡面一個n-1維的超平面,函數中的係數(alpha_1,alpha_2,ldots,alpha_n)構成改超平面的法向量,換個形式重寫一下函數就是g(f{x})={f{w^Tx}}+b(b為常數項,就是alpha_0),那麼按照以上二維平面計算點到直線的距離的方法,再算一下這裡超平面外任意一個點(向量)f{x}到超平面{f{w^Tx}}+b=0的距離:

(這裡借一張林軒田老師課件的圖,我實在太靈魂畫手了所以就不親自獻醜了){f{w^Tx}}+b=0超平面上任意一點為f{x},滿足{f{w^Tx}}=-b,f{x}到超平面的距離,也就是向量f{x-x}在法向量f{w}上的投影長度:

egin{aligned}
dist({f{x,w}},b)=frac{|f{w^T(x-x)}|}{|f{w}|}\
=frac{|f{w^Tx-w^Tx}|}{|f{w}|}\
=frac{|{f{w^Tx}}-b|}{|f{w}|}
end{aligned}


推薦閱讀:

BAT機器學習面試1000題系列(181-185題)
【Matlab】安裝libsvm的問題與解決辦法
達觀數據推薦演算法實現:協同過濾之item embedding
如何理解SVM | 支持向量機之我見

TAG:SVM |