摘自《matlab神經網路43個案例分析》
(1)newrb()
[net,tr]=newrb(p,t,goal,spread,mn,df)
其中p為q組輸入向量組成的r*q位矩陣,t為q組目標分類向量組成的s*q維矩陣。goal為均方誤差目標(mean squard error goal),預設為0.0;spread為徑向基函式的擴充套件速度,預設為1;mn為神經元的最大數目,預設為q;df維兩次顯示之間所新增的神經元數目,預設為25;ner為返回值,乙個rbf網路,tr為返回值,訓練記錄。
用newrb()建立rbf網路是乙個不斷嘗試的過程(從程式的執行可以看出來),在建立過程中,需要不斷增加中間層神經元的和個數,知道網路的輸出誤差滿足預先設定的值為止。
(2)newrbe()
該函式用於設計乙個精確徑向基網路(exact rbf),呼叫格式為:
net=newrbe(p,t,spread)
其中p為q組輸入向量組成的r*q維矩陣,t為q組目標分類向量組成的s*q維矩陣;spread為徑向基函式的擴充套件速度,預設為1
和newrb()不同的是,newrbe()能夠基於設計向量快速,無誤差地設計乙個徑向基網路。
(3)radbas()
該函式為徑向基傳遞函式,呼叫格式為
a=radbas(n)
info=radbas(code)
其中n為輸入(列)向量的s*q維矩陣,a為函式返回矩陣,與n一一對應,即n的每個元素通過徑向基函式得到a;info=radbas(code)表示根據code值的不同返回有關函式的不同資訊。包括
derive——返回導函式的名稱
name——返回函式全稱
output——返回輸入範圍
active——返回可用輸入範圍
使用exact徑向基網路來實現非線性的函式回歸:
%%清空環境變數
clcclear
%%產生輸入輸出資料
%設定步長
interval=0.01;
%產生x1,x2
x1=-1.5:interval:1.5;
x2=-1.5:interval:1.5;
%按照函式先求的響應的函式值,作為網路的輸出
f=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
%%網路建立和訓練
%網路建立,輸入為[x1;x2],輸出為f。spread使用預設
net=newrbe([x1;x2],f);
%%網路的效果驗證
%將原資料回帶,測試網路效果
ty=sim(net,[x1;x2]);
%%使用影象來看網路對非線性函式的擬合效果
figure
plot3(x1,x2,f,'rd');
hold on;
plot3(x1,x2,ty,'b-.');
view(113,36);
title('視覺化的方法觀察嚴格的rbf神經網路的擬合效果');
xlabel('x1')
ylabel('x2')
zlabel('f')
grid on
函式影象:
%%清空環境變數
clcclear
%%產生訓練樣本,訓練輸入,訓練輸出
%ld為樣本隸屬
ld=400;
%產生2*ld的矩陣
x=rand(2,ld);
%將x轉換到[-1.5 1.5]之間
x=(x-0.5)*1.5*2;
%x的第一行為x1,第二行為x2
x1=x(1,:);
x2=x(2,:);
%計算網路輸出f值
f=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
%%建立rbf神經網路
net=newrb(x,f);
%%建立測試樣本
interval=0.1;
[i,j]=meshgrid(-1.5:interval:1.5);
row=size(i);
tx1=i(:);
tx1=tx1';
tx2=j(:);
tx2=tx2';
tx=[tx1;tx2];
%%使用建立的rbf網路進行模擬,得出網路輸出
ty=sim(net,tx);
%%使用影象,畫出三維圖
%真正的函式影象
interval=0.1;
[x1,x2]=meshgrid(-1.5:interval:1.5);
f=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);
subplot(1,3,1);
mesh(x1,x2,f);
zlim([0,60]);
title('真正的函式影象');
%網路得出的函式影象
v=reshape(ty,row);
subplot(1,3,2);
mesh(i,j,v);
zlim([0,60]);
title('rbf神經網路結果');
%誤差影象
subplot(1,3,3);
mesh(x1,x2,f-v);
zlim([0,60]);
title('誤差影象');
set(gcf,'position',[300,250,900,400])
結果影象:
結論,可以看出神經網路的訓練結果能夠較好逼近該非線性函式f,由誤差圖可知,實景網路的**效果在資料邊緣處的誤差較大,在其它書指出的擬合效果很好,網路的輸出值與函式值之間的插值在隱藏層神經元的個數為100時已經接近0,說明網路輸出能非常好地逼近函式。
matlab自相關函式 隨機過程中的相關函式的作用
先看問題 1 為什麼在分析隨機過程的時候,得到隨機過程的自相關函式就終止了,不再繼續往下走了?2 考慮隨機過程 1 得到自相關函式之後能做什麼 自相關函式得到之後,自然可以得到 進行多元相關性分析之後,便可以對整個樣本函式進行分析了。2 對隨機過程的認識,需要從兩個方向進行。乙個是隨機變數 乙個是時...
RBF神經網路以及相關的問題
徑向基函式 radial basis function,rbf 是乙個取值僅取決於到原點距離的實值函式,也可以是到任意一中心點的距離,任何乙個滿足上述特性的函式都可以稱為rbf。我們可以從網上看到許多的rbf神經網路的介紹,這裡就不再過多的進行闡述了,主要來說下rbf神經網路的相關問題。1 rbf神...
Matlab實現使用割線方法計算單變數函式的根
給定初始猜測值,secant method 函式使用割線方法找到單變數函式的根。公差和最大迭代次數也可以指定為可選輸入。此函式無意替代matlab的 fzero 後者使用了二等分,割線和反向二次插值方法。示例root secant method f,x0 root secant method f,x...