通俗易懂讲解RBF网络
一個(gè)有情懷的公眾號(hào)
1
RBF Network Hypothesis
之前我們介紹過,在SVM中引入Gaussian Kernel就能在無限多維的特征轉(zhuǎn)換中得到一條“粗壯”的分界線(或者高維分界平面、分界超平面)。從結(jié)果來看,Gaussian SVM其實(shí)就是將一些Gaussian函數(shù)進(jìn)行線性組合,而Gaussian函數(shù)的中心就位于Support Vectors上,最終得到預(yù)測(cè)模型gsvm(x)。
Gaussian kernel的另一種叫法是Radial Basis Function(RBF) kernel,即徑向基函數(shù)。這個(gè)名字從何而來?首先,radial表示Gaussian函數(shù)計(jì)算結(jié)果只跟新的點(diǎn)x與中心點(diǎn)xn的距離有關(guān),與其它無關(guān)。basis function就是指Gaussian函數(shù),最終的矩gsvm(x)就是由這些basis function線性組合而成。
從另外一個(gè)角度來看Gaussian SVM。首先,構(gòu)造一個(gè)函數(shù)gn(x):
上式中,指數(shù)項(xiàng)表示新的點(diǎn)x與xn之間的距離大小。距離越近,即權(quán)重越大,相當(dāng)于對(duì)yn投的票數(shù)更多;而距離越遠(yuǎn),權(quán)重越小,相當(dāng)于對(duì)yn投的票數(shù)更少。其物理意義是新的點(diǎn)與xn的距離遠(yuǎn)近決定了gn(x)與yn的接近程度。如果距離越近,則yn對(duì)gn(x)的權(quán)重影響越大;如果距離越遠(yuǎn),則yn對(duì)gn(x)的權(quán)重影響越小。那么整體來說,gsvm(x)就由所有的SV組成的gn(x)線性組合而成,不同gn(x)對(duì)應(yīng)的系數(shù)是αn,最后由sign函數(shù)做最后的選擇。這個(gè)過程很類型我們之前介紹的aggregation中將所有較好的hypothesis線性組合,不同的gn(x)有不同的權(quán)重αn。我們把gn(x)叫做radial hypotheses,Gaussian SVM就是將所有SV對(duì)應(yīng)的radial hypotheses進(jìn)行線性組合(linear aggregation)。
那么,Radial Basis Function(RBF) Network其實(shí)就是上面Gaussian SVM概念的延伸,目的就是找到所有radial hypotheses的linear aggregation,得到更好的網(wǎng)絡(luò)模型。
之所以叫作RBF Network是因?yàn)樗哪P徒Y(jié)構(gòu)類似于我們之前介紹的Neural Network。
Neural Network與RBF Network在輸出層基本是類似的,都是上一層hypotheses的線性組合(linear aggregation)。但是對(duì)于隱藏層的各個(gè)神經(jīng)元來說,Neural Network是使用內(nèi)積(inner-product)加上tanh()函數(shù)的方法,而RBF Network是使用距離(distance)加上Gaussian函數(shù)的方法。總的來說,RBF Network是Neural Network的一個(gè)分支。
至此,RBF Network Hypothesis以及網(wǎng)絡(luò)結(jié)構(gòu)可以寫成如下形式:
上式中,μm表示每個(gè)中心點(diǎn)的位置,隱藏層每個(gè)神經(jīng)元對(duì)應(yīng)一個(gè)中心點(diǎn);βm表示每個(gè)RBF的權(quán)重,即投票所占比重。
對(duì)應(yīng)到Gaussian SVM上,上式中的RBF就是Gaussian函數(shù)。由于是分類問題,上式中的Output就是sign函數(shù)。其中,RBF的個(gè)數(shù)M就等于支持向量的個(gè)數(shù)SV,μm就代表每個(gè)SV的坐標(biāo)xm,而βm就是在Dual SVM中推導(dǎo)得到的αn*ym值。那我們學(xué)習(xí)的目標(biāo)就是根據(jù)已知的RBF和Output,來決定最好的中心點(diǎn)位置μm和權(quán)重系數(shù)βm。
在之前介紹SVM的時(shí)候,我們就講過Mercer定理:一個(gè)矩陣是Kernel的充分必要條件是它是對(duì)稱的且是半正定的,條件比較苛刻。除了Gaussian kernel還有Polynomial kernel等等。Kernel實(shí)際上描述了兩個(gè)向量之間的相似性,通過轉(zhuǎn)換到z空間計(jì)算內(nèi)積的方式,來表征二者之間的相似性。而RBF實(shí)際上是直接使用x空間的距離來描述了一種相似性,距離越近,相似性越高。因此,kernel和RBF可以看成是兩種衡量相似性(similarity)的方式。本文介紹的Gaussian RBF即為二者的交集。
除了kernel和RBF之外,還有其它衡量相似性的函數(shù)。例如神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元就是衡量輸入和權(quán)重之間的相似性。
經(jīng)過以上分析,我們知道了RBF Network中distance similarity是一個(gè)很好的定義特征轉(zhuǎn)換的方法。除此之外,我們還可以使用其它相似性函數(shù)來表征特征轉(zhuǎn)換,從而得到更好的機(jī)器學(xué)習(xí)模型。
2
RBF Network Learning
我們已經(jīng)介紹了RBF Network的Hypothesis可表示為:
其中μm表示中心點(diǎn)的位置。μm的個(gè)數(shù)M是人為決定的,如果將每個(gè)樣本點(diǎn)xm都作為一個(gè)中心點(diǎn),即M=N,則我們把這種結(jié)構(gòu)稱為full RBF Network。也就是說,對(duì)于full RBF Network,每個(gè)樣本點(diǎn)都對(duì)最終的預(yù)測(cè)都有影響(uniform influence),影響的程度由距離函數(shù)和權(quán)重βm決定。如果每個(gè)樣本點(diǎn)的影響力都是相同的,設(shè)為1,βm=1?ym,那么相當(dāng)于只根據(jù)距離的遠(yuǎn)近進(jìn)行投票。最終將x與所有樣本點(diǎn)的RBF距離線性組合,經(jīng)過sign函數(shù)后,得到最終的預(yù)測(cè)分類結(jié)果。這實(shí)際上就是aggregation的過程,考慮并計(jì)入所有樣本點(diǎn)的影響力,最后將x與所有樣本點(diǎn)的distance similarity進(jìn)行線性組合。
full RBF Network的矩可以表示為:
我們來看上式中的Gaussian函數(shù)項(xiàng),當(dāng)x與樣本點(diǎn)xm越接近的時(shí)候,其高斯函數(shù)值越大。由于Gaussian函數(shù)曲線性質(zhì),越靠近中心點(diǎn),值越大;偏離中心點(diǎn),其值會(huì)下降得很快。也就是說,在所有N個(gè)中心樣本點(diǎn)中,往往只有距離x最近的那個(gè)樣本點(diǎn)起到關(guān)鍵作用,而其它距離x較遠(yuǎn)的樣本點(diǎn)其值很小,基本可以忽略。因此,為了簡(jiǎn)化運(yùn)算,我們可以找到距離x最近的中心樣本點(diǎn),只用這一個(gè)點(diǎn)來代替所有N個(gè)點(diǎn),最后得到的矩gnbor(x)也只由該最近的中心點(diǎn)決定。這種模型叫做nearest neighbor model,只考慮距離x最近的那一個(gè)“鄰居”。
當(dāng)然可以對(duì)nearest neighbor model進(jìn)行擴(kuò)展,如果不是只選擇一個(gè)“鄰居”,而是選擇距離x最近的k個(gè)“鄰居”,進(jìn)行uniformly aggregation,得到最終的矩gnbor(x)。這種方法通常叫做k近鄰算法(k nearest neighbor)。
k nearest neighbor通常比nearest neighbor model效果更好,計(jì)算量上也比full RBF Network要簡(jiǎn)單一些。值得一提的是,k nearest neighbor與full RBF Network都是比較“偷懶”的方法。因?yàn)樗鼈冊(cè)谟?xùn)練模型的時(shí)候比較簡(jiǎn)單,沒有太多的運(yùn)算,但是在測(cè)試的時(shí)候卻要花費(fèi)更多的力氣,找出最相近的中心點(diǎn),計(jì)算相對(duì)復(fù)雜一些。
接下來,我們來看一下Full RBF Network有什么樣的優(yōu)點(diǎn)和好處。考慮一個(gè)squared error regression問題,且每個(gè)RBF的權(quán)重為βm而不是前面簡(jiǎn)化的ym。目的是計(jì)算最優(yōu)化模型對(duì)應(yīng)的βm值。該hypothesis可表示為:
很明顯,這是一個(gè)簡(jiǎn)單的線性回歸問題,每個(gè)RBF都可以看成是特征轉(zhuǎn)換。特征轉(zhuǎn)換后的向量zn可表示為:
那么,根據(jù)之前線性回歸介紹過的最優(yōu)化解公式,就能快速地得到β的最優(yōu)解為:
矩陣Z的大小是NxN,是一個(gè)方陣。而且,由于Z中每個(gè)向量zn表示該點(diǎn)與其它所有點(diǎn)的RBF distance,所以從形式上來說,Z也是對(duì)稱矩陣。如果所有的樣本點(diǎn)xn都不一樣,則Z一定是可逆的。
根據(jù)Z矩陣的這些性質(zhì),我們可以對(duì)β的解進(jìn)行化簡(jiǎn),得到:
將β的解代入矩的計(jì)算中,以x1為例,得到:
結(jié)果非常有趣,模型的輸出與原樣本y1完全相同。同樣,對(duì)任意的xn,都能得到gRBF(xn)=yn。因此,Ein(gRBF)=0。看起來,這個(gè)模型非常完美了,沒有error。但是,我們之前就說過,機(jī)器學(xué)習(xí)中,Ein=0并非好事,很可能造成模型復(fù)雜度增加及過擬合。
當(dāng)然,這種方法在某些領(lǐng)域還是很有用的。比如在函數(shù)擬合(function approximation)中,目標(biāo)就是讓Ein=0,使得原所有樣本都盡可能地落在擬合的函數(shù)曲線上。
為了避免發(fā)生過擬合,我們可以引入正則項(xiàng)λ,得到β的最優(yōu)解為:
我們?cè)賮砜匆幌?strong>Z矩陣,Z矩陣是由一系列Gaussian函數(shù)組成,每個(gè)Gaussian函數(shù)計(jì)算的是兩個(gè)樣本之間的distance similarity。這里的Z與之前我們介紹的Gaussian SVM中的kernel K是一致的。當(dāng)時(shí)我們得到kernel ridgeregression中線性系數(shù)β的解為:
比較一下kernel ridgeregression與regularized full RBF Network的β解,形式上相似但不完全相同。這是因?yàn)閞egularization不一樣,在kernel ridgeregression中,是對(duì)無限多維的特征轉(zhuǎn)換做regularization,而在regularized full RBF Network中,是對(duì)有限維(N維度)的特征轉(zhuǎn)換做regularization。因此,兩者的公式解有細(xì)微差別。
除此之外,還有另外一種regularization的方法,就是不把所有N個(gè)樣本點(diǎn)都拿來作中心點(diǎn),而是只選擇其中的M個(gè)樣本點(diǎn)作為中心點(diǎn)。類似于SVM中的SV一樣,只選擇具有代表性的M個(gè)中心點(diǎn)。這樣減少中心點(diǎn)數(shù)量的同時(shí)也就減少了權(quán)重的數(shù)量,能夠起到regularization的效果,避免發(fā)生過擬合。
下一部分,我們將討論如何選取M個(gè)中心點(diǎn)作為好的代表。
3
k-Means Algorithm
之所以要選擇代表,是因?yàn)槿绻承颖军c(diǎn)很接近,那么就可以用一個(gè)中心點(diǎn)來代表它們。這就是聚類(cluster)的思想,從所有N個(gè)樣本點(diǎn)中選擇少數(shù)幾個(gè)代表作為中心點(diǎn)。
聚類(clustering)問題是一種典型的非監(jiān)督式學(xué)習(xí)(unsupervised learning)。它的優(yōu)化問題有兩個(gè)變量需要確定:一個(gè)是分類的分群值Sm,每一類可表示為S1,S2,?,SM;另外一個(gè)是每一類對(duì)應(yīng)的中心點(diǎn)μ1,μ2,?,μM。那么對(duì)于該聚類問題的優(yōu)化,其error function可使用squared error measure來衡量。
那么,我們的目標(biāo)就是通過選擇最合適的S1,S2,?,SM和μ1,μ2,?,μM,使得Ein最小化。對(duì)應(yīng)的公式可表示為:
從這個(gè)最小化公式,我們能夠發(fā)現(xiàn)這是一個(gè)組合最佳化的問題,既要優(yōu)化分群值Sm,又要求解每一類的中心點(diǎn)um。所以,這個(gè)最小化問題是比較復(fù)雜、難優(yōu)化的。通常的辦法是對(duì)S和μ分別進(jìn)行最優(yōu)化求解。
首先,如果μ1,μ2,?,μM是固定的,目標(biāo)就是只要對(duì)所有的xn進(jìn)行分群歸類。這個(gè)求解過程很簡(jiǎn)單,因?yàn)槊總€(gè)樣本點(diǎn)只能屬于一個(gè)群S,不能同時(shí)屬于兩個(gè)或多個(gè)群。所以,只要根據(jù)距離公式,計(jì)算選擇離xn最近的中心點(diǎn)μ即可。
然后,如果S1,S2,?,SM是固定的,目標(biāo)就是只要找出每個(gè)類的中心點(diǎn)μ。顯然,根據(jù)上式中的error function,所有的xn分群是已知的,那么該最小化問題就是一個(gè)典型的數(shù)值最優(yōu)化問題。對(duì)于每個(gè)類群Sm,利用梯度下降算法,即可得到μm的解。
如上圖所示,中心點(diǎn)μm就等于所有屬于類群Sm的平均位置處。
經(jīng)過以上的推導(dǎo),我們得到了一個(gè)非常有名的一種unsupervised learning算法,叫做k-Means Algorithm。這里的k就是代表上面的M,表示類群的個(gè)數(shù)。
k-Means Algorithm的流程是這樣的:首先,隨機(jī)選擇k個(gè)中心點(diǎn)μ1,μ2,?,μk;然后,再由確定的中心點(diǎn)得到不同的類群S1,S2,?,Sk;接著,再由確定的類群計(jì)算出新的不同的k個(gè)中心點(diǎn);繼續(xù)循環(huán)迭代計(jì)算,交互地對(duì)μ和S值進(jìn)行最優(yōu)化計(jì)算,不斷更新μ和S值,直到程序收斂,實(shí)現(xiàn)Ein最小化。具體算法流程圖如下所示:
有一個(gè)問題是,k-Means Algorithm的循環(huán)迭代一定會(huì)停止嗎?或者說一定能得到最優(yōu)解嗎?答案是肯定的。因?yàn)槊看蔚?#xff0c;μ和S值都會(huì)比上一次的值更接近最優(yōu)解,也就是說Ein是不斷減小的。而Ein的下界是0,所以,Ein最終會(huì)等于0,μ和S最終能得到最優(yōu)解。
k-Means Algorithm已經(jīng)介紹完畢。接下來,我們把k-Means Algorithm應(yīng)用到RBF Network中去。首先,使用k-Means,得到原始樣本的k個(gè)中心點(diǎn)。原始樣本到k個(gè)中心點(diǎn)組成了RBF特征轉(zhuǎn)換Φ(x)。然后,根據(jù)上面介紹過的線性模型,由最優(yōu)化公式解計(jì)算得到權(quán)重β值。最后,將所有的Φ(x)用β線性組合,即得到模型的表達(dá)式。具體的算法流程如下所示:
值得一提的是,這里我們使用了unsupervised learning(k-Means)與我們上節(jié)課介紹的autoencoder類似,同樣都是特征轉(zhuǎn)換(feature transform)的方法。
在最優(yōu)化求解過程中,參數(shù)有k-Means類群個(gè)數(shù)M、Gaussian函數(shù)參數(shù)λ等。我們可以采用validation的方法來選取最佳的參數(shù)值。
4
k-means and RBF Network in Action
下面這部分,我們將舉幾個(gè)例子,看一下k-Means Algorithm是如何處理分類問題的。
第一個(gè)例子,平面上有4個(gè)類群,k=4。首先,我們隨機(jī)選擇4個(gè)中心點(diǎn),如下圖中四種顏色的方塊所示:
第一次迭代,由初始中心點(diǎn),得到4個(gè)類群點(diǎn)的分布:
4個(gè)類群點(diǎn)確定后,再更新4個(gè)中心點(diǎn)的位置:
第二次迭代,由上面得到的4個(gè)中心點(diǎn),再計(jì)算4個(gè)類群點(diǎn)的分布:
4個(gè)類群點(diǎn)確定后,再更新4個(gè)中心點(diǎn)的位置:
第三次迭代,由上面得到的4個(gè)中心點(diǎn),再計(jì)算4個(gè)類群點(diǎn)的分布:
4個(gè)類群點(diǎn)確定后,再更新4個(gè)中心點(diǎn)的位置:
第四次迭代,由上面得到的4個(gè)中心點(diǎn),再計(jì)算4個(gè)類群點(diǎn)的分布:
4個(gè)類群點(diǎn)確定后,再更新4個(gè)中心點(diǎn)的位置:
第五次迭代,由上面得到的4個(gè)中心點(diǎn),再計(jì)算4個(gè)類群點(diǎn)的分布:
4個(gè)類群點(diǎn)確定后,再更新4個(gè)中心點(diǎn)的位置:
第六次迭代,由上面得到的4個(gè)中心點(diǎn),再計(jì)算4個(gè)類群點(diǎn)的分布:
4個(gè)類群點(diǎn)確定后,再更新4個(gè)中心點(diǎn)的位置:
從上圖我們可以看到,經(jīng)過六次迭代計(jì)算后,聚類的效果已經(jīng)相當(dāng)不錯(cuò)了。從另外一個(gè)角度來說,k值的選擇很重要,下面我們來看看不同的k值對(duì)應(yīng)什么樣的分類效果。
如上圖所示,初始時(shí),我們分別設(shè)定k為2,4,7,隨機(jī)選擇中心點(diǎn)位置。在經(jīng)過多次迭代后,得到的聚類結(jié)果如下:
通過上面這個(gè)例子可以得出,不同的k值會(huì)得到不同的聚類效果。還有一點(diǎn)值得注意的是,初始中心點(diǎn)位置也可能會(huì)影響最終的聚類。例如上圖中k=7的例子,初始值選取的右邊三個(gè)中心點(diǎn)比較靠近,最后得到的右邊三個(gè)聚類中心點(diǎn)位置也跟初始位置比較相近。所以,k值大小和初始中心點(diǎn)位置都會(huì)影響聚類效果。
接下來,我們把k-Means應(yīng)用到RBF Network中,同樣分別設(shè)定k為2,4,7,不同模型得到的分類效果如下:
很明顯,k=2時(shí),分類效果不是太好;k=4時(shí),分類效果好一些;而k=7時(shí),分類效果更好,能夠更細(xì)致地將樣本準(zhǔn)確分類。這說明了k-Means中k值設(shè)置得是否合理,對(duì)RBF Network的分類效果起到重要的作用。
再來看一個(gè)例子,如果使用full RBF Network進(jìn)行分類,即k=N,如下圖左邊所示,設(shè)置正則化因子λ=0.001。下圖右邊表示只考慮full RBF Network中的nearest neighbor。下圖中間表示的是k=4的RBF Network的分類效果。
從上圖的比較中,我們可以發(fā)現(xiàn)full RBF Network得到的分類線比較彎曲復(fù)雜。由于full RBF Network的計(jì)算量比較大,所以一般情況下,實(shí)際應(yīng)用得不太多。
5
Summary
本文主要介紹了Radial Basis Function Network。RBF Network Hypothesis就是計(jì)算樣本之間distance similarity的Gaussian函數(shù),這類原型替代了神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元。RBF Network的訓(xùn)練學(xué)習(xí)過程,其實(shí)就是對(duì)所有的原型Hypotheses進(jìn)行l(wèi)inear aggregation。然后,我們介紹了一個(gè)確定k個(gè)中心點(diǎn)的unsupervised learning算法,叫做k-Means Algorithm。這是一種典型的聚類算法,實(shí)現(xiàn)對(duì)原始樣本數(shù)據(jù)的聚類分群。接著,將k-Means Algorithm應(yīng)用到RBF Network中,選擇合適數(shù)量的中心點(diǎn),得到更好的分類模型。最后,我們列舉了幾個(gè)在實(shí)際中使用k-Means和RBF Network的例子,結(jié)果顯示不同的類群k值對(duì)分類的效果影響很大。
往期回顧
【1】線性支持向量機(jī)(LSVM)
【2】深度學(xué)習(xí)概述
【3】
【4】
【5】卷積神經(jīng)網(wǎng)絡(luò)CNN基礎(chǔ)
【6】循環(huán)神經(jīng)網(wǎng)絡(luò)RNN
【7】干貨 | 吳恩達(dá)deeplearning.ai專項(xiàng)課程歷史文章匯總
【8】簡(jiǎn)單的梯度下降算法,你真的懂了嗎?
【9】力薦 | 臺(tái)大林軒田《機(jī)器學(xué)習(xí)基石》資源匯總
長按二維碼
掃描關(guān)注
喜歡我的文章,就點(diǎn)贊或轉(zhuǎn)發(fā)吧!
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的通俗易懂讲解RBF网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows平台下的多线程编程
- 下一篇: 30秒解决电脑越用越卡的大众常见难题