導航:首頁 > 網路設置 > 神經網路matlab最大迭代次數設置

神經網路matlab最大迭代次數設置

發布時間:2022-09-14 18:14:06

『壹』 (急)如何用MATLAB建立ANN(人工神經網路模型)

問題描述:
有兩個自變數,一個因變數,10個樣本(這里就取少一點好了)。用實際問題來表述,假設一個股票,開盤價 x1,收盤價 x2,第二天的股價 y。 那用神經網路來預測的目的是,根據10天的開盤價和收盤價,來預測未來股價。顯然,這里的y與x1和x2相關,我們要訓練一個網路(net)來讓他盡可能的預測一個y

MATLAB程序

clc
clear
load data input output
%input就是包含了x1和x2 10天數據的矩陣,說白了就是20個數的矩陣。output是y的一個向量,%10個數
%需要自己找一些數據賦值給input和ouput

P=input;
T=output;
%這里P和T必須是 x1 x2和y的行向量組合。對於P,x1是行向量,x2是行向量。P=[x1;x2]; T=y. y是行向量

Epochs=5000;
NodeNum=12; TypeNum=1;
TF1='logsig'; TF2='purelin';
%設置一些初始參數,Epochs是迭代上限次數,NodeNum是第一個隱藏層的神經元個數,%TypeNum是幾層。TF1和TF2分別定義了幾個傳遞函數。

net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
%建立一個神經網路,訓練輸入和輸出數據都有了,設置隱藏層的個數。

net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-4;
net.trainParam.min_grad=1e-4;
net.trainParam.show=200;
net.trainParam.time=inf;
%設置一些訓練時的參數,第一個是每次訓練的最大迭代次數;

net=train(net,P,T);
%開始網路訓練

P_test=P;
B_test=T;
%就用原始的數據進行測試

X=sim(net,P_test);
%測試

Erro=abs(B_test-X);
sigma=std(Erro);
%計算出預測值和實際值的誤差,求出方差。將來方差可以用來隨機調整

『貳』 如何設置matlab優化設計中的迭代次數

一般根據迭代過程的應變數的偏差Y(n)-Y(n-1)小於一個極小值如1e-6來控制迭代次數。

『叄』 請教matlab如何增加迭代次數

OPTIONS = optimset(OLDOPTS,'PARAM1',VALUE1,...) creates a of OLDOPTS
with the named parameters altered with the specified values.
這是matlab中help文件給出的。options= optimset('MaxIter',100000)這樣就設置了最大的迭代次數為100000次。

『肆』 MATLAB中SOR迭代法如何球迭代次數及迭代後的值

function
[x
n]=sor(A,b,x0,w,eps,M)
%x值
%n迭代次數
%
A系數矩陣
%
b
方程組右端項
%
w
鬆弛因子
%
eps
精度要求,默認1e-5
%
M
最大迭代次數,默認100

『伍』 人工神經網路單輸入單輸出系統怎麼實現(matlab)

MATLAB寫的:
(輸入輸出隱層節點數都可以改的)
clear all
inputnums=3;%輸入層節點
outputnums=1;%輸出層節點
hidenums=7;%隱層節點
maxcount=50000;%最大迭代次數
samplenum=19;%一個計數器,無意義
precision=0.00001;%預設精度
yyy=1.3;%yyy是幫助網路加速走出平坦區
alpha=0.02;%學習率設定值
a=0.9;%BP優化演算法的一個設定值,對上組訓練的調整值按比例修改
error=zeros(1,maxcount+1);%error數組初始化;目的是預分配內存空間
errorp=zeros(1,samplenum);%同上
v=rand(inputnums,hidenums);%1*10;v初始化為一個1*10的隨機歸一矩陣;v表輸入層到隱層的權值
deltv=zeros(inputnums,hidenums);%1*10;內存空間預分配
dv=zeros(inputnums,hidenums);%1*10;

w=rand(hidenums,outputnums);%10*1
deltw=zeros(hidenums,outputnums);%10*1
dw=zeros(hidenums,outputnums);%10*1

samplelist=1:0.5:10;%樣本輸入值
expectlist=samplelist.^(-1);%期望輸出值
%expectlist=exp(-samplelist);
[samplelist,minp,maxp]=premnmx(samplelist);
%[expectlist,mint,maxt]=premnmx(expectlist);
count=1;
while(count<=maxcount)%結束條件1迭代20000次
c=1;
while(c<=samplenum)
for k=1:outputnums
d(k)=expectlist(c);%獲得期望輸出的向量
end
for i=1:inputnums
x(i)=samplelist(c);%獲得輸入的向量數據
end

%forward();
for j=1:hidenums
net=0.0;
for i=1:inputnums
net=net+x(i)*v(i,j);%輸入層到隱層的加權和
end
y(j)=1/(1+exp(-net));%輸出層處理f(x)=1/(1+exp(-x)),單極性sigmiod函數
%y(j)=1/net;%輸出層處理f(x)=1/(1+exp(-x)),單極性sigmiod函數
end
for k=1:outputnums
net=0.0;
for j=1:hidenums
net=net+y(j)*w(j,k);
end
if count>=2&&error(count)-error(count-1)<=0.0001
o(k)=1/(1+exp(-net)/yyy);%平坦區加大學習率
%o(k)=1/(net/yyy);%平坦區加大學習率
else o(k)=1/(1+exp(-net));%同上
%else o(k)=1/net;%同上
end
end

%BpError(c)反饋/修改
errortmp=0.0;
for k=1:outputnums
errortmp=errortmp+(d(k)-o(k))^2;%第一組訓練後的誤差計算
end
errorp(c)=0.5*errortmp;%誤差E=∑(d(k)-o(k))^2 * 1/2
%end
%backward();
for k=1:outputnums
yitao(k)=(d(k)-o(k))*o(k)*(1-o(k));%輸出層誤差偏導
end
for j=1:hidenums
tem=0.0;
for k=1:outputnums
tem=tem+yitao(k)*w(j,k);%為了求隱層偏導,而計算的求和
end
yitay(j)=tem*y(j)*(1-y(j));%隱層偏導
end

%調整各層權值
for j=1:hidenums
for k=1:outputnums
deltw(j,k)=alpha*yitao(k)*y(j);%權值w的調整量deltw(已乘學習率)
w(j,k)=w(j,k)+deltw(j,k)+a*dw(j,k);%權值調整,這里的dw=deltw(t-1),實際是對BP演算法的一個改進措施--增加動量項目的是提高訓練速度
dw(j,k)=deltw(j,k);
end
end
for i=1:inputnums
for j=1:hidenums
deltv(i,j)=alpha*yitay(j)*x(i);%同上deltw
v(i,j)=v(i,j)+deltv(i,j)+a*dv(i,j);
dv(i,j)=deltv(i,j);
end
end
c=c+1;
end%第二個while結束;表示一次BP訓練結束
double tmp;
tmp=0.0;
for i=1:samplenum
tmp=tmp+errorp(i)*errorp(i);%誤差求和
end
tmp=tmp/c;
error(count)=sqrt(tmp);%誤差求均方根,即精度
if(error(count)<precision)%求另一個結束條件
break;
end
count=count+1;%訓練次數加1
end%第一個while結束
error(maxcount+1)=error(maxcount);
p=1:count-1;
plot(p,error(p),'-');%顯示誤差
p=1:1:10;
t=p.^(-1);
%t=exp(-p);
[pn,minpn,maxpn]=premnmx(p);

simt=zeros(1,10);
%while(a<=9)
for i=1:10
x=pn(i);%獲得輸入的向量數據
for j=1:hidenums
net=0.0;

net=net+x*v(1,j);%輸入層到隱層的加權和

y(j)=1/(1+exp(-net));%輸出層處理f(x)=1/(1+exp(-x)),單極性sigmiod函數
%y(j)=1/net;%輸出層處理f(x)=1/(1+exp(-x)),單極性sigmiod函數
end

net=0.0;
for k=1:hidenums
net=net+y(k)*w(k,1);
end
o=1/(1+exp(-net));
simt(i)=o;

end
% simt=postmnmx(simt,mint,maxt);
figure;
plot(p,t,'*',p,simt,'-');
請參考

『陸』 matlab中如何獲取神經網路訓練之後的迭代次數

多種方法途徑可以獲取,如訓練後,運行以下語句:

nntraintool

--------------出現窗口中的Progress-epoch顯示迭代次數

閱讀全文

與神經網路matlab最大迭代次數設置相關的資料

熱點內容
網路貓有無線網路 瀏覽:974
蘋果手機中連接網路的東西是什麼 瀏覽:262
海康7808nk2錄像機設置網路 瀏覽:103
網路沒信號什麼情況 瀏覽:379
保定市網路安全與信息化建設管理辦法 瀏覽:615
電腦如何加入wifi網路 瀏覽:644
路由器網路關了怎麼用手機打開 瀏覽:482
網路路由器老是掉線怎麼回事 瀏覽:491
雲南廣電網路路由器 瀏覽:799
為企業網路安全護航 瀏覽:697
移動網路到周末不好 瀏覽:472
網路安全法倡導網路行為 瀏覽:653
電腦沒網網路適配器正常 瀏覽:652
免費網路平台哪個好 瀏覽:181
有無需網路的手機傳奇 瀏覽:902
防禦網路安全作文 瀏覽:965
手提電腦用哪個網路不卡 瀏覽:440
網路詞溫度是什麼意思 瀏覽:535
網路公司能看到哪個寬頻在用嗎 瀏覽:872
f404網路無法連接 瀏覽:707

友情鏈接