我是靠谱客的博主 犹豫绿茶,最近开发中收集的这篇文章主要介绍二样本感知器的matlab程序设计1. 题目2. 解答:3. 总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 目录

1. 题目

2. 解答:

3. 总结


今天就来写作业啦!

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环境截图

手工书写计算过程

设:w1x1+w2x2=0, w1=0;w2=0

S1:w1x1+w2x2=0x2+0x1=0

S2:w1x1+w2x2=0x1+0x3=0

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

S1:w1x1+w2x2=-2x2+-1x1=-5<0

S2:w1x1+w2x2=-2x1+-1x3=-5<0

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

S1:w1x1+w2x2=-1x2+2x1=0

S2:w1x1+w2x2=-1x1+2x3=5>0

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

S1:w1x1+w2x2=-3x2+1x1=-5

S2:w1x1+w2x2=-3x1+1x3=0

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

S1:w1x1+w2x2=-2x2+4x1=0

S2:w1x1+w2x2=-2x1+4x3=10

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

S1:w1x1+w2x2=-4x2+3x1=-5<0

S2:w1x1+w2x2=-4x1+3x3=5>0

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 

3. 总结

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

完整版程序和GIF生成见: matlab二样本感知器设计 

最后

以上就是犹豫绿茶为你收集整理的二样本感知器的matlab程序设计1. 题目2. 解答:3. 总结的全部内容,希望文章能够帮你解决二样本感知器的matlab程序设计1. 题目2. 解答:3. 总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部