⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bp_example1.m

📁 利用BP网络对一个简单的非线性神经元进行训练
💻 M
字号:
%--------------------------------------------------------------------------
% 利用BP网络对一个简单的非线性神经元进行训练。
%
% initff—对前向网络初始化
% simuff—对前向网络仿真
% tbp1—训练一层前向网络
% trainbp--用BP算法训练前向网络
%--------------------------------------------------------------------------
clf;  % 从当前图形窗口删除所有图形对象,恢复图形窗口属性的默认设置
figure(gcf);    % gcf--获得当前图形窗口的句柄
% set(gcf,300,300);
% set(gcf, 'PaperPosition', [2 1 4 2]);
echo on;    % 允许在屏幕上显示批处理命令行
clc;
p=[-3 2];     % p为输入矢量
t=[0.4  0.8];   % t为目标矢量
pause;
clc;
wv=-4:0.4:4;    % wv: 权值行向量
bv=-4:0.4:4;    % bv: 阈值行向量
es=errsurf(p,t,wv,bv,'logsig'); % 单输入神经元的误差曲面,转移函数为对数S型
plotes(wv,bv,es,[60  30]);  % 画出单输入神经元的误差曲面,[60 30]是视角
pause;
clc;
[w,b]=initff(p,t,'logsig');    % 初始化神经元,w是权值,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;
% 训练方法一
% df=5;   % 学习过程显示频率
% me=100; % 最大训练步数
% eg=0.01;    % 误差指标
% lr=2;   % 学习率
% [w,b,ep,tr]=tbp1(w,b,'logsig',p,t,[df me eg lr],wv,bv,es,[60 30]);    % 训练一层前向网络

% 训练方法二
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算法训练前向网络
pause;
clc;
ploterr(tr);    % 画出误差曲线
pause;
clc;
p=[-1.2];    % 利用训练完的感知器神经元进行分类
a=simuff(p,w,b,'logsig')  % 对输入矢量预处理
echo off;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -