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

📄 perceptive_138.m

📁 利用双层感知器神经网络处理线性不可分的分类问题
💻 M
字号:
% 单层感知器神经网络不能解决线性不可分的输入向量的分类问题,解决这一问题的办法是:对输入的线性不可分向量进行预处理,使其能够线性可分。实现这种方法的途径之一是采用竞争网络对输入向量进行预处理;另一个办法是采用随机感知器作为输入向量的预处理层。在本例中,将采用第二种方法,利用双层感知器神经网络来完成。
clf reset
figure(gcf)
%setfsize(300,300);
echo on
clc

% INITP -对感知器神经元初始化
% SIMUP -对感知器神经元仿真
% TRAINP -利用感知器学习规则对感知器神经元训练
pause  
clc
% P 为输入向量
P=[-0.5 -0.5 +0.3 -0.1 -0.8;
   -0.5 +0.5 -0.5 +1.0 +0.0];
% T 为目标向量
T = [1 1 0 0 0];
pause 
clc
% 绘出输入向量
plotpv(P,T);
pause
clc
S1=20;
% 定义感知器神经元
[w1,b1]=initp(P,S1);  %预处理层
[w2,b2]=initp(S1,T);  %学习层

pause
clc
% 训练感知器神经元
A1=simup(P,w1,b1);
[w2,b2,epochs,errors] = trainp(w2,b2,A1,T,[-1]);
pause
clc
% 绘制误差曲线
ploterr(errors);
pause
clc
% 利用训练完成的感知器神经元进行分类
p=[0.7;1.2];
a1=simup(p,w1,b1);  %对输入向量预处理
a2=simup(a1,w2,b2)  %分类
echo off

⌨️ 快捷键说明

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