?? gadecod.m
字號:
function [W1, B1, W2, B2, P, T, A1, A2, SE, val]=gadecod(x)
% 將遺傳算法的編碼分解為BP網絡所對應的權值、閾值
% x 為一個染色體
%輸出:
% W1 為輸入層到隱層權值
% B1 為輸入層到隱層閾值
% W2 為隱層到輸出層權值
% B2 為隱層到輸出層閾值
% P 為訓練樣本
% T 為樣本輸出值
% A1 為輸入層到隱層誤差
% A2 為隱層到輸出層誤差
% SE 為誤差平方和
% val 為遺傳算法的適應值
[P,T,R,S1,S2,Q,S]=nninit;
% 前S1個編碼為W1
for i=1:S1,
W1(i,1)=x(i);
end
% 接著的S1*S2個編碼(即第R*S1個后的編碼)為W2
for i=1:S2,
W2(i,1)=x(i+S1);
end
% 接著的S1個編碼(即第R*S1+S1*S2個后的編碼)為B1
for i=1:S1,
B1(i,1)=x(i+S1+S2);
end
% 接著的S2個編碼(即第R*S1+S1*S2+S1個后的編碼)為B2
for i=1:S2,
B2(i,1)=x(i+S1+S2+S1);
end
% 計算S1與S2層的輸出
[m n] = size(P) ;
sum=0;
SE=0;
for i=1:n
x1=W1*P(i)+B1;
A1=tansig(x1);
x2=W2*A1+B2;
A2=purelin(x2);
% 計算誤差平方和
SE=sumsqr(T(i)-A2);
sum=sum+SE;
end
val=10/sum; % 遺傳算法的適應值
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -