機器學習技法14: 徑向基函數網絡(Radial Basis Function Network)



在系列課程開始之初的四節課的SVM中,提到了徑向基函數(Radial Basis Function Network,RBF),可能與上一節課講到的神經網絡存在一定聯繫,本節課嘗試將二者聯繫起來。


k-NN與k-Means的區別:
在這裏插入圖片描述
參考自博客:點擊此處


14.1 RBF Network Hypothesis

首先回顧一下Gaussian SVM:
在這裏插入圖片描述
它要做的事情是在無限多維的空間中尋找一個“胖胖的”邊界;從最後得到的假設函數來看,Gaussian SVM要做的就是將一堆Gaussian 函數做線性組合,並且這些Gaussian 函數以支持向量(Support Vector)爲中心,最終得到假設函數 gSVM(x)g_{SVM}(x)。Gaussian kernel 也叫作徑向基函數(Radial Basis Function Network,RBF),接下來看一下其中每部分所表示的函數:
在這裏插入圖片描述

  • radical(徑向):表示Gaussian函數只和新的樣本點 xx 到中心點 xnx_n(支持向量的座標)的距離有關;

  • basis function(基函數):表示Gaussian 函數,最終的假設函數 gSVM(x)g_{SVM}(x) 就是由這些基函數線性組合而成的。

  • 如果令 gn(x)g_{n}(x) 表示原來SVM假設函數中的一部分,即 gn(x)=yn exp(γ xxn2)g_n(x) = y_n \ exp(-\gamma \ ||x-x_n||^2),其中括號內(指數項)表示新的樣本點 xx 與支持向量的座標 xnx_n 之間的距離。距離越近,表示權重越大,相當於對 yny_n 投更多的票數,反之亦然。其物理意義是新的樣本點 xx 與支持向量的座標 xnx_n 的距離決定了 gn(x)g_n(x)yny_n 的接近程度。

如果距離越近,則 yny_ngn(x)g_n(x) 的權重影響越大,反之亦然。即Gaussian SVM的假設函數 gSVM(x)g_{SVM}(x) 就是由所有的的支持向量決定的 gn(x)g_n(x) 線性組合而成的,組合係數爲權重 αn\alpha_n

徑向基函數(RBF)網絡實際上就是 Gaussian SVM的延伸,目的就是要找到所有 gn(x)g_n(x) 的線性組合,得到更好的融合模型。之所以成爲RBF網絡,是因爲與之前的神經網絡類似:
在這裏插入圖片描述
由上圖可知,二者的異同在於:

  • 隱藏層不同,神經網絡是計算輸入數據與權重向量的內積,然後通過激活函數激活;而RBF網絡是計算輸入數據與支持向量的距離,然後通過Gaussian函數激活;
  • 輸出層的組合方式相同:都是對不同假設函數的線性融合(aggregation)。

徑向基函數網絡實際上是神經網絡的一種。RBF網絡的假設函數可以表示爲:
在這裏插入圖片描述
其中,將支持向量(中心)記爲 μm\mu_m ,函數 RBF()RBF() 表示計算距離的高斯函數,βm\beta_m 表示權重係數(線性組合的係數)。不難發現,其中的關鍵就是 μm\mu_mβm\beta_mMM 表示支持向量的個數,μm\mu_m 表示支持向量的座標,βm\beta_m 表示計算完SVM對偶(Dual)以後,αmym\alpha_my_m 的值。至此,學習目標就變爲已知RBF和輸出,來計算最好的中心點座標 μm\mu_m 和權重係數 βm\beta_m

以上對RBF的介紹是從kernel開始的,接下來從相似性的角度分析。kernel實際上是將原來X空間的兩個點轉換到Z空間,然後計算其內積,來衡量二者的相似性。正是因爲這樣的計算方式,導致kernel要受到Mercers’s condition的保障,即它所產生的矩陣是半正定的。關於kernel的選擇,不止Gaussian kernel一種,也可以選擇多項式(polynomial)kernel。
在這裏插入圖片描述
kernel實際上通過將兩向量從X空間轉換到Z空間,通過計算二者的內積,衡量了二者之間的相似性。而RBF則是直接在X空間中,計算距離來衡量相似性,距離越近,相似性越高,反之亦然。因此kernel和RBF都可以看做衡量相似性的方法,而Guassian RBF則是二者的交集。此外,衡量相似性的函數還有很多,比如神經網絡中的神經元,其衡量的是輸入和輸出權重之間的相似性。

由以上分析可知,RBF網絡中的距離相似性是一種很好的特徵轉換方法。


習題1:
在這裏插入圖片描述


14.2 RBF Network Learning

上一小節介紹了RBF網絡的基本概念,其核心思想是找到一些中心(支持向量),然後將這些中心對應的RBF函數進行線性組合,線性組合的權重爲 βm\beta_m
在這裏插入圖片描述
那麼中心應該如何確定呢?首先看一個簡單的例子,將所有樣本點都當做中心點,這樣的RBF網絡稱爲 full RBF Network。其物理意義表示每一箇中心 xmx_m 點都對它周圍的樣本點 xx 有影響,產生影響的大小表示 βm\beta_m,用投標來解釋就是說它有幾票。假設所有的中心點都有同樣的影響力,設爲1,βm=1ym\beta_m = 1 \cdot y_m,在二分類問題中,相當於根據距離中心點的遠近來做投票,距離越近票數越多,反之亦然。然後通過 guniform(x)g_{uniform}(x) 通過計算新的樣本點 xxxmx_m 之間的距離來衡量相似性,最後把這些融合起來,得到最終的假設函數。full RBF 網絡實際上是一種惰性的求解 μm\mu_m 的方法。這與機器學習中的另一個算法——k近鄰算法(kNN)有很大的關聯性:
在這裏插入圖片描述
在上述計算中,計算的是高斯函數的值,這些值有大有小,最後進行投票,得到假設函數 guniform(x)g_{uniform}(x) ,如果要找與新的樣本點 xx 最接近的中心 xmx_m ,因爲高斯函數是中間高兩側低的函數,在兩側衰減很快,在求和函數 m=1n\sum^{n}_{m=1} 中,最大值處的高斯函數值對其影響最大,所以一個思路是不做所有樣本點的求和動作,而只計算最近或幾個距離較近的中心點的距離。這在表達式中表示就是用最近的中心點來決定 ymy_m ,這就變成了selection而非aggregation。

其物理意義是說,比如在二分類問題中,假設函數 gnbor(x)g_{nbor}(x) 要判斷新的樣本 xx 是正類還是負類,只需要找到距離該樣本點最近的中心點 xmx_m 所屬的類別即可,即用 xmx_m 的類別表示 xx 的類別,實現類別預測。 這樣的模型稱爲 nearest neighbor model。在此基礎上,將以上算法延伸,可以找出 kk 個距離最近的中心點,然後再進行aggregation操作,就變爲熟悉的 k近鄰算法。這樣會比最近鄰算法的效果更好。易知,k近鄰算法也是一種惰性的方法。這種方法容易訓練,但推理比較費時。

下面看一下在迴歸問題中,如何最佳化權重係數 βm\beta_m
在這裏插入圖片描述
首先計算 znz_n1×N1 \times N 的行向量),每個元素爲RBF函數計算的新的樣本與各個中心點的距離,則 ZZN×NN \times N 的對稱矩陣(Symmetric Matrix),這裏有一個性質,如果所有的樣本 xnx_n 都不相同,則Gaussian RBF求解得到的 ZZ 爲可逆矩陣(Inverse Matrix)。如果 ZZ 是對稱矩陣,則有 ZT=ZZ^T = Z ,代入到 β\beta 的最佳化公式 β=(ZTZ)1ZTyβ = (Z^TZ)^{−1}Z^Ty 中,可以很輕易地推導出 β=Z1y\beta=Z^{-1}y 。以上是針對 full RBF Network推導的,接下來看一下引入正則化的情況:
在這裏插入圖片描述
如果不加正則化,則由假設函數 gRBF(xn)g_{RBF}(x_n) 預測的輸出都是原來輸入數據的期望輸出 yny_n,這使得假設函數在樣本上的誤差 Ein=0E_{in} =0,這些課程學到這裏,很容易想到這是不好的結果,因爲很有可能導致overfit,因此考慮加入使用正則化方法加以限制。

加入正則化之後,相當於把原來的線性迴歸改爲嶺迴歸(rige regression)。這樣轉化之後,N×NN \times N 的矩陣 ZZ 就是原來SVM中的 Gaussian kernel matrix KK。由此得到 regularized full RBFNet 的表達式,此外還可以推導出 kernel ridge regression。
在這裏插入圖片描述

兩者的區別在於Regularization不同,kernel ridge regression是對無限維的空間中做Regularization;在Regularized full RBFNet中是對有限的空間做Regularization,Regularization不同,做的結果就會有一些不一樣。下面看另一種Regularization方法:
在這裏插入圖片描述
回顧之前SVM算法,在計算假設函數時,只使用了支持向量來運算,達到了正則化效果;同樣地,在RBF中也可以借鑑這樣的思想,即使得中心點的數量 NN 遠遠小於樣本數量 MM 。這樣同樣可以達到正則化的效果,即限制了中心點的數量和投票權重。其物理意義是從中心點 μm\mu_m 中挑出有代表性的中心來。


習題2:
在這裏插入圖片描述


14.3 k-­Means Algorithm

要從中心點中找出好的代表,就變爲一個聚類問題(Clustering Problem)。本小節介紹一下爲什麼在RBFNet中需要找出這些代表。
在這裏插入圖片描述
一種想法是將一個點變爲一羣相似的點,即聚類,這是一個典型的無監督學習算法。具體地:
在這裏插入圖片描述
算法核心是使用不同的集合 SMS_M 將樣本點 xnx_n 分開。我們希望如果新的樣本點 x1x_1x2x_2 都屬於同一個集合 SmS_m ,則表示這個集合的中心點與這兩個樣本點都很接近;如果相隔很遠,則用RBF函數算出的距離很不一樣,中心點 μm\mu_m 就不能夠代表這個集合。

聚類的誤差衡量使用平方誤差。上式表示對於每個樣本點 xnx_n 與聚類中心的距離。接下來就需要找出一種分羣方式,即找出 S1,S2,...,SMS_1,S_2,...,S_M 和中心點 μ1,μ2,...,μM\mu_1,\mu_2,...,\mu_M ,可以將樣本點分得很好,使得誤差函數最小化。接下來看一下聚類算法如何優化:
在這裏插入圖片描述
不難發現,這是一個困難的優化問題,因爲包含兩個部分,一個部分是分羣,一個部分是計算中心點 μm\mu_m,即既需要組合最佳化,又需要數值最佳化。一種想法是對兩組變量交替優化,即固定一組變量,優化另一組變量,交替進行。流程如下:
在這裏插入圖片描述
首先固定中心點 μm\mu_m ,然後計算每一個樣本 xnx_n 在一個集合中與各個中心點的距離,選出距離最近的那一個作爲集合 SmS_m 的中心點即可。接下來看集合固定的情況:
在這裏插入圖片描述
如果集合 SmS_m 固定,則問題變爲無約束優化問題(unconstrained optimization)。通過計算偏導數(梯度)來求解最佳的 μm\mu_m 。其值等於集合 SmS_m 中所有樣本點 XnX_n 的平均值。至此,可以得到 k均值聚類算法(k-Means Algorithm)。其僞代碼如下:
在這裏插入圖片描述
注意,這裏的 k 與 k近鄰算法中的 k 不同。

  • 隨機選取 k 個樣本 xnx_n 來初始化聚類中心 μk\mu_k
  • 分別固定集合和聚類中心,進行交替迭代優化(k­Means Algorithm)。

k-Means算法是通過交替最小化的最受歡迎的聚類算法。使用 k-Means 的RBFNet的算法流程如下:
在這裏插入圖片描述
其核心有兩個,分別是:
在這裏插入圖片描述

使用了 k-­Means 與我們上節課介紹的自動編碼器(autoencoder)類似,都是特徵轉換(feature transform)方法。在最優化過程中,要求解的參數有k-­Means聚類算法的集合個數M、Gaussian函數參數 等。我們可以採用validation的方法來選取最佳的參數值。


習題3:
在這裏插入圖片描述


14.4 k-Means and RBF Network in Action

本小節通過demo來演示k-Means和RBFNet算法。
在這裏插入圖片描述
在該例中,k-Means算法首先隨機選擇四個中心點(k=4),通常如果 k 選擇得當並且有比較好的初始化方法,則該算法可以得到很好的表現。

首先,進行第一次更新,根據選擇的四個中心點,對輸入空間的樣本點進行劃分:
在這裏插入圖片描述
然後,重新計算聚類中心,計算方式是對集合中的點取平均值。
在這裏插入圖片描述


接下來進行第二次迭代,根據新計算的聚類中心,重新確定樣本點歸屬與哪個集合:
在這裏插入圖片描述

然後再計算聚類中心:
在這裏插入圖片描述


迭代到第六次時,可以將四類樣本清晰的劃分出來。
在這裏插入圖片描述


聚類中心選取是任意的,接下來看一下不同數量的初始化聚類中心的影響:
在這裏插入圖片描述
可以看出,k-Means算法對k初始值的選取很敏感。接下來將 k-Means 與 RBFNet結合,做二分類的結果:
在這裏插入圖片描述
可以看出,如果選擇合適的聚類中心數量,可以得到不錯的結果。接下來看一下full RBF Network的情形:
在這裏插入圖片描述
full RBFNet 得到的分隔超平面比較複雜,並且計算量很大,在實際應用中不太常用。


習題4:
在這裏插入圖片描述
樣本數量比較少的時候,正則化強度應該大一些。


Summary

本節課主要介紹了徑向基函數網絡(Radial Basis Function Network,RBFNet)。RBFNet的假設函數就是計算樣本之間相似度的Gaussian函數,替代了神經網絡中的神經元,也使其名字中network的由來。RBFNet的學習過程也是對更假設函數進行線性組合的過程,權重爲 αm\alpha_m。然後介紹了k近鄰算法和k均值聚類算法,以及引入k均值算法的RBFNet。最後用過一個demo演示了其工作流程,並說明了k-Menas算法中k的選取很重要。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章