RBF神經網絡:徑向基函數神經網絡(Radical Basis Function)
GRNN神經網絡:廣義回歸神經網絡(General Regression Neural Network)
PNN神經網絡:概率神經網絡(Probabilistic Neural Network)
徑向基函數神經網絡的優點:逼近能力,分類能力和學習速度等方面都優於BP神經網絡,結構簡單、訓練簡潔、學習收斂速度快、能夠逼近任意非線性函數,克服局部極小值問題。原因在於其參數初始化具有一定的方法,並非隨機初始化(見習下面的代碼)。
首先我們來看RBF神經網絡
https://blog.csdn.net/ecnu18918079120/article/details/53365341/
隱藏層中神經元的變換函數即徑向基函數是對中心點徑向對稱且衰減的非負線性函數,該函數是局部響應函數,具體的局部響應體現在其可見層到隱藏層的變換,跟其它的網絡不同。
RBF神經網絡的基本思想:用RBF(徑向基函數)作為隱單元的“基”構成隱藏層空間,隱藏層對輸入矢量進行變換,將低維的模式輸入數據變換到高維空間內,使得在低維空間內的線性不可分問題在高維空間內線性可分。詳細一點就是用RBF的隱單元的“基”構成隱藏層空間,這樣就可以將輸入矢量直接(不通過權連接)映射到隱空間。當RBF的中心點確定以后,這種映射關系也就確定 了。而隱含層空間到輸出空間的映射是線性的(注意這個地方區分一下線性映射和非線性映射的關系),即網絡輸出是因單元輸出的線性加權和,此處的權即為網絡可調參數。
《模式識別與只能計算》中介紹:徑向基網絡傳遞函數是以輸入向量與閾值向量之間的距離|| X-Cj ||作為自變量的,其中|| X -Cj ||是通過輸入向量和加權矩陣C的行向量的乘積得到。此處的C就是隱藏層各神經元的中心參數,大小為(隱層神經元數目*可見層單元數)。再者,每一個隱神經元中心參數C都對應一個寬度向量D,使得不同的輸入信息能被不同的隱層神經元最大程度地反映出來。
得到的這個R就是隱藏層神經元的值。
下圖為徑向基神經元模型
圖中的b為閾值,用於調整神經元的靈敏度。RBF神經網絡學習算法需要三個參數:基函數的中心,方差(寬度)以及隱含層到輸出層的權值。
徑向基函數神經網絡(RBF)
線性層(加權和)
IW1,1(輸入層和隱藏層的權值):輸入訓練矩陣轉置
LW2,1(輸出層和隱藏層的權值):求解特定的方程
代碼里如何查看權值W1和閾值b1
W1 = net.iw{1,1};
b1 = net.b{1};
S1表示第一層的神經元個數,S2表示第二層的神經元個數;
輸入層:p為列向量(R*1),即具有R個特征的輸入向量;
第一層(徑向基函數層)的權值矩陣大小為(S1*R),閾值b1(S1*1);
第二層(線性層)的權值矩陣大小為(S2*S1),b2為(S2*1)。
利用徑向基神經元和線性神經元可以建立廣義回歸神經網絡,此種神經網絡適用於函數逼近方面的應用。徑向基函數和競爭神經元可以建立概率神經網絡,此種神經網絡適用於解決分類問題。
廣義回歸神經網絡(GRNN)
特殊線性層
LW2,1(輸出層和隱藏層的權值)也是一個確定的結果,由訓練集的輸出矩陣代替
概率神經網絡(PNN)
將線性層變成競爭層,在輸出層用的不是線性函數,而是競爭函數competitive(只取出一個最大的訓練集樣本對應的label作為測試集預測的結果,重要函數(ind2vec))
newrbe的參數初始化函數段:
function [w1,b1,w2,b2] = designrbe(p,t,spread)
[r,q] = size(p);
[s2,q] = size(t);
w1 = p'; %權值w1是輸入訓練矩陣的轉置
b1 = ones(q,1)*sqrt(-log(.5))/spread; %閾值b1是一個固定的函數,和spread有關
a1 = radbas(dist(w1,p).*(b1*ones(1,q))); %隱藏層和輸入層的的閾值和權值確定后,激活函數的a1也就能計算出來了
x = t/[a1; ones(1,q)];%輸出層和隱含層的權值和閾值通過求解方程組的方式求解
w2 = x(:,1:q); %求解完了后就可以確定權值和閾值。
b2 = x(:,q+1);
重要的函數:
newrbe函數——創建一個精確型的徑向基函數神經網絡,調用格式
net = newrbe(P, T, spread)
newgrnn函數——創建一個廣義回歸神經網絡
net = newrbe(P, T, spread)
newpnn函數——創建一個概率神經網絡
net = newpnn(P, T, spread)
cputime——Elapsed CPU time 計算CPU消耗的時間
round(ceil、fix、 floor)——取整函數
Y = round(x)
length(size)——計算向量的長度矩陣的維度
n = length(x)
find——矩陣中某個元素的位置
[row, col] = find(X, ...)
Multiplication(.*) right division(./) left division(.\) power(.^)
matrix multiplication(*) matrix right division(/) matrix left division(\) matrix power(^)
RBF網絡是一個三層的網絡,除了輸入輸出層之外僅有一個隱層。隱層中的轉換函數是局部響應的高斯函數,而其他前向型網絡,轉換函數一般都是全局響應函數。由於這樣的不同,要實現同樣的功能,RBF需要更多的神經元,這就是rbf網絡不能取代標准前向型網絡的原因。但是RBF的訓練時間更短。它對函數的逼近是最優的,可以以任意精度逼近任意連續函數。隱層中的神經元越多,逼近越較精確.
徑向基神經元和線性神經元可以建立廣義回歸神經網絡,它是徑RBF網絡的一種變化形式,經常用於函數逼近。在某些方面比RBF網絡更具優勢。
徑向基神經元和競爭神經元還可以組成概率神經網絡。PNN也是RBF的一種變化形式,結構簡單訓練快捷,特別適合於模式分類問題的解決。