1. 程式人生 > >通俗直觀地解釋為什麼svm支援向量機可以假設離判決面最近的點在wx+b=±1上

通俗直觀地解釋為什麼svm支援向量機可以假設離判決面最近的點在wx+b=±1上

在學習svm的過程中,很多人可能對其推導的第一步假設就開始出現疑惑,

即各種資料都是假設正平面上距離判決線最近的點在wx+b=1上,而負平面上距離判決線最近的點在wx+b=-1

然後在這個假設的基礎之上開始進行推導,得出支援向量機最大邊緣應該為:2/sqrt(wT*w)  


之後,將邊緣寬度(margin width)最大化。

到這裡最大的疑惑就是假設wx+b=±1的依據是什麼,基本上所有的資料都沒有點出這一點,導致了疑惑。


假設wx+b±1的依據是什麼。其實這個問題並不是什麼大問題,只是一時沒想到而已。

對於這個問題,我認為從第三維的角度上會好理解一點。如果我們現在有一個判決函式d(x)=wx+b

將x1,x2兩維看成兩個自變數,帶入函式之後,得到穿過判決線的一個平面

我們的目標點為圖內圓的中心。其中,深綠色線的長度為我們關注的邊緣寬度(margin width),紅色的線為判決線,淺綠色線的長度為d(x)=wx+b,也就是點p帶入判決函式之後的值,而這個值是不確定的,並不等於1。那麼為什麼可以假設wx+b=1而不會產生影響呢?

我們可以看到,在不改變紅色線的位置 和 邊緣的寬度(margin width)的情況下,可以將產生的平面以判決線為軸進行旋轉:


旋轉平面並沒有改變判決線的位置和邊緣寬度的大小,只改變了淺綠色線的長度,也就是x帶入判決函式的函式值,因此wx+b的值可以隨意改變而不影響所求的結果,為了方便,通常將其設定為1。

在這個旋轉過程中,我們改變了什麼呢?我們改變的是w和b,但是關鍵點在於我們是按比例改變的,比如將d(x)的值變成一半,那麼w‘=w/2,b'=b/2。在這個過程中,w的方向並沒有發生改變,所以不會影響結果

通過以上分析,可以得出結論:給定一個判決面和一個點,這個點到判決面的距離(深綠色線長度)和這個點帶入判決面得到的函式值(淺綠色線長度)無關。

因此,我們可以假設距離判決面最近的點為wx+b=(±)1