二样本感知器的matlab程序设计

简介: 二样本感知器的matlab程序设计

1. 题目

      感知器的程序设计。样本向量S=(x1,x2),已知两个样本S1、S2,各代表一类样本,S1=(2,1)    可设它>0;S2=(1,3)    可设它<0 。希望设计一个分类器,把它们分开。设初值为  w1=0;w2=0;也可自己设置。通过感知器原理,设计一个直线方程,通过迭代的方法  构建分类器,  确定了二维空间上的一个分界线。


安装程序系统,开启系统环境截图,如有硬件环境等困难可提出。


手工书写计算过程和用计算机程序完成分类器设计

2. 解答:

感知器的程序设计分析:样本向量S=(x1,x2),已知两个样本S1、S2,各代表一类样本,S1=(2,1)可设它<0,S2=(1,3)可设它>0 ,目标函数J=W*S,其中由J1和J2组成。若J1和J2都大于等于0,则更新权重W- S1;若J1和J2都小于等于0,则更新权重W + S2;直到J1和J2异号,则分类完毕。

具体代码见本文中ganzhiqi_movie.m,效果见test.gif

开启MATLAB环境截图

2.1.png

手工书写计算过程

2.2.png

设:w1x1+w2x2=01.png, w1=0;w2=0

S1:w1x1+w2x2=0x2+0x1=02.png

S2:w1x1+w2x2=0x1+0x3=03.png

w1=0-2=-2;w2=0-1=-1

S1:w1x1+w2x2=-2x2+-1x1=-5<0/4.png

S2:w1x1+w2x2=-2x1+-1x3=-5<05.png

w1=-2+1=-1;w2=-1+3=2

S1:w1x1+w2x2=-1x2+2x1=06.png

S2:w1x1+w2x2=-1x1+2x3=5>07.png

w1=-1-2=-3;w2=2-1=1

S1:w1x1+w2x2=-3x2+1x1=-58.png

S2:w1x1+w2x2=-3x1+1x3=09.png

w1=-3+1=-2;w2=1+3=4

S1:w1x1+w2x2=-2x2+4x1=010.png

S2:w1x1+w2x2=-2x1+4x3=1011.png

w1=-2-2=-4;w2=4-1=3

S1:w1x1+w2x2=-4x2+3x1=-5<012.png

S2:w1x1+w2x2=-4x1+3x3=5>013.png

ganzhiqi_movie.m

clear;clc;close;%清除数据,关闭显示
%w= floor(unifrnd(0,9,1,2))%随机生成初始化权重
w= [0,0];
s=[2 1;1 3];
% 初始化一个电影矩阵
M = moviein(16);
% 创建电影
% figure;
plot(s(1,1),s(2,1),'r>');%画出第一个样本坐标点
hold on;%保持
plot(s(1,2),s(2,2),'g*');%画出第二个样本坐标点
hold on;%保持
plot([-6*w(1,2)/sqrt(w(1,2)^2+w(1,1)^2),6*w(1,2)/sqrt(w(1,2)^2+w(1,1)^2)],[6*w(1,1)/sqrt(w(1,2)^2+w(1,1)^2),-6*w(1,1)/sqrt(w(1,2)^2+w(1,1)^2)]);%画出初始直线
hold on;%保持
title('二样本感知器分类');%表头名称
xlabel('xlabel');%x标签
ylabel('ylabel');%y标签
axis([-4, 4 -4, 4]); %限制x和y的范围
for i=1:50
    j1=w*s(:,1);%计算第一类
    j2=w*s(:,2);%计算第二类
    if((j1>=0)&(j2>=0))%如果两类都大于零
        w=w-s(:,1)';%更新权重
    elseif((j1<=0)&(j2<=0))%如果两类都小于零
        w=w+s(:,2)';%更新权重
    else%如果两类异号结束循环
        break;
    end
    plot([-6*w(1,2)/sqrt(w(1,2)^2+w(1,1)^2),6*w(1,2)/sqrt(w(1,2)^2+w(1,1)^2)],[6*w(1,1)/sqrt(w(1,2)^2+w(1,1)^2),-6*w(1,1)/sqrt(w(1,2)^2+w(1,1)^2)]);%画出更新直线
    hold on;grid on;pause(1);%保持,生成网格,延迟1s
    M(i) = getframe;% 调用getframe函数生成每个帧
    i=i+1;%更新迭代次数
end
movie(M,3);% 调用movie函数将电影动画矩阵M(k)播放3次

test.gif 

1.gif

3. 总结

       本文介绍利用二样本感知器的matlab程序设计,接下来我会记录我的matlab学习记录,很高兴能和大家分享!🤣🤣🤣希望你能有所收获。

目录
相关文章
|
11月前
|
机器学习/深度学习 算法
基于生物地理学的优化算法(BBO)用于训练多层感知器(MLP)【多种算法进行比较】(Matlab代码实现)
基于生物地理学的优化算法(BBO)用于训练多层感知器(MLP)【多种算法进行比较】(Matlab代码实现)
124 0
基于生物地理学的优化算法(BBO)用于训练多层感知器(MLP)【多种算法进行比较】(Matlab代码实现)
|
10月前
|
机器学习/深度学习 传感器 算法
基于matlab计算不等间距样本的一阶和二阶导数
基于matlab计算不等间距样本的一阶和二阶导数
|
11月前
|
机器学习/深度学习 传感器 算法
基于LSTM深度学习网络的人员行走速度识别matlab仿真,以第一视角视频为样本进行跑或者走识别
基于LSTM深度学习网络的人员行走速度识别matlab仿真,以第一视角视频为样本进行跑或者走识别
【MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值
【MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值
|
算法 数据库
m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深度图像
m基于HOG特征提取和GRNN网络的人体姿态识别算法matlab仿真,样本为TOF数据库的RGB-D深度图像
227 0
|
C语言
MATLAB结构化程序设计(四)
MATLAB结构化程序设计(四)
MATLAB程序设计基础(三)
MATLAB程序设计基础(三)
100 0
|
传感器 机器学习/深度学习 分布式计算
基于Matlab实现表征 DSERN 图像传感器的单样本光子计数直方图期望最大化算法 (PCH-EM)
基于Matlab实现表征 DSERN 图像传感器的单样本光子计数直方图期望最大化算法 (PCH-EM)
|
数据安全/隐私保护
【Matlab作业】MATLAB程序设计
【Matlab作业】MATLAB程序设计
|
算法
m基于PSO粒子群优化算法的最优样本组合策略分析matlab仿真
m基于PSO粒子群优化算法的最优样本组合策略分析matlab仿真
152 0
m基于PSO粒子群优化算法的最优样本组合策略分析matlab仿真