?? bp_example1.m
字號(hào):
%--------------------------------------------------------------------------
% 利用BP網(wǎng)絡(luò)對(duì)一個(gè)簡(jiǎn)單的非線性神經(jīng)元進(jìn)行訓(xùn)練。
%
% initff—對(duì)前向網(wǎng)絡(luò)初始化
% simuff—對(duì)前向網(wǎng)絡(luò)仿真
% tbp1—訓(xùn)練一層前向網(wǎng)絡(luò)
% trainbp--用BP算法訓(xùn)練前向網(wǎng)絡(luò)
%--------------------------------------------------------------------------
clf; % 從當(dāng)前圖形窗口刪除所有圖形對(duì)象,恢復(fù)圖形窗口屬性的默認(rèn)設(shè)置
figure(gcf); % gcf--獲得當(dāng)前圖形窗口的句柄
% set(gcf,300,300);
% set(gcf, 'PaperPosition', [2 1 4 2]);
echo on; % 允許在屏幕上顯示批處理命令行
clc;
p=[-3 2]; % p為輸入矢量
t=[0.4 0.8]; % t為目標(biāo)矢量
pause;
clc;
wv=-4:0.4:4; % wv: 權(quán)值行向量
bv=-4:0.4:4; % bv: 閾值行向量
es=errsurf(p,t,wv,bv,'logsig'); % 單輸入神經(jīng)元的誤差曲面,轉(zhuǎn)移函數(shù)為對(duì)數(shù)S型
plotes(wv,bv,es,[60 30]); % 畫出單輸入神經(jīng)元的誤差曲面,[60 30]是視角
pause;
clc;
[w,b]=initff(p,t,'logsig'); % 初始化神經(jīng)元,w是權(quán)值,b是閾值
echo off;
k=pickic(1);
if k==2
w=-2.1617;
b=-1.7863;
elseif k==3
subplot(1,2,2);
h=context('*CLICK ON ME*');
[w,b]=ginput(1);
delete(h);
end
echo on;
clc;
% 訓(xùn)練方法一
% df=5; % 學(xué)習(xí)過程顯示頻率
% me=100; % 最大訓(xùn)練步數(shù)
% eg=0.01; % 誤差指標(biāo)
% lr=2; % 學(xué)習(xí)率
% [w,b,ep,tr]=tbp1(w,b,'logsig',p,t,[df me eg lr],wv,bv,es,[60 30]); % 訓(xùn)練一層前向網(wǎng)絡(luò)
% 訓(xùn)練方法二
disp_freq=1;
max_epoch=100;
err_goal=0.001;
lr=2;
tp=[disp_freq max_epoch err_goal lr];
[w,b,epochs,tr]=trainbp(w,b,'logsig',p,t,tp); % 用BP算法訓(xùn)練前向網(wǎng)絡(luò)
pause;
clc;
ploterr(tr); % 畫出誤差曲線
pause;
clc;
p=[-1.2]; % 利用訓(xùn)練完的感知器神經(jīng)元進(jìn)行分類
a=simuff(p,w,b,'logsig') % 對(duì)輸入矢量預(yù)處理
echo off;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -