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

📄 perceptron_example1.m

📁 采用单一感知器神经元解决一个简单的分类问题
💻 M
字号:
%--------------------------------------------------------------------------
% 采用单一感知器神经元解决一个简单的分类问题,将四个输入矢量分为两类,其中
% 两个矢量对应的目标值为1,另两个矢量对应的目标值为0
%
% initp—对感知器神经网络初始化,初始化权值和阈值
% simup—对感知器神经元仿真
% trainp—利用感知器学习规则对感知器神经元训练
%--------------------------------------------------------------------------
clf reset;  % 从当前图形窗口删除所有图形对象,除"Position, Units, PaperPosition, and PaperUnits"
            %等属性外。恢复图形窗口其他属性的默认设置
figure(gcf);    % gcf--获得当前图形窗口的句柄
% set(gcf,300,300);
% set(gcf, 'PaperPosition', [2 1 4 2]);
echo on;    % 允许在屏幕上显示批处理命令行
clc;
p=[-0.5 -0.5 0.3 0;  -0.5 0.5 -0.5 1];    % p为输入矢量
t=[1 1 0 0];    % t为目标矢量
plotpv(p,t);    % 画出感知器的输入/目标矢量
pause;
clc;
[w,b]=initp(p,t);    % 定义感知器神经元,w是权值矩阵,b是阈值矩阵\
% 试分析:w和b的大小?
pause;
% w是1*2的矩阵,b是1*1的变量
%
%
% 试分析:为什么w不是2*1的矩阵
pause;
% 与输入矢量p的数值排列有关
pause;
echo off;   % 禁止在屏幕上显示批处理命令行
clc
k=pickic;
if k==2
    w=[-0.8161  0.3078];
    b=[-0.1680];
end
echo on;
clc;
plotpc(w,b);    % 在感知器矢量图图上,画出与初始权值和阈值对应的分类线
pause;
clc;
[w,b,epochs,errors]=trainp(w,b,p,t,-1);    % 训练感知器神经元
pause;
clc;
ploterr(errors);    % 画出误差曲线
pause;
clc;
plotpv(p,t);
plotpc(w,b);
p=[0.5;  0];     % 利用训练完的感知器神经元进行分类
hold on;
plot(p(1),p(2),'*');
hold off;
% 试分析:对应于输入[0.5;  0]的输出值?
pause;
clc;
a=simup(p,w,b)
echo off;

⌨️ 快捷键说明

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