?? bpnet.m
字號:
%定義用4x4布爾量網(wǎng)絡(luò)表示的三個量A,I,O
XA=[1 1 1 1;1 -1 -1 1;1 1 1 1;1 -1 -1 1];
XI=[-1 1 -1 -1;-1 1 -1 -1;-1 1 -1 -1;-1 1 -1 -1];
XO=[1 1 1 1;1 -1 -1 1;1 -1 -1 1;1 1 1 1];
%將每個用4x4布爾量網(wǎng)絡(luò)表示的三個量按列表示,生成輸入矩陣X
X=[XA(:) XI(:) XO(:)];
X
%定義每個量對應(yīng)的目標(biāo)向量,生成目標(biāo)矩陣T
TA=[1;-1;-1];
TI=[-1;1;1];
TO=[-1;-1;1];
T=[TA TI TO];
T
%建立網(wǎng)絡(luò),并獲得權(quán)值和偏值
[R,N1]=size(X);
[S2,N1]=size(T);
S1=9;
net=newff(minmax(X),[S1 S2],{'tansig','tansig'},'traingdx');
w=net.LW{2,1};
b1=net.b{1};
b2=net.b{2};
y1=sim(net,X);
y1
%利用不含有噪聲的理想輸入訓(xùn)練網(wǎng)絡(luò), 并獲得權(quán)值和偏值
net.performFcn='sse'; %平方和誤差函數(shù)
net.trainParam.goal=0.000001; %訓(xùn)練目標(biāo)誤差
net.trainParam.epochs=5000; %訓(xùn)練時間
net.trainParam.show=20; %計算步長
net.trainParam.mc=0.95 %沖量參數(shù)
[net,tr]=train(net,X,T);
w=net.LW{2,1};
b1=net.b{1};
b2=net.b{2};
y2=sim(net,X);
y2
%為使網(wǎng)絡(luò)對輸入有一定的容錯能力,再利用不含和含有噪聲的輸入數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)
net.trainParam.goal=0.001; %訓(xùn)練目標(biāo)誤差
net.trainParam.epochs=500; %訓(xùn)練時間
net1=net;
T1=[T T T T];
for i=1:10
X1=[X X (X+randn(R,N1)*0.1) (X+randn(R,N1)*0.2)];
[net1,tr]=train(net1,X1,T1);
end
y3=sim(net1,X1);
y3
%為使網(wǎng)絡(luò)總能正確對理想信號進(jìn)行識別,再利用理想信號訓(xùn)練網(wǎng)絡(luò)
[net1,tr]=train(net1,X,T);
w=net.LW{2,1};
b1=net.b{1};
b2=net.b{2};
X1=X;
y4=sim(net1,X1)
%求給定輸入時網(wǎng)絡(luò)輸出
X4=[1 1 1 1; 1 -1 -1 1;1 1 1 1;1 1 -1 1];
X1=[X4(:)];
y4=sim(net1,X1)
%求未經(jīng)過噪聲訓(xùn)練的網(wǎng)絡(luò)net的輸出,加以比較
X1=X;
y4=sim(net,X1)
X4=[1 1 1 1; 1 -1 -1 1;1 1 1 1;1 1 -1 1];
X1=[X4(:)];
y4=sim(net,X1)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -