資源簡介
該代碼為matlab編碼,利用思維進化算法優化BP神經網絡的權值和閾值。

代碼片段和文件信息
function?initpop?=?initpop_generate(popsizeS1S2S3PT)
%?編碼長度(權值/閾值總個數)
S?=?S1*S2?+?S2*S3?+?S2?+?S3;
%?預分配初始種群數組
initpop?=?zeros(popsizeS+1);
for?i?=?1:popsize
????%?隨機產生一個個體[-11]
????x?=?rand(1S)*2?-?1;
????
????%?前S1*S2個編碼為W1(輸入層與隱含層間權值)
????temp?=?x(1:S1*S2);
????W1?=?reshape(tempS2S1);
????
????%?接著的S2*S3個編碼為W2(隱含層與輸出層間權值)
????temp?=?x(S1*S2+1:S1*S2+S2*S3);
????W2?=?reshape(tempS3S2);
????%?接著的S2個編碼為B1(隱含層神經元閾值)
????temp?=?x(S1*S2+S2*S3+1:S1*S2+S2*S3+S2);
????B1?=?reshape(tempS21);
????%接著的S3個編碼B2(輸出層神經元閾值)
????temp?=?x(S1*S2+S2*S3+S2+1:end);
????B2?=?reshape(tempS31);
????
????%?計算隱含層神經元的輸出
????A1?=?tansig(W1*PB1);
????%?計算輸出層神經元的輸出
????A2?=?purelin(W2*A1B2);
????%?計算均方誤差
????SE?=?mse(T-A2);
????%?思維進化算法的得分
????val?=?1?/?SE;
????%?個體與得分合并
????initpop(i:)?=?[x?val];
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????46375??2009-12-14?15:38??思維進化算法應用于優化BP神經網絡的初始權值和閾值\data.mat
?????文件????????987??2013-01-30?19:13??思維進化算法應用于優化BP神經網絡的初始權值和閾值\initpop_generate.m
?????文件????????125??2013-01-30?13:22??思維進化算法應用于優化BP神經網絡的初始權值和閾值\ismature.m
?????文件???????8032??2013-09-02?16:28??思維進化算法應用于優化BP神經網絡的初始權值和閾值\main.m
?????文件????????344??2013-09-02?16:32??思維進化算法應用于優化BP神經網絡的初始權值和閾值\Readme.txt
?????文件????????982??2013-01-30?19:15??思維進化算法應用于優化BP神經網絡的初始權值和閾值\subpop_generate.m
?????目錄??????????0??2019-03-17?13:07??思維進化算法應用于優化BP神經網絡的初始權值和閾值
-----------?---------??----------?-----??----
????????????????56845????????????????????7
- 上一篇:人工神經網絡預測matlab
- 下一篇:計算一維信號計盒維數matlab程序
評論
共有 條評論