日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RBF神经网络及其应用【神经网络】

發布時間:2023/12/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RBF神经网络及其应用【神经网络】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RBF神經網絡典型案例分析

【例6-1】考慮具有3輸入2輸出的一組數據,如表6-1所示。

>> clear all; xite=0.10;alfa=0.05; W=rands(5,2); W_1=W;W_2=W_1; h=[0,0,0,0,0]'; c=2*[-0.5 -0.25 0 0.25 0.5;-0.5 -0.25 0 0.25 0.5;-0.5 -0.25 0 0.25 0.5]; b=10; xs=[1,0,0]; %樣本輸入 ys=[1,0]; %樣本輸出 OUT=2;NS=1; k=0;E=1.0; while E>=1e-20 k=k+1; times(k)=k; for s=1:1:NS %多輸入多輸出樣本 x=xs(s,:);

RBF神經網絡的學習算法

RBF神經網絡的函數

newrb函數設計的RBF神經網絡net可以用于函數逼近。徑向基函數的擴展速度的值需要根據具體問題靈活選擇。對于變化較快的函數,如果spread的值取得過大就會使逼近結果過于粗糙;對于變化較慢的函數,如果spread的值取得過小就會使逼近結果不夠光滑,網絡的性能就會受到影響。
【例6-3】利用newrb函數創建一個近似RBF神經網絡。
程序實現代碼如下:

>> clear all;P = [1 2 3]; T = [2.0 4.1 5.9]; net = newrb(P,T); P = 1.5; Y = sim(net,P)

2)newrbe函數
newrbe函數用于設計一個準確的RBF神經網絡,函數的調用格式如下:
net = newrbe(P,T,spread)
其中,輸入參數P為輸入向量;T為輸出向量;spread為徑向基函數的分布密度,spread的值越大,函數越平滑,默認值為1.0。
一般來講,newrbe函數和newrb函數一樣,神經元數目越大,函數的擬合效果就越平滑。但是,過多的神經元可能會導致計算困難。
【例6-4】利用newrbe函數創建一個RBF神經網絡,注意與【例6-3】的區別。
程序實現代碼如下:

>> clear all; P = [1 2 3]; T = [2.0 4.1 5.9]; net = newrbe(P,T); P = 1.5;

newpnn函數創建的是一個兩層的神經網絡:第一層是徑向基神經元,用dist函數計算加權輸入,用netprod函數計算網絡輸入;第二層是競爭神經元,用dotprod函數計算加權輸入,用netsum函數計算網絡輸入。其中,只有第一層包含閾值。網絡將第一層的值設置為P,第一層的閾值設置為0.8326/spread,并且當加權輸入為±spread時,徑向基函數取值恰好為0.5,第二層的權值被設置為T。
【例6-5】利用newpnn函數創建一個概率神經網絡。
程序實現代碼如下:

>> clear all; P = [1 2 3 4 5 6 7]; Tc = [1 2 3 2 2 3 1]; T = ind2vec(Tc) %將數據索引轉換為向量組 net = newpnn(P,T); Y = sim(net,P) Yc = vec2ind(Y) %將向量組轉換為數據索引

newgrnn函數用于創建一個廣義回歸神經網絡。廣義回歸神經網絡是RBF神經網絡的一種,通常用于函數逼近(請參考6.8節)。newgrnn函數的調用格式如下:
net = newgrnn(P,T,spread)
其中,輸入參數P為輸入向量;T為輸出向量;spread為徑向基函數的分布密度,spread的值對網絡的逼近精度有很大的影響,需要不斷地調整spread的值。spread的值越小,函數的比較越精確,但是逼近過程就越粗糙;spread的值越大,逼近過程越平滑,但是逼近的誤差會比較大。
【例6-6】利用newgrnn函數創建一個廣義回歸網絡。
程序實現代碼如下:

>> clear all; P = [1 2 3]; T = [2.0 4.1 5.9]; net = newgrnn(P,T); P = 1.5; Y = sim(net,P)

MATLAB神經網絡工具箱中提供的radbas函數用于實現RBF神經網絡的傳遞。radbas函數的調用格式如下:
A = radbas(N,FP)
其中,輸入參數N為S×Q維的網絡輸入(列向量)矩陣;FP為性能參數(可以忽略),返回網絡輸入向量N的輸出矩陣A。
【例6-7】計算向量的徑向基函數及其微分。
程序實現代碼如下:

>> clear all; n=-6:0.1:6; a=radbas(n-2); %中心位置向右平移2個單位 b=exp(-(n).^2/2); %除以2,曲線更加“矮胖” figure; subplot(121);plot(n,a); hold on; plot(n,b,'r:'); title('不同位置和形狀的radbas函數'); c=diff(a); %計算a的微分 subplot(122);plot(c); title('徑向基函數的微分');


2)vec2ind函數
vec2ind函數用于將向量組轉換為數據索引,與ind2vec函數是互逆的。vec2ind函數的調用格式如下:
[ind,n] = vec2ind(vec)
其中,vec為m×n的稀疏矩陣x,x中的每個向量i,除了包括1,其余元素均為0,得到的行向量包括這些非零元素的下標。
【例6-8】利用ind2vec函數與vec2ind函數實現網絡的轉換。
程序實現代碼如下:

>> clear all; ind = [1 3 2 3]; %定義一個數據索引列向量 vec = ind2vec(ind) %將數據索引列向量轉換為向量組 vec =(1,1) 1(3,2) 1(2,3) 1(3,4) 1 >> %最后一行中具有全零的向量被轉換為索引并返回,同時保留行數 vec = [0 0 1 0; 1 0 0 0; 0 1 0 0]'

權函數

info = dist(‘code’)
根據code值的不同,返回有關函數的信息。當code=deriv時,返回導函數名稱;當code=pfullderiv時,返回輸入向量;當code=wfullderiv時,返回權值;當code=name時,返回函數的全稱;當code=fpnames時,返回函數參數的名稱;當code=fpdefaults時,返回默認的函數參數。
【例6-9】利用dist函數計算兩個隨機矩陣的歐幾里得距離。
程序實現代碼如下:

>> clear all; >> W = rand(4,3); %4×3矩陣 >> P = rand(3,2); %3×2矩陣 >> Z = dist(W,P) %得到的結果為4×2矩陣 Z =0.7063 0.44560.8313 0.92270.7717 1.07440.7835 0.5330 >> D=dist(Z) %只有一個輸入,計算Z中每行與其他行的距離

2)normprod函數
normprod為規范點的權函數,函數的調用格式為:
Z = normprod(W,P,FP)
dim = normprod(‘size’,S,R,FP)
dw = normprod(‘dz_dw’,W,P,Z,FP)
其輸入參數的含義與dist函數參數的含義類似。其中,Z為返回的規范點積權。
【例6-10】利用normprod函數計算隨機矩陣的規范點積權。
程序實現代碼如下:

>>clear all; W = rand(4,3); P = rand(3,1); Z = normprod(W,P)

3)netprod函數
netprod為乘積網絡輸入函數,函數的調用格式如下:
N = netprod({Z1,Z2,…,Zn})
其中,輸入參數Zi為S×Q維的矩陣;Z為從Z1到Zn的組合;輸出參數N為從Z1到Zn的積。
info = netprod(‘code’)
根據code值的不同,返回有關函數的信息。當code=name時,返回傳遞函數的全稱;當code=deriv時,返回導函數名稱;當code=fullderiv時,返回導數的次數;當code=fpnames時,返回函數參數的名稱;當code=fpdefaults時,返回默認的函數參數。
【例6-11】利用netprod函數計算幾個矩陣中相應元素的積。
程序實現代碼如下:

>> clear all; >> Z1 = [1 2 4;3 4 1]; Z2 = [-1 2 2; -5 -6 1]; Z = {Z1,Z2}; N = netprod({Z})

4)dotprod函數
dotprod為矩陣的內權積函數,函數的調用格式如下:
Z = dotprod(W,P,FP)
dim = dotprod(‘size’,S,R,FP)
dw = dotprod(‘dw’,W,P,Z,FP)
info = dotprod(‘code’)
其輸入參數的含義與dist函數參數的含義類似。其中,Z為返回矩陣的內權積。
【例6-12】利用dotprod函數計算矩陣之間的內權積。

>> W = rand(4,3); %4*3矩陣 P = rand(3,2); %3*2矩陣 Z = dotprod(W,P) %計算矩陣的內權積

輸入函數

MATLAB神經網絡工具箱中提供的netsum函數用于計算網絡輸入,它可以將加權輸入與偏置相結合,求出輸入矩陣元素的和。netsum函數的調用格式如下:
N = netsum({Z1,Z2,…,Zn},FP)
其中,Z1,Z2,…,Zn等輸入參數是S×Q同型矩陣,函數將返回它們對應位置元素的和;N為與輸入矩陣同型的矩陣。
info = netsum(‘code’)
根據code值的不同,返回有關函數的信息。當code=name時,返回函數的全稱;當code=type時,返回函數的類型;當code=fpnames時,返回函數參數的名稱;當code=fpdefaults時,返回默認的函數參數;當code=fullderiv時,返回0或1,這取決于S×Q矩陣。
【例6-13】利用netsum函數計算網絡輸入函數和。
程序實現代碼如下:

>> clear all; z1 = [1, 2, 4; 3, 4, 1]; z2 = [-1, 2, 2; -5, -6, 1]; b = [0; -1] n = netsum({z1, z2, concur(b, 3)})

競爭傳遞函數

compet為神經網絡的競爭傳遞函數,傳遞函數用于從網絡中求得網絡輸出。compet函數的調用格式如下:
A = compet(N,FP)
其中,N為S×Q維矩陣,包含Q個長度為S的列向量,對每個列向量分別求最大值,返回同型矩陣A,在每列的最大值對應位置,A中的元素為1,其余元素為0,A的每列中有且僅有一個元素等于1;FP為返回函數參數的結構。
可以用n給網絡的第i層設置傳遞函數,下面舉例說明。
【例6-14】計算一個向量的網絡輸出。
程序實現代碼如下:

>> clear all; n = [0; 1; -0.5; 0.5]; a = compet(n); subplot(2,1,1), bar(n), ylabel('n') subplot(2,1,2), bar(a), ylabel('a')

總結

以上是生活随笔為你收集整理的RBF神经网络及其应用【神经网络】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。