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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab神经网络每次相差大,GA-BP网络为什么每次训练的结果相差很大呢?

發布時間:2023/12/31 循环神经网络 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab神经网络每次相差大,GA-BP网络为什么每次训练的结果相差很大呢? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼貼上來了

function [tsp mint maxt net]=GABPNET(XX,YY,YJ,SCC)

%XX輸入的訓練樣本與測試樣本

%YY訓練樣本輸出值

%YJ隱層節點數

%SCC輸出層節點數

%tsp訓練樣本及測試樣本輸出值,列對應列

%反歸一化參數mint,maxt(y=[x,mint,maxt])

%net訓練好的神經網絡

%--------------------------------------------------------------------------

%??GABPNET.m

%??使用遺傳算法對BP網絡權值閾值進行優化,再用BP算法訓練網絡

%--------------------------------------------------------------------------

clear all

clc

global S1;

YJ=10;SCC=1;

%數據歸一化預處理

day=subfv;

XX=day(:,1:5)';

[XX,minp,maxp] = premnmx(XX);

%****************其他使用者這里必須修改************

YY=day(:,6)';

[YY,mint,maxt] = premnmx(YY);

%創建網絡

S1=YJ;

net=newff(minmax(XX),[S1,SCC],{'tansig','tansig','purelin'},'trainlm');

%下面使用遺傳算法對網絡進行優化

P=XX;

T=YY;

R=size(P,1);

S2=size(T,1);

S=R*S1+S1*S2+S1+S2;%遺傳算法編碼長度

aa=ones(S,1)*[-1,1];

popu=50;%種群規模

save data2 XX YY % 是將 xx,yy 二個變數的數值存入 data2 這個MAT-file,

initPpp=initializega(popu,aa,'gabpEval');%初始化種群

gen=100;%遺傳代數

%下面調用gaot工具箱,其中目標函數定義為gabpEval

[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPpp,[1e-6 1 1],'maxGenTerm',gen,...

'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);

%繪收斂曲線圖

figure(1)

plot(trace(:,1),1./trace(:,3),'r-');

hold on

plot(trace(:,1),1./trace(:,2),'b-');

xlabel('Generation');

ylabel('Sum-Squared Error');

figure(2)

plot(trace(:,1),trace(:,3),'r-');

hold on

plot(trace(:,1),trace(:,2),'b-');

xlabel('Generation');

ylabel('Fittness');

%下面將初步得到的權值矩陣賦給尚未開始訓練的BP網絡

[W1,B1,W2,B2,P,T,A1,A2,SE,val]=gadecod(x);

net.iW{1,1}=W1;

net.LW{2,1}=W2;

net.b{1,1}=B1;

net.b{2,1}=B2;

XX=P;

YY=T;

%設置訓練參數

net.trainParam.show=100;

net.trainParam.lr=0.1;

net.trainParam.epochs=5000;

net.trainParam.goal=0.0001;

%訓練網絡

net=train(net,XX,YY);

y=sim(net,XX);

p2=[0.0909??0.6500??2.3895??0.8983??0.8520

0.1429??0.7500??2.0571??0.9855??0.8724

0.0769??0.6500??1.8432??1.0372??0.8653

0.2000??0.7500??1.8432??1.0372??0.8653

0.0769??0.6700??2.3256??0.9151??0.8802

0.0625??0.7300??2.5762??0.8501??0.7776

0.1429??0.7000??1.6233??1.0780??0.5834

0.1761??0.7270??2.1100??0.9719??0.8728

0.2000??0.6800??2.2200??0.9430??0.9263

0.1250??0.6000??2.0533??0.9865??0.8029

0.1429??0.7200??2.0840??0.9786??0.7771

0.1351??0.6910??2.2916??0.9241??0.8106

0.1429??0.6000??2.4423??0.8845??0.6881

]';

%p2=p2';

p2n=tramnmx(p2,minp,maxp);

a2n=sim(net,p2n);

a2=postmnmx(a2n,mint,maxt)

t2=[3.3000

3.3300

0.7400

12.0300

0.4500

0.7562

2.0167

3.8670

1.7100

0.7700

2.1540

1.7100

0.7600

]';

xxxx=1:13

figure(3)

plot(xxxx,t2,'*b-')

hold on

plot(xxxx,a2,'or-')

hold off

figure(4)

wuc=t2-a2

plot(1:13,wuc,'*--')

總結

以上是生活随笔為你收集整理的matlab神经网络每次相差大,GA-BP网络为什么每次训练的结果相差很大呢?的全部內容,希望文章能夠幫你解決所遇到的問題。

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