徑向基核函式 (Radial Basis Function)–RBF
論文中又提到了RBF,雖然是個簡單的核函式,但是也再總結一下。關於SVM中的核函式的選擇,比較簡單和應用比較廣的是RBF。
所謂徑向基函式 (Radial Basis Function 簡稱 RBF), 就是某種沿徑向對稱的標量函式。 通常定義為空間中任一點x到某一中心xc之間歐氏距離的單調函式 , 可記作 k(||x-xc||), 其作用往往是區域性的 , 即當x遠離xc時函式取值很小。
最常用的徑向基函式是高斯核函式 ,形式為 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc為核函式中心,σ為函式的寬度引數 , 控制了函式的徑向作用範圍。
建議首選RBF核函式,因為:
- 能夠實現非線性對映;( 線性核函式可以證明是他的一個特例;SIGMOID核函式在某些引數上近似RBF的功能。)
- 引數的數量影響模型的複雜程度,多項式核函式引數較多。
- the RBF kernel has less numerical difficulties.
———–那麼,還記得為何要選用核函式麼?———–
對於這個問題,在Jasper’s Java Jacal部落格《SVM入門(七)為何需要核函式》中做了很詳細的闡述,另外博主對於SVM德入門學習也是做了很詳細的闡述,有興趣的可以去學習,丕子覺得這個文章寫得相當好,特意轉載了過來,留念一下。
如果提供的樣本線性不可分,結果很簡單,線性分類器的求解程式會無限迴圈,永遠也解不出來。這必然使得它的適用範圍大大縮小,而它的很多優點我們實在不原意放棄,怎麼辦呢?是否有某種方法,讓線性不可分的資料變得線性可分呢?
例子是下面這張圖:
我們把橫軸上端點a和b之間紅色部分裡的所有點定為正類,兩邊的黑色部分裡的點定為負類。試問能找到一個線性函式把兩類正確分開麼?不能,因為二維空間裡的線性函式就是指直線,顯然找不到符合條件的直線。
但我們可以找到一條曲線,例如下面這一條:
顯然通過點在這條曲線的上方還是下方就可以判斷點所屬的類別(你在橫軸上隨便找一點,算算這一點的函式值,會發現負類的點函式值一定比0大,而正類的一定比0小)。這條曲線就是我們熟知的二次曲線,它的函式表示式可以寫為:
問題只是它不是一個線性函式,但是,下面要注意看了,新建一個向量y和a:
這樣g(x)就可以轉化為f(y)=<a,y>,你可以把y和a分別迴帶一下,看看等不等於原來的g(x)。用內積的形式寫你可能看不太清楚,實際上f(y)的形式就是:
g(x)=f(y)=ay
在任意維度的空間中,這種形式的函式都是一個線性函式(只不過其中的a和y都是多維向量罷了),因為自變數y的次數不大於1。
看出妙在哪了麼?原來在二維空間中一個線性不可分的問題,對映到四維空間後,變成了線性可分的
!因此這也形成了我們最初想解決線性不可分問題的基本思路——向高維空間轉化,使其變得線性可分。
而轉化最關鍵的部分就在於找到x到y的對映方法。遺憾的是,如何找到這個對映,沒有系統性的方法(也就是說,純靠猜和湊)。具體到我們的文字分類問題,文字被表示為上千維的向量,即使維數已經如此之高,也常常是線性不可分的,還要向更高的空間轉化。其中的難度可想而知。
小Tips:為什麼說f(y)=ay是四維空間裡的函式?
大家可能一時沒看明白。回想一下我們二維空間裡的函式定義
g(x)=ax+b
變數x是一維的,為什麼說它是二維空間裡的函式呢?因為還有一個變數我們沒寫出來,它的完整形式其實是
y=g(x)=ax+b
即
y=ax+b
看看,有幾個變數?兩個,二維。
再看看
f(y)=ay
裡面的y是三維的變數,再加上f(y)成為四維的了。
用一個具體文字分類的例子來看看這種向高維空間對映從而分類的方法如何運作,想象一下,我們文字分類問題的原始空間是1000維的(即每個要被分類的文件被表示為一個1000維的向量),在這個維度上問題是線性不可分的。現在我們有一個2000維空間裡的線性函式
f(x’)=<w’,x’>+b
注意向量的右上角有個 ’哦。它能夠將原問題變得可分。式中的 w’和x’都是2000維的向量,只不過w’是定值,而x’是變數(好吧,嚴格說來這個函式是2001維的,哈哈),現在我們的輸入呢,是一個1000維的向量x,分類的過程是先把x變換為2000維的向量x’,然後求這個變換後的向量x’與向量w’的內積,再把這個內積的值和b相加,就得到了結果,看結果大於閾值還是小於閾值就得到了分類結果。
你發現了什麼?我們其實只關心那個高維空間裡內積的值,那個值算出來了,分類結果就算出來了。而從理論上說, x’是經由x變換來的,因此廣義上可以把它叫做x的函式(有一個x,就確定了一個x’,對吧,確定不出第二個),而w’是常量,它是一個低維空間裡的常量w經過變換得到的,所以給了一個w 和x的值,就有一個確定的f(x’)值與其對應。這讓我們幻想,是否能有這樣一種函式K(w,x),他接受低維空間的輸入值,卻能算出高維空間的內積值<w’,x’>?
如果有這樣的函式,那麼當給了一個低維空間的輸入x以後,
g(x)=K(w,x)+b
f(x’)=<w’,x’>+b
這兩個函式的計算結果就完全一樣,我們也就用不著費力找那個對映關係,直接拿低維的輸入往g(x)裡面代就可以了(再次提醒,這回的g(x)就不是線性函式啦,因為你不能保證K(w,x)這個表示式裡的x次數不高於1哦)。
萬幸的是,這樣的K(w,x)確實存在(發現凡是我們人類能解決的問題,大都是巧得不能再巧,特殊得不能再特殊的問題,總是恰好有些能投機取巧的地方才能解決,由此感到人類的渺小),它被稱作核函式(核,kernel),而且還不止一個,事實上,只要是滿足了Mercer條件的函式,都可以作為核函式。核函式的基本作用就是接受兩個低維空間裡的向量,能夠計算出經過某個變換後在高維空間裡的向量內積值。幾個比較常用的核函式,俄,教課書裡都列過,我就不敲了(懶!)。
回想我們上節說的求一個線性分類器,它的形式應該是:
現在這個就是高維空間裡的線性函式(為了區別低維和高維空間裡的函式和向量,我改了函式的名字,並且給w和x都加上了 ’),我們就可以用一個低維空間裡的函式(再一次的,這個低維空間裡的函式就不再是線性的啦)來代替,
又發現什麼了?f(x’) 和g(x)裡的α,y,b全都是一樣一樣的!這就是說,儘管給的問題是線性不可分的,但是我們就硬當它是線性問題來求解,只不過求解過程中,凡是要求內積 的時候就用你選定的核函式來算。這樣求出來的α再和你選定的核函式一組合,就得到分類器啦!
明白了以上這些,會自然的問接下來兩個問題:
1. 既然有很多的核函式,針對具體問題該怎麼選擇?
2. 如果使用核函式向高維空間對映後,問題仍然是線性不可分的,那怎麼辦?
第一個問題現在就可以回答你:對核函式的選擇,現在還缺乏指導原則!各種實驗的觀察結果(不光是文字分類)的確表明,某些問題用某些核函式效果很 好,用另一些就很差,但是一般來講,徑向基核函式是不會出太大偏差的一種,首選。(我做文字分類系統的時候,使用徑向基核函式,沒有引數調優的情況下,絕 大部分類別的準確和召回都在85%以上,可見。雖然libSVM的作者林智仁認為文字分類用線性核函式效果更佳,待考證)
對第二個問題的解決則引出了我們下一節的主題:鬆弛變數。
==================
核函式有很多種,如線性核、多項式核、Sigmoid 核和 RBF(Radial Basis function)核。本文選定 RBF 核為 SVM 的核函式(RBF 核K(x, y) = exp(-γ || x -y ||的平方),γ > 0)。因為RBF 核可以將樣本對映到一個更高維的空間,可以處理當類標籤(Class Labels)和特徵之間的關係是非線性時的樣例。Keerthi 等[25]證明了一個有懲罰引數C 的線性核同有引數(C,γ )(其中C 為懲罰因子,γ 為核引數)的 RBF 核具有相同的效能。對某些引數,Sigmoid核同 RBF 核具有相似的效能[26]。另外,RBF 核與多項式核相比具有引數少的優點。因為引數的個數直接影響到模型選擇的複雜性。非常重要的一點是0< Kij ≤1與多項式核相反,核值可能趨向無限(γxi xj + r >1)或者0 < γxi xj + r <1,跨度非常大。而且,必須注意的是Sigmoid 核在某些引數下是不正確的(例如,沒有兩個向量的內積)。
用交叉驗證找到最好的引數 C 和γ 。使用 RBF 核時,要考慮兩個引數 C 和γ 。因為引數的選擇並沒有一定的先驗知識,必須做某種型別的模型選擇(引數搜尋)。目的是確定好的(C,γ)使得分類器能正確的預測未知資料(即測試集數 據),有較高的分類精確率。值得注意的是得到高的訓練正確率即是分類器預測類標籤已知的訓練資料的正確率)不能保證在測試集上具有高的預測精度。因此,通 常採用交叉驗證方法提高預測精度。k 折交叉驗證(k-fold cross validation)
=========================
相關推薦
核函式&徑向基核函式 (Radial Basis Function)--RBF
1.核函式 1.1核函式的由來 -----------還記得為何要選用核函式麼?----------- 對於這個問題,在Jasper's Java Jacal部落格《SVM入門(七)為何需要核函式
徑向基核函式 (Radial Basis Function)–RBF
論文中又提到了RBF,雖然是個簡單的核函式,但是也再總結一下。關於SVM中的核函式的選擇,比較簡單和應用比較廣的是RBF。 所謂徑向基函式 (Radial Basis Function 簡稱 RBF), 就是某種沿徑向對稱的標量函式。 通常定義為空間中任一點x到某一中心x
核函式與徑向基函式 (Radial Basis Function 簡稱 RBF)詳解
轉載於 :http://blog.csdn.net/huang1024rui/article/details/51510611 1.核函式 1.1核函式的由來 -----------還記得為何要選用核函式麼?--
【雜談】RBF徑向基核函式&徑向基網路
徑向基函式 徑向基函式(Radical Basis Function,RBF)方法是Powell在1985年提出的。所謂徑向基函式,其實就是某種”沿徑向對稱”的標量函式。通常定義為空間中任一點x到某一中心c之間歐氏距離的單調函式,可記作k(||x-c||),其
RBF高斯徑向基核函式-libsvm
XVec表示X向量。||XVec||表示向量長度。 r表示兩點距離。r^2表示r的平方。 k(XVec,YVec) = exp(-1/(2*sigma^2)*(r^2)) = exp(-gamma*r^2)...... 公式-1這裡, gamma
RBF高斯徑向基核函式
實際上,可看作是計算2個點X與Y的相似性。很多參考書上,把YVec寫作XVec',即 k(XVec, XVec'),也是一樣的含義:兩點相似性。由於Matlab上面XVec'代表XVec的轉置向量(XVec)T,所以,為規避歧義,我記作k(XVec,YVec)。如:LibSVM程式碼,機器學習經典教材《Pat
機器學習基礎(二十九)—— 徑向基核函式(RBF)
儘管最佳核函式的選擇一般與問題自身有關,但對普遍問題還是有規律可循的,建議初學者在通常情況下,優先考慮徑向基核函式(RBF): K(x,y)=exp(−γ∥x−y∥2) 主要基於以下考慮: (1
機器學習--支援向量機(六)徑向基核函式(RBF)詳解
前面講解了什麼是核函式,以及有效核函式的要求,到這裡基本上就結束了,很多部落格也是如此,但是呢這些只是理解支援向量機的原理,如何使用它講解的卻很少,尤其是如何選擇核函式更沒有人講,不講也是有原因的,因為核函式的選擇沒有統一的定論,這需要使用人根據不同場合或者不同問題選擇核函式
python實現徑向基核函式
1、生成資料集(雙月資料集) class moon_data_class(object): def __init__(self,N,d,r,w): self.N=N self.w=w self.d=d
機器學習 徑向基(Radial basis function)與RBF核函式 淺析
徑向基函式(RBF)在神經網路領域扮演著重要的角色,如 RBF神經網路具有唯一最佳逼近的特性,徑向基作為核函式在SVM中能將輸入樣本對映到高維特徵空間,解決一些原本線性不可分的問題。 本文主要討論: 1. 先討論核函式是如何把資料對映到高維空
統計學習方法:核函式(Kernel function)
作者:桂。 時間:2017-04-26 12:17:42 前言 之前分析的感知機、主成分分析(Principle component analysis, PCA)包括後面看的支撐向量機(Support vector machines, SVM),都有用到核函式。核函式是將訊號對映到高維
徑向基函式(RBF)神經網路
RBF網路能夠逼近任意的非線性函式,可以處理系統內的難以解析的規律性,具有良好的泛化能力,並有很快的學習收斂速度,已成功應用於非線性函式逼近、時間序列分析、資料分類、模式識別、資訊處理、影象處理、系統建模、控制和故障診斷等。 簡單說明一下為什麼RBF網路學習收斂得比較快。當網路的一個或多個可調引數(權值或閾
高斯核函式(徑向基函式)
數學表示所謂徑向基函式 (Radial Basis Function 簡稱 RBF), 就是某種沿徑向對稱的標量函式。 通常定義為空間中任一點x到某一中心xc之間歐氏距離的單調函式 , 可記作 k(||x-xc||), 其作用往往是區域性的 , 即當x遠離xc時函式取值很
RBF(徑向基函式)神經網路
自己的總結: 1、輸入層到隱藏層之間不是通過權值和閾值進行連線的,而是通過輸入樣本與隱藏層點之間的距離(與中心點的距離)連線的。 2、得到距離之後,將距離代入徑向基函式,得到一個數值。數值再與後邊的權值相乘再求總和,就得到了相應輸入的輸出。 3、在訓練網路之前,需要確定中心點的個數,和中心點
神經網路學習筆記(一) RBF徑向基函式神經網路
RBF徑向基函式神經網路 初學神經網路,以下為綜合其他博主學習材料及本人理解所得。 一、RBF神經網路的基本思想 1. 用RBF作為隱單元的“基”構成隱含層空間,將輸入向量直接(不通過權對映)對映到隱空間。 2.當RBF的中心點確定後,對映關係也就確定。(中心點通常通
四.徑向基函式網路
BP神經網路是一種全域性逼近網路,學習速度慢,本次介紹一種結構簡單,收斂速度快,能夠逼近任意非線性函式的網路——徑向基函式網路。(Radial Basis Function, RBF)是根據生物神經元有區域性響應的原理而將基函式引入到神經網路中。 為什麼RBF網路學習收斂得比較快?當網路的一個或多個可調引數
深度學習 --- 徑向基神經網路RBF詳解
上一節我們基本上打開了深度學習的大門,其實下一步應該是卷積神經網路即CNN了,但是呢卷積神經網路的最後一層採用的是徑向基神經網路,為了以後到CNN不用再費力氣將RBF和保持CNN的整體性和連貫性,因此這裡我們系統的學習一下,講解之前我們還是先好好回顧我們的總體學習思路,首先我們從BP神經網路開始
RBF核函式將一維線性不可分資料對映到二維平面上變成線性可分的資料
#!/usr/bin/python # -*- coding: utf-8 -*- import matplotlib.pyplot as plt from sklearn import datasets import pandas as pd import numpy as np x = np.a
RBF核函式中的gamma
gamma越大,高斯分佈越窄。gamma越小,高斯分佈越寬,gamma相當於調整模型的複雜度,gamma值越小模型複雜度越低,gamma值越高,模型複雜度越大 #!/usr/bin/python # -*- coding: utf-8 -*- import matplotl
【Yaser S. Abu-Mostafa課件】從資料中學習——徑向基函式
本課件主要內容包括: 基本RBF模型 學習演算法 用於分類的RBF 與最近鄰方法的關係 K箇中心的RBF 中心選擇的問題 迭代演算法 Lloyd演算法 中心與支援向量 RBF網路