【通俗理解】RBF網絡

1python

RBF Network Hypothesis算法

在SVM中引入Gaussian Kernel就能在無限多維的特徵轉換中獲得一條「粗壯」的分界線(或者高維分界平面、分界超平面)。從結果來看,Gaussian SVM其實就是將一些Gaussian函數進行線性組合,而Gaussian函數的中心就位於Support Vectors上,最終獲得預測模型gsvm(x)數組

640?wx_fmt=png

Gaussian kernel的另外一種叫法是Radial Basis Function(RBF) kernel,即徑向基函數。這個名字從何而來?首先,radial表示Gaussian函數計算結果只跟新的點x與中心點xn的距離有關,與其它無關。basis function就是指Gaussian函數,最終的矩gsvm(x)就是由這些basis function線性組合而成。微信


從另一個角度來看Gaussian SVM。首先,構造一個函數gn(x)網絡

640?wx_fmt=png

上式中,指數項表示新的點x與xn之間的距離大小。距離越近,即權重越大,至關於對yn投的票數更多;而距離越遠,權重越小,至關於對yn投的票數更少。其物理意義是新的點與xn的距離遠近決定了gn(x)yn的接近程度。若是距離越近,則yngn(x)的權重影響越大;若是距離越遠,則yngn(x)的權重影響越小。那麼總體來講,gsvm(x)就由全部的SV組成的gn(x)線性組合而成,不一樣gn(x)對應的係數是αn,最後由sign函數作最後的選擇。這個過程很類型咱們以前介紹的aggregation中將全部較好的hypothesis線性組合,不一樣的gn(x)有不一樣的權重αn。咱們把gn(x)叫作radial hypotheses,Gaussian SVM就是將全部SV對應的radial hypotheses進行線性組合(linear aggregation)。app

640?wx_fmt=png

那麼,Radial Basis Function(RBF) Network其實就是上面Gaussian SVM概念的延伸,目的就是找到全部radial hypotheses的linear aggregation,獲得更好的網絡模型。機器學習


之因此叫做RBF Network是由於它的模型結構相似於咱們以前介紹的Neural Network。函數

640?wx_fmt=png

Neural Network與RBF Network在輸出層基本是相似的,都是上一層hypotheses的線性組合(linear aggregation)。可是對於隱藏層的各個神經元來講,Neural Network是使用內積(inner-product)加上tanh()函數的方法,而RBF Network是使用距離(distance)加上Gaussian函數的方法。總的來講,RBF Network是Neural Network的一個分支。學習

640?wx_fmt=png

至此,RBF Network Hypothesis以及網絡結構能夠寫成以下形式:區塊鏈

640?wx_fmt=png

上式中,μm表示每一箇中心點的位置,隱藏層每一個神經元對應一箇中心點;βm表示每一個RBF的權重,即投票所佔比重。


對應到Gaussian SVM上,上式中的RBF就是Gaussian函數。因爲是分類問題,上式中的Output就是sign函數。其中,RBF的個數M就等於支持向量的個數SV,μm就表明每一個SV的座標xm,而βm就是在Dual SVM中推導獲得的αn*ym值。那咱們學習的目標就是根據已知的RBF和Output,來決定最好的中心點位置μm和權重係數βm

640?wx_fmt=png

在以前介紹SVM的時候,咱們就講過Mercer定理:一個矩陣是Kernel的充分必要條件是它是對稱的且是半正定的,條件比較苛刻。除了Gaussian kernel還有Polynomial kernel等等。Kernel實際上描述了兩個向量之間的類似性,經過轉換到z空間計算內積的方式,來表徵兩者之間的類似性。而RBF其實是直接使用x空間的距離來描述了一種類似性,距離越近,類似性越高。所以,kernel和RBF能夠當作是兩種衡量類似性(similarity)的方式。本文介紹的Gaussian RBF即爲兩者的交集。

640?wx_fmt=png

除了kernel和RBF以外,還有其它衡量類似性的函數。例如神經網絡中的神經元就是衡量輸入和權重之間的類似性。


通過以上分析,咱們知道了RBF Network中distance similarity是一個很好的定義特徵轉換的方法。除此以外,咱們還可使用其它類似性函數來表徵特徵轉換,從而獲得更好的機器學習模型。

2

RBF Network Learning

咱們已經介紹了RBF Network的Hypothesis可表示爲:

640?wx_fmt=png

其中μm表示中心點的位置。μm的個數M是人爲決定的,若是將每一個樣本點xm都做爲一箇中心點,即M=N,則咱們把這種結構稱爲full RBF Network。也就是說,對於full RBF Network,每一個樣本點都對最終的預測都有影響(uniform influence),影響的程度由距離函數和權重βm決定。若是每一個樣本點的影響力都是相同的,設爲1,βm=1⋅ym,那麼至關於只根據距離的遠近進行投票。最終將x與全部樣本點的RBF距離線性組合,通過sign函數後,獲得最終的預測分類結果。這實際上就是aggregation的過程,考慮並計入全部樣本點的影響力,最後將x與全部樣本點的distance similarity進行線性組合。

640?wx_fmt=png

full RBF Network的矩能夠表示爲:

640?wx_fmt=png

咱們來看上式中的Gaussian函數項,當x與樣本點xm越接近的時候,其高斯函數值越大。因爲Gaussian函數曲線性質,越靠近中心點,值越大;偏離中心點,其值會降低得很快。也就是說,在全部N箇中心樣本點中,每每只有距離x最近的那個樣本點起到關鍵做用,而其它距離x較遠的樣本點其值很小,基本能夠忽略。所以,爲了簡化運算,咱們能夠找到距離x最近的中心樣本點,只用這一個點來代替全部N個點,最後獲得的矩gnbor(x)也只由該最近的中心點決定。這種模型叫作nearest neighbor model,只考慮距離x最近的那一個「鄰居」。


固然能夠對nearest neighbor model進行擴展,若是不是隻選擇一個「鄰居」,而是選擇距離x最近的k個「鄰居」,進行uniformly aggregation,獲得最終的矩gnbor(x)。這種方法一般叫作k近鄰算法(k nearest neighbor)。

640?wx_fmt=png

k nearest neighbor一般比nearest neighbor model效果更好,計算量上也比full RBF Network要簡單一些。值得一提的是,k nearest neighbor與full RBF Network都是比較「偷懶」的方法。由於它們在訓練模型的時候比較簡單,沒有太多的運算,可是在測試的時候卻要花費更多的力氣,找出最相近的中心點,計算相對複雜一些。


接下來,咱們來看一下Full RBF Network有什麼樣的優勢和好處。考慮一個squared error regression問題,且每一個RBF的權重爲βm而不是前面簡化的ym。目的是計算最優化模型對應的βm值。該hypothesis可表示爲:

640?wx_fmt=png

很明顯,這是一個簡單的線性迴歸問題,每一個RBF均可以當作是特徵轉換。特徵轉換後的向量zn可表示爲:

640?wx_fmt=png

那麼,根據以前線性迴歸介紹過的最優化解公式,就能快速地獲得β的最優解爲:

640?wx_fmt=png

矩陣Z的大小是NxN,是一個方陣。並且,因爲Z中每一個向量zn表示該點與其它全部點的RBF distance,因此從形式上來講,Z也是對稱矩陣。若是全部的樣本點xn都不同,則Z必定是可逆的。

640?wx_fmt=png

根據Z矩陣的這些性質,咱們能夠對β的解進行化簡,獲得:

640?wx_fmt=png

β的解代入矩的計算中,以x1爲例,獲得:

640?wx_fmt=png

結果很是有趣,模型的輸出與原樣本y1徹底相同。一樣,對任意的xn,都能獲得gRBF(xn)=yn。所以,Ein(gRBF)=0。看起來,這個模型很是完美了,沒有error。可是,咱們以前就說過,機器學習中,Ein=0並不是好事,極可能形成模型複雜度增長及過擬合。

640?wx_fmt=png

固然,這種方法在某些領域仍是頗有用的。好比在函數擬合(function approximation)中,目標就是讓Ein=0,使得原全部樣本都儘量地落在擬合的函數曲線上。


爲了不發生過擬合,咱們能夠引入正則項λ,獲得β的最優解爲:

640?wx_fmt=png 640?wx_fmt=png

咱們再來看一下Z矩陣,Z矩陣是由一系列Gaussian函數組成,每一個Gaussian函數計算的是兩個樣本之間的distance similarity。這裏的Z與以前咱們介紹的Gaussian SVM中的kernel K是一致的。當時咱們獲得kernel ridgeregression中線性係數β的解爲:

640?wx_fmt=png

比較一下kernel ridgeregression與regularized full RBF Network的β解,形式上類似但不徹底相同。這是由於regularization不同,在kernel ridgeregression中,是對無限多維的特徵轉換作regularization,而在regularized full RBF Network中,是對有限維(N維度)的特徵轉換作regularization。所以,二者的公式解有細微差異。

640?wx_fmt=png

除此以外,還有另一種regularization的方法,就是不把全部N個樣本點都拿來做中心點,而是隻選擇其中的M個樣本點做爲中心點。相似於SVM中的SV同樣,只選擇具備表明性的M箇中心點。這樣減小中心點數量的同時也就減小了權重的數量,可以起到regularization的效果,避免發生過擬合。

640?wx_fmt=png

下一部分,咱們將討論如何選取M箇中心點做爲好的表明。

3

k-Means Algorithm

之因此要選擇表明,是由於若是某些樣本點很接近,那麼就能夠用一箇中心點來表明它們。這就是聚類(cluster)的思想,從全部N個樣本點中選擇少數幾個表明做爲中心點。

640?wx_fmt=png

聚類(clustering)問題是一種典型的非監督式學習(unsupervised learning)。它的優化問題有兩個變量須要肯定:一個是分類的分羣值Sm,每一類可表示爲S1,S2,⋯,SM;另一個是每一類對應的中心點μ1,μ2,⋯,μM。那麼對於該聚類問題的優化,其error function可以使用squared error measure來衡量。

640?wx_fmt=png

那麼,咱們的目標就是經過選擇最合適的S1,S2,⋯,SMμ1,μ2,⋯,μM,使得Ein最小化。對應的公式可表示爲:

640?wx_fmt=png

從這個最小化公式,咱們可以發現這是一個組合最佳化的問題,既要優化分羣值Sm,又要求解每一類的中心點um。因此,這個最小化問題是比較複雜、難優化的。一般的辦法是對Sμ分別進行最優化求解。


首先,若是μ1,μ2,⋯,μM是固定的,目標就是隻要對全部的xn進行分羣歸類。這個求解過程很簡單,由於每一個樣本點只能屬於一個羣S,不能同時屬於兩個或多個羣。因此,只要根據距離公式,計算選擇離xn最近的中心點μ便可。

640?wx_fmt=png

而後,若是S1,S2,⋯,SM是固定的,目標就是隻要找出每一個類的中心點μ。顯然,根據上式中的error function,全部的xn分羣是已知的,那麼該最小化問題就是一個典型的數值最優化問題。對於每一個類羣Sm,利用梯度降低算法,便可獲得μm的解。

640?wx_fmt=png

如上圖所示,中心點μm就等於全部屬於類羣Sm的平均位置處。


通過以上的推導,咱們獲得了一個很是有名的一種unsupervised learning算法,叫作k-Means Algorithm。這裏的k就是表明上面的M,表示類羣的個數。


k-Means Algorithm的流程是這樣的:首先,隨機選擇k箇中心點μ1,μ2,⋯,μk;而後,再由肯定的中心點獲得不一樣的類羣S1,S2,⋯,Sk;接着,再由肯定的類羣計算出新的不一樣的k箇中心點;繼續循環迭代計算,交互地對μS值進行最優化計算,不斷更新μS值,直到程序收斂,實現Ein最小化。具體算法流程圖以下所示:

640?wx_fmt=png

有一個問題是,k-Means Algorithm的循環迭代必定會中止嗎?或者說必定能獲得最優解嗎?答案是確定的。由於每次迭代更新,μS值都會比上一次的值更接近最優解,也就是說Ein是不斷減少的。而Ein的下界是0,因此,Ein最終會等於0,μS最終能獲得最優解。


k-Means Algorithm已經介紹完畢。接下來,咱們把k-Means Algorithm應用到RBF Network中去。首先,使用k-Means,獲得原始樣本的k箇中心點。原始樣本到k箇中心點組成了RBF特徵轉換Φ(x)。而後,根據上面介紹過的線性模型,由最優化公式解計算獲得權重β值。最後,將全部的Φ(x)β線性組合,即獲得模型的表達式。具體的算法流程以下所示:

640?wx_fmt=png

值得一提的是,這裏咱們使用了unsupervised learning(k-Means)與咱們上節課介紹的autoencoder相似,一樣都是特徵轉換(feature transform)的方法。


在最優化求解過程當中,參數有k-Means類羣個數M、Gaussian函數參數λ等。咱們能夠採用validation的方法來選取最佳的參數值。

640?wx_fmt=png

4

k-means and RBF Network in Action

下面這部分,咱們將舉幾個例子,看一下k-Means Algorithm是如何處理分類問題的。


第一個例子,平面上有4個類羣,k=4。首先,咱們隨機選擇4箇中心點,以下圖中四種顏色的方塊所示:

640?wx_fmt=png

第一次迭代,由初始中心點,獲得4個類羣點的分佈:

640?wx_fmt=png

4個類羣點肯定後,再更新4箇中心點的位置:

640?wx_fmt=png

第二次迭代,由上面獲得的4箇中心點,再計算4個類羣點的分佈:

640?wx_fmt=png

4個類羣點肯定後,再更新4箇中心點的位置:

640?wx_fmt=png

第三次迭代,由上面獲得的4箇中心點,再計算4個類羣點的分佈:

640?wx_fmt=png

4個類羣點肯定後,再更新4箇中心點的位置:

640?wx_fmt=png

第四次迭代,由上面獲得的4箇中心點,再計算4個類羣點的分佈:

640?wx_fmt=png

4個類羣點肯定後,再更新4箇中心點的位置:

640?wx_fmt=png

第五次迭代,由上面獲得的4箇中心點,再計算4個類羣點的分佈:

640?wx_fmt=png

4個類羣點肯定後,再更新4箇中心點的位置:

640?wx_fmt=png

第六次迭代,由上面獲得的4箇中心點,再計算4個類羣點的分佈:

640?wx_fmt=png

4個類羣點肯定後,再更新4箇中心點的位置:

640?wx_fmt=png

從上圖咱們能夠看到,通過六次迭代計算後,聚類的效果已經至關不錯了。從另一個角度來講,k值的選擇很重要,下面咱們來看看不一樣的k值對應什麼樣的分類效果。

640?wx_fmt=png

如上圖所示,初始時,咱們分別設定k爲2,4,7,隨機選擇中心點位置。在通過屢次迭代後,獲得的聚類結果以下:

640?wx_fmt=png

經過上面這個例子能夠得出,不一樣的k值會獲得不一樣的聚類效果。還有一點值得注意的是,初始中心點位置也可能會影響最終的聚類。例如上圖中k=7的例子,初始值選取的右邊三個中心點比較靠近,最後獲得的右邊三個聚類中心點位置也跟初始位置比較相近。因此,k值大小和初始中心點位置都會影響聚類效果。


接下來,咱們把k-Means應用到RBF Network中,一樣分別設定k爲2,4,7,不一樣模型獲得的分類效果以下:

640?wx_fmt=png

很明顯,k=2時,分類效果不是太好;k=4時,分類效果好一些;而k=7時,分類效果更好,可以更細緻地將樣本準確分類。這說明了k-Means中k值設置得是否合理,對RBF Network的分類效果起到重要的做用。


再來看一個例子,若是使用full RBF Network進行分類,即k=N,以下圖左邊所示,設置正則化因子λ=0.001。下圖右邊表示只考慮full RBF Network中的nearest neighbor。下圖中間表示的是k=4的RBF Network的分類效果。

640?wx_fmt=png

從上圖的比較中,咱們能夠發現full RBF Network獲得的分類線比較彎曲複雜。因爲full RBF Network的計算量比較大,因此通常狀況下,實際應用得不太多。

5

Summary

本文主要介紹了Radial Basis Function Network。RBF Network Hypothesis就是計算樣本之間distance similarity的Gaussian函數,這類原型替代了神經網絡中的神經元。RBF Network的訓練學習過程,其實就是對全部的原型Hypotheses進行linear aggregation。而後,咱們介紹了一個肯定k箇中心點的unsupervised learning算法,叫作k-Means Algorithm。這是一種典型的聚類算法,實現對原始樣本數據的聚類分羣。接着,將k-Means Algorithm應用到RBF Network中,選擇合適數量的中心點,獲得更好的分類模型。最後,咱們列舉了幾個在實際中使用k-Means和RBF Network的例子,結果顯示不一樣的類羣k值對分類的效果影響很大。


本文轉載自AI有道的《通俗易懂講解RBF網絡》


往期回顧:

何須心中無碼,AI讓你眼見爲實

黨給我智慧給我膽,梯度給我努力的方向

【通俗理解】凸優化

【通俗理解】區塊鏈

外賣機器人誕生!快遞小哥會失業嗎?

剛剛,有位大神用AI搞定了多位女神

你敢@微信官方,不怕它真送你一頂綠色聖誕帽?

別人都在曬18歲照片,而我卻在學習~

今日頭條敗給了色情?AI算法不行,仍是另有隱情?

【機器學習】python憑什麼能被歸入教材

【機器學習】樸素貝葉斯算法分析

【機器學習】主成分(PCA)算法分析

【機器學習】非線性迴歸算法分析

【機器學習】線性迴歸算法分析

  讀AlphaZero論文隨想

 進擊的TensorFlow

 【通俗理解】協方差

【通俗理解】貝葉斯統計

 從一個雙控開關思考神經網絡(下)

 從一個雙控開關思考神經網絡(上)