单层感知器由一个线性组合器和一个二值阈值元件组成。

输入是一个N维向量 x=[x1,x2,...,xn],其中每一个分量对应一个权值wi,隐含层输出叠加为一个标量值:

随后在二值阈值元件中对得到的v值进行判断,产生二值输出:

可以将数据分为两类。实际应用中,还加入偏置,值恒为1,权值为b。这时,y输出为:

单层感知器结构图:

单层感知器进行模式识别的超平面由下式决定:

当维数N=2时,输入向量可以表示为平面直角坐标系中的一个点。此时分类超平面是一条直线:

这样就可以将点沿直线划分成两类。

单层感知器实例:

.....重复上步骤,直到达到设定的loop值,或者误差小于设定值

%perception_hand_un.m%%清理

clear,clc

close all%%n=0.1; %学习率

w=[0,0,0];

P=[ -9, 1, -12, -4, 0, 5;...15, -8, 4, 5, 11, 9];

d=[1,1,0,0,0,1]; %期望输出

P=[ones(1,6);P];

MAX=100; %最大迭代次数为100次%%训练

i=0;while 1v=w*P;

y=hardlim(v); %实际输出%更新

e=(d-y);

ee(i+1)=mae(e);if (ee(i+1)<0.001) %判断

disp('we have got it:');

disp(w);break;

end%更新权值和偏置

w=w+n*(d-y)*P';

if (i>=MAX) %达到最大迭代次数,退出

disp('MAX times loop');

disp(w);

disp(ee(i+1));break;

end

i= i+1;

end%%显示

figure;

subplot(2,1,1); %显示待分类的点和分类结果

plot([-12 -4 0],[ 4 5 11],'o');

hold on;

plot([-9 ,1,5],[15,-8,9],'*');

axis([-13,6,-10,16]);

legend('第一类','第二类');

title('6个坐标点的二分类');

x=-13:.2:6;

y=x*(-w(2)/w(3))-w(1)/w(3);

plot(x,y);

hold off;

subplot(2,1,2); %显示mae值的变化

x=0:i;

plot(x,ee,'o-');

s=sprintf('mae的值(迭代次数:%d)', i+1);

title(s);

% perception_newp.m

% 清理

clear,clc

close all

% 创建感知器

net=newp([-20,20;-20,20],1);

%定义输入训练向量

P=[ -9, 1, -12, -4, 0, 5;...

15, -8, 4, 5, 11, 9];

% 期望输出

T=[0,1,0,0,0,1]

% 训练

net=train(net,P,T);

% 输入训练数据仿真验证

Y=sim(net,P)

matlab单层感知器画线,MATLAB神经网络学习(1):单层感知器相关推荐

  1. matlab中plot函数画线时 颜色和类型

    转自 https://blog.csdn.net/garfielder007/article/details/50449140 matlab里plot函数画线时有很多的颜色和类型可以选择,下面列举一些 ...

  2. Matlab的plot函数画线显示空白问题解决

    Matlab的plot函数画线无法显示问题解决 前言:在使用matlab中的plot函数画图时,没有任何报错,但是画不出线,却能画出点.在查阅资料后找到问题的原因. 这里我们使用y=x^2图像来进行分 ...

  3. MATLAB plot函数,画线标记数据点(实线、虚线、改变颜色)

    数据点画圈: 实线: plot(time1,'o-'); 结果: 虚线: plot(time1,'--o'); 结果: 画线换颜色 plot(time1,'o--r'); 结果:

  4. Matlab中的color 画线的多种颜色

    一.转自:http://blog.sina.com.cn/s/blog_03f96e310106lped.html 注意:MATLAB中调色板色彩强度[0,1],0代表最暗,1代表最亮.        ...

  5. matlab标线,如何在matlab中以方位角画线?

    你最好的办法是依靠一个内置的极性绘图功能做到这一点.我认为与您的需求最相似的是compass.它基本上绘制了一个箭头,从中心指向一个极坐标图上的一个点(以笛卡尔坐标定义). theta = deg2r ...

  6. matlab 刷新图像,MATLAB三维画图、画线、动态刷新、不同视角、自动保存多张图像...

    作者:金良(golden1314521@gmail.com) csdn博客:http://blog.csdn.net/u012176591 效果图(http://www.tuyitu.com/gif/ ...

  7. matlab统计文本数据画直方图,matlab从txt中读取某列数据画直方图

    今天本来出去吃饭,回来准备咸鱼躺,结果室友问我matlab的直方图的问题,那就把首次博客内容定为直方图吧.txt中部分数据: 10000000 1E-09 1E-09 -0.0002816916 0. ...

  8. matlab一直系统函数画脉冲响应,MATLAB之使用 impz 函数计算并画出脉冲响应

    EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x ' C" [+ n1 g# Q- ]" A这篇在于讨论 impz 函数的使用. |9 u8 v8 }& ...

  9. matlab电磁场图像如何画,利用matlab实现矩形波导电磁场分布图的绘制

    利用matlab实现矩形波导电磁场分布图的绘制 利用 Matlab 实现矩形波导电磁场分布图的绘制(附源程序)通过 Matlab 计算并绘出任意时刻金属矩形波导的主模 TE10 模的电磁场分布图.波导 ...

  10. matlab一直系统函数画脉冲响应,Matlab 相关分析法求系统脉冲响应(三)

    第三部分:相关改进 基本采用(二)中的做法,只是在y的求解摒弃了原理中介绍的方法,直接用matlab自带的lsim函数求解,使本例更有通用性. 源代码: function mytemp clear a ...

最新文章

  1. linux存储--线程与栈(十五)
  2. JavaScript try/catch/finally 语句
  3. goland 远程调试go_手把手教你学Go语言,基础环境配置和Hello World
  4. ConcurrentHashMap之实现细节
  5. js怎么把函数字符串转成函数_字符串处理函数
  6. [BZOJ] 1688: [Usaco2005 Open]Disease Manangement 疾病管理
  7. ldap radius_在LDAP上使用RADIUS的好处
  8. 为什么vacuum后表还是继续膨胀?
  9. 学习Web前端,前景无限光明?
  10. Linux运维基础入门(二):网络基础知识梳理02
  11. Internet信息服务(IIS)管理器--IIS部署发布网站
  12. 全面分析游戏限制多开原理
  13. 安卓电子书格式_读出我的潮流!——全新焕彩Kindle Paperwhite亚马逊电子书阅读器...
  14. 精华文章置顶--使用VSCode 进行IRIS 开发
  15. 磁控微型机器人将干细胞带到难以到达的人体器官
  16. 以作回顾、以作借鉴、以作鼓励
  17. mysql不识别生僻字_MySQL生僻字(不常用字)的完整解决方案
  18. curl: (60) Peer‘s Certificate issuer is not recognized
  19. Linux系统 PDF转图片
  20. pyQT5 AES 加解密

热门文章

  1. 了解一些FMS的基本概念
  2. CF1137E Train Car Selection(单调栈维护凸函数)
  3. 如何突破织梦后台发布文章的250字符的内容摘要字数限制
  4. 000 初步使用Kotlin开发Android应用
  5. maven编译,控制台中文乱码解决方案
  6. 查询同一组的最大最小值及明细
  7. jQuery 文档操作方法 (四)
  8. 为什么mfc要注册WNDCLASS样式
  9. cout和printf的区别
  10. 计算机知识认证,[IT认证]计算机基础知识.ppt