1. 程式人生 > >【SVM】為什麼RBF核函式可以使任何二分類資料線性可分

【SVM】為什麼RBF核函式可以使任何二分類資料線性可分

RBF(Radial Basis Function)核函式

K(xi,xj)=exp(xixj22σ2)K(x_{i},x_{j})=exp(-\frac{\|x_{i}-x{j}\|^{2}}{2{\sigma}^{2}})
這個函式和高斯分佈函式很像,只是少了前面那個係數項。這意味著RBF核函式只是高斯分佈函式縱向等比放縮的結果,很多性質可以直接搬過來用,比如3σ3\sigma準則。
這裡寫圖片描述

我們可以很容易地看出幾個性質:

  1. 函式最大值為1
  2. 在直角座標系中,它和高斯分佈函式一樣是鐘形曲線,且sigma越小,圖形越“痩”

##在運用SVM時,如何使用RBF核函式使任何二分類資料線性可分
從RBF的函式形式來看,這是一個關於兩點距離的函式:距離越遠,值越小;σ

\sigma越小,函式值在遠離中心點時下降地越快。如果我們讓σ\sigma小至0(趨於0),這樣,函式就變成了只有在兩個x相等時取1,否則取0。

K(xi,xj)=limσ0exp(xixj22σ2)K(x_{i},x_{j})=\lim_{\sigma \to 0}{exp(-\frac{\|x_{i}-x{j}\|^{2}}{2{\sigma}^{2}})}

這裡寫圖片描述

這樣做有什麼意義呢?讓我慢慢道來。

先回憶一下SVM中核函式是做什麼的。

如果原有資料不是線性可分的,則可以通過核函式將原有資料對映到高維空間,使其線性可分,就像下圖:
https://blog.csdn.net/leonis_v/article/details/50688766


但是,如果對映之後的維度過高,由現有空間下的向量對映到高維空間下的對應向量的計算非常耗時(如果對映之後為無窮維,則根本不能實現),是不可取的。然而我們要的只是高維空間下對應的內積結果,如果能從低維空間下的向量形式,外加一些計算量較小的函式可以間接計算出高維空間下的內積結果,豈不美哉。這就是核函式乾的事情。一個核函式定義了一個空間對映。

那麼核函式如何選擇?
我們之所以要從低維度對映到高維度,就是為了使資料線性可分。但這個對映方法的選擇很重要。我們根據經驗認為,從低維度對映到高維度後,線性可分的可能性比較大,比如上面那副圖。然而這只是經驗而已,很多時候我們根本不知道對映後在高維下資料是什麼樣子的。一般來說我們是通過驗證的方法來確定哪種對映比較好。

如果對映到高維後,仍然線性不可分怎麼辦?
答案是再向高維對映。但是就和上面說的一樣,高維下資料形式幾乎不可預測。這其實就是在看運氣。

如果對映到無窮維度空間呢?

在無窮維度空間下,每一個維度體現了資料的一個特徵。上哪找這麼多特徵呢?其實很簡單,如果原有空間下點的可取值為無限的話(比如歐幾里得空間),那麼資料點到所有點的距離可以構成該點的無窮多個特徵,也就是說,我們把資料對映到了無限維度的空間中了。這樣對映的話,內積計算起來很麻煩,而且可能為無窮,於是考慮一種更為稀疏的對映方式:如果資料點到第i個點的距離為0(即該資料點本身),則第i維取1,否則取0。按照這個方式對映後,兩個向量內積,當且僅當同一維特徵取1時得到的是1,否則為0
x1=(1,0,0,,...,0)T,x2=(1,0,0,,...,0)T,x3=(0,1,0,...,0)Tx_{1}=(1,0,0,,...,0)^T, x_{2}=(1,0,0,,...,0)^T,x_{3}=(0,1,0,...,0)^T
x1,x2=1,x1,x3=0則有\langle x_1,x_2\rangle=1,\langle x_1,x_3\rangle=0
也就是說,對應於對映前空間,兩個向量如果相等,得到的高維空間下的內積結果為1,否則為0。這下你們應該發現了,這不正是**σ\sigma取0時的RBF函式**嗎?換句話說,我們現在同時得到了核函式形式、對映方法,對映之後的形式。

#####下面我來證明無論什麼資料,用這個方法對映後都是線性可分的。(這裡沒用什麼深奧的數學方法,非數學系的我也表示不會什麼深奧的方法。。。。)

首先,如果他是線性可分的,那麼必定存在一個超平面xTw+b=0x^{T}w+b=0可以資料集分開,我們只要證明無論什麼樣的資料,在應對映之後都可以找相應的到wwbb使兩類分開。如果用感知機來表示,xTw+b=0x^{T}w+b=0的值和labellabellabellabel為資料的標籤,值為1或-1,分別代表兩類)同號。其實ww只要取labellabelbb取0就行了,如下所示:
label=(y1,y2,y3,...,y)Tlabel=(y_1,y_2,y_3,...,y_{\infty})^T
w=label,b=0w=label, b=0
X=(x1T,x2T,x3T,...,xT)T,xi(i)=1,xi(j)=0(i̸=j),X=(x_{1}^T,x_{2}^T,x_{3}^T,...,x_{\infty}^T)^T,其中x_{i}^{(i)}=1,x_{i}^{(j)}=0(i\not=j),即無限維的單位矩陣
X×w=labelxX\times w=label,即所有x分類正確
既然求出了wwbb,則證明了一定線性可分。
當然上面只是一種極限的情況,實際使用時,如果要使任何資料線性可分,只要把RBF函式的σ\sigma改的足夠小就行了。這或許也是RBF核函式在SVM中這麼常用的原因了。

##弊端
雖然用上面的確實可以使任何資料變得線性可分,但是卻也導致了嚴重的過擬合。所以一般來說,σ\sigma不能過小。