| 7 | 1/1 | 返回列表 |
| 查看: 3248 | 回復(fù): 6 | |||
丿無鋒丶丶新蟲 (初入文壇)
|
[求助]
遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值閾值
|
|
我從網(wǎng)上下了一個遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的程序,可是運行后總出現(xiàn)錯誤,不知道哪里錯了,請大俠們幫忙給我檢查一下;源代碼如下: 程序一:GA訓(xùn)練BP權(quán)值的主函數(shù) function net=GABPNET(XX,YY) %-------------------------------------------------------------------------- % GABPNET.m % 使用遺傳算法對BP網(wǎng)絡(luò)權(quán)值閾值進行優(yōu)化,再用BP算法訓(xùn)練網(wǎng)絡(luò) %-------------------------------------------------------------------------- %數(shù)據(jù)歸一化預(yù)處理 nntwarn off XX=premnmx(XX); YY=premnmx(YY); %創(chuàng)建網(wǎng)絡(luò) net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'trainlm'); %下面使用遺傳算法對網(wǎng)絡(luò)進行優(yōu)化 P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隱含層節(jié)點數(shù) S=R*S1+S1*S2+S1+S2;%遺傳算法編碼長度 aa=ones(S,1)*[-1,1]; popu=50;%種群規(guī)模 initPpp=initializega(popu,aa,'gabpEval');%初始化種群 gen=100;%遺傳代數(shù) %下面調(diào)用gaot工具箱,其中目標(biāo)函數(shù)定義為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'); %下面將初步得到的權(quán)值矩陣賦給尚未開始訓(xùn)練的BP網(wǎng)絡(luò) [W1,B1,W2,B2,P,T,A1,A2,SE,val]=gadecod(x); net.LW{2,1}=W1; net.LW{3,2}=W2; net.b{2,1}=B1; net.b{3,1}=B2; XX=P; YY=T; %設(shè)置訓(xùn)練參數(shù) net.trainParam.show=1; net.trainParam.lr=1; net.trainParam.epochs=50; net.trainParam.goal=0.001; %訓(xùn)練網(wǎng)絡(luò) net=train(net,XX,YY); 程序二:適應(yīng)值函數(shù) function [sol, val] = gabpEval(sol,options) % val - the fittness of this individual % sol - the individual, returned to allow for **rckian evolution % options - [current_generation] load data2; nntwarn off XX=premnmx(XX); YY=premnmx(YY); P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隱含層節(jié)點數(shù) S=R*S1+S1*S2+S1+S2;%遺傳算法編碼長度 for i=1:S, x(i)=sol(i); end; [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x); 程序三:編解碼函數(shù) function [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x) load data2; nntwarn off; XX=premnmx(XX); YY=premnmx(YY); P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隱含層節(jié)點數(shù) S=R*S1+S1*S2+S1+S2;%遺傳算法編碼長度 % 前R*S1個編碼為W1 for i=1:S1, for k=1:R, W1(i,k)=x(R*(i-1)+k); end end % 接著的S1*S2個編碼(即第R*S1個后的編碼)為W2 for i=1:S2, for k=1:S1, W2(i,k)=x(S1*(i-1)+k+R*S1); end end % 接著的S1個編碼(即第R*S1+S1*S2個后的編碼)為B1 for i=1:S1, B1(i,1)=x((R*S1+S1*S2)+i); end % 接著的S2個編碼(即第R*S1+S1*S2+S1個后的編碼)為B2 for i=1:S2, B2(i,1)=x((R*S1+S1*S2+S1)+i); end % 計算S1與S2層的輸出 A1=tansig(W1*P,B1); A2=purelin(W2*A1,B2); % 計算誤差平方和 SE=sumsqr(T-A2); val=1/SE; % 遺傳算法的適應(yīng)值 這些命令流直接復(fù)制粘貼到Matlab里面就可以用嗎? |
資源代碼 |
新蟲 (初入文壇)
新蟲 (初入文壇)
木蟲 (小有名氣)
銀蟲 (小有名氣)

新蟲 (初入文壇)

銀蟲 (小有名氣)

| 7 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 一志愿天津大學(xué)化學(xué)工藝專業(yè)(081702)315分求調(diào)劑 +12 | yangfz 2026-03-17 | 12/600 |
|
|---|---|---|---|---|
|
[考研] 初始318分求調(diào)劑(有工作經(jīng)驗) +3 | 1911236844 2026-03-17 | 3/150 |
|
|
[考研] 二本跨考鄭大材料306英一數(shù)二 +3 | z1z2z3879 2026-03-17 | 3/150 |
|
|
[考研] 279分求調(diào)劑 一志愿211 +11 | chaojifeixia 2026-03-19 | 12/600 |
|
|
[考研] 304求調(diào)劑 +7 | 司空. 2026-03-18 | 7/350 |
|
|
[考研] 材料學(xué)碩297已過四六級求調(diào)劑推薦 +11 | adaie 2026-03-19 | 11/550 |
|
|
[考研] 一志愿西南交通 專碩 材料355 本科雙非 求調(diào)劑 +5 | 西南交通專材355 2026-03-19 | 5/250 |
|
|
[考研]
|
簡木ChuFront 2026-03-19 | 8/400 |
|
|
[考研] 261求B區(qū)調(diào)劑,科研經(jīng)歷豐富 +3 | 牛奶很忙 2026-03-20 | 4/200 |
|
|
[考研] 一志愿西安交通大學(xué)材料工程專業(yè) 282分求調(diào)劑 +5 | 楓橋ZL 2026-03-18 | 7/350 |
|
|
[考研] 材料工程專碩調(diào)劑 +5 | 204818@lcx 2026-03-17 | 6/300 |
|
|
[考研] 085601專碩,總分342求調(diào)劑,地區(qū)不限 +5 | share_joy 2026-03-16 | 5/250 |
|
|
[考研] 302求調(diào)劑 +4 | 小賈同學(xué)123 2026-03-15 | 8/400 |
|
|
[論文投稿] 有沒有大佬發(fā)小論文能帶我個二作 +3 | 增銳漏人 2026-03-17 | 4/200 |
|
|
[考研] 考研調(diào)劑 +3 | 淇ya_~ 2026-03-17 | 5/250 |
|
|
[考研] 機械專碩325,尋找調(diào)劑院校 +3 | y9999 2026-03-15 | 5/250 |
|
|
[考研] 0703化學(xué)調(diào)劑 290分有科研經(jīng)歷,論文在投 +7 | 膩膩gk 2026-03-14 | 7/350 |
|
|
[考研] 327求調(diào)劑 +6 | 拾光任染 2026-03-15 | 11/550 |
|
|
[考研] 0856專碩279求調(diào)劑 +5 | 加油加油!? 2026-03-15 | 5/250 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | 呼呼?~+123456 2026-03-14 | 3/150 |
|