使用单层感知器对坐标点进行二分类
来源:互联网 发布:淘宝网商城广场舞服装 编辑:程序博客网 时间:2024/06/04 18:22
单层感知器是最简单的神经网络。在本文用手算和使用工具箱两种方法应用单层感知器,实现对坐标点进行二分类。
一、问题描述
给出平面中的若干点及每个点所属的类型,要求正确地实现分类。在问题中我们给出的是6个点的二分类问题,并且这6个点是线性可分的。
这是一个线性可分问题,输入向量是2维向量,在二维向量中可用一条直线将两个类别正确的分开。对其进行分类的最终结果为,如下图所示:
由于输入向量维数为2,输出向量维数为1,因此,创建的感知器网络拥有2个输入节点,1个输出节点,因此设计网络的结构图为:
在算法中需要求解的是权值ω1、ω2和偏置b。
二、手算
在计算权值ω1、ω2和偏置b的时候是一直利用循环来实现,利用ω=ω+(d-y)P’来进行求解,下面是MATLAB源代码:
%% 坐标点的二类模式分类问题n=0.2; %学习率P = [-9,1,-12,-4,0,5;15,-8,4,5,11,9];d = [0,1,0,0,0,1];P = [ones(1,6);P];w = [0,0,0];MAX = 20;%% 训练i=0;while 1 v = 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'; i = i+1; if (i>=MAX) disp('MAX times loop'); disp(w); disp(ee(i+1)); break; endend%% 显示figure;subplot(2,1,1);plot([-9,-12,-4,0],[15,4,5,11],'o');hold on;plot([1,5],[-8,9],'*');axis([-13,6,-10,16]);legend('第一类','第二类');title('6个坐标点的二分类');x = -13:0.2:6;y = x*(-w(2)/w(3)-w(1)/w(3));plot(x,y);hold off;subplot(2,1,2);x = 0:i;plot(x,ee,'o-');s = sprintf('mae的值(迭代次数:%d)',i+1);title(s);
实验结果如下:
从图中可以看出在迭代了4次之后,达到了预定的范围,并且把两类点进行了分类,计算出的直线为7x-3.4y-0.4=0.
三、使用MATLAB工具箱函数
使用函数newp创建感知器,用train函数对感知器进行训练,最后用sim函数进行仿真验证。感知器主要有2个输入节点、1个输出节点构成。MATLAB代码如下:
clear,clcclose 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);iw = net.iw;b = net.b;w = [b{1},iw{1}];disp(w);%% 显示figure;plot([-9,-12,-4,0],[15,4,5,11],'o');hold on;plot([1,5],[-8,9],'*');axis([-13,6,-10,16]);legend('第一类','第二类');title('6个坐标点的二分类');x = -13:0.2:6;y = x*(-w(2)/w(3)-w(1)/w(3));plot(x,y);hold off;
实验结果如下图:
计算出的直线为7x-3y=0.
阅读全文
0 0
- 使用单层感知器对坐标点进行二分类
- 单层感知器---二分类/线性可分
- tensorflow实现单层感知机对MNIST分类
- 人工神经网络(二)单层感知器
- 人工神经网络(二)单层感知器
- 文本分类算法之--单层感知器的神经网络
- 单层感知器
- 单层感知器神经网络
- 单层感知器
- 单层感知器
- 给定一个样本输入向量P,和目标向量T,设计单层感知机进行分类
- 使用nntool神经网络工具箱建立单层感知器
- 单层感知器-学习实践
- 单层感知器的MATLAB实现
- 单层感知器的MATLAB实现
- 单层感知器的学习与练习
- C语言实现单层感知器
- 神经网络学习之单层感知器
- 如何用Eclipse在Resin中调试Web应用程序
- 关于别的电脑访问node.js建的服务器
- Dijkstra堆优化学习
- Session
- 剑指Offer算法题之已知两种遍历方式重建二叉树--面试题6:重建二叉树
- 使用单层感知器对坐标点进行二分类
- String的常用类
- JAVA关键字整理:static & final & native
- [Visual Studio]MFC游戏开发之回合制对战系统_by书訢
- Filter字符编码过滤器
- 线性表链式存储结构一种实现
- UVA437TheTowerOfBabylon
- php 检测类型的方法
- Android AsyncTask