49、基于归一化感知器的输入向量分类(matlab)

news2024/11/17 22:48:02

1、基于归一化感知器的输入向量分类的原理及流程

归一化感知器是一种分类算法,其原理基于感知器算法,但是在输入向量上进行了归一化处理,以提高算法的性能和稳定性。

流程如下:

  1. 输入向量归一化:对每个输入向量进行归一化处理,将其值缩放到一定的范围内,通常是将每个特征值除以其范数(模长)。
  2. 初始化参数:初始化权重向量和偏置项。
  3. 计算预测值:根据当前的权重向量和偏置项,计算输入向量的预测值。
  4. 判断分类结果:根据预测值判断输入向量的分类结果。
  5. 更新参数:根据分类结果和真实标签之间的差异,更新权重向量和偏置项。
  6. 重复步骤3至步骤5:迭代计算,直至收敛或达到设定的迭代次数。

通过归一化感知器,可以更加准确地区分不同的类别,在处理高维度数据时也可以有效防止输入向量之间的差异对分类结果的影响。

2、归一化感知器的输入向量分类说明

解决问题

2 输入硬限制神经元被训练为将 5 个输入向量分类为两个类别。

说明

一个输入向量比其他输入向量大得多,使用 LEARNPN 进行训练还是很快的。

 3、输入数据

说明

X 中的五个列向量中的每一个都定义了一个二元素输入向量,行向量 T 定义了向量的目标类别。
4 个输入向量的幅值远远小于绘图左上角的第五个向量。
感知器必须将 X 中的 5 个输入向量正确分类为由 T 定义的两个类别。

代码

X = [ -0.5 -0.5 +0.3 -0.1 -40; ...
      -0.5 +0.5 -0.5 +1.0 50];
T = [1 1 0 0 1];
figure(1)
plotpv(X,T);

视图效果

dda9aaeb403d4ee5bd61c8704c2a1ada.png

 3、创建网络

说明

PERCEPTRON 用 LEARPN 规则创建一个新网络,相对于 LEARNP(默认值),该网络对输入向量大小的巨大变化不太敏感。
用输入数据和目标数据对该网络进行配置,得到其权重和偏置的初始值。

代码

net = perceptron('hardlim','learnpn');
net = configure(net,X,T);

4、将神经元的最初分类尝试添加到绘图中

说明

初始权重设置为零,因此任何输入都会生成相同的输出,而且分类线甚至不会出现在图上。

代码

hold on
linehandle = plotpc(net.IW{1},net.b{1});

视图效果

825ba266c56f4ecf889ca3f3d04e4dfb.png

5、 返回新网络对象(它作为更好的分类器执行)、网络输出和误差

说明

ADAPT 返回一个新网络对象(它作为更好的分类器执行)、网络输出和误差。此循环允许网络自适应,绘制分类线,并继续进行直到误差为零。
用 LEARNP 进行训练只需要 3 轮,而用 LEARNPN 求解同样的问题需要 32 轮。因此,当输入向量大小有巨大变化时,LEARNPN 的表现优于 LEARNP。
 

代码

E = 1;
while (sse(E))
   [net,Y,E] = adapt(net,X,T);
   linehandle = plotpc(net.IW{1},net.b{1},linehandle);
   drawnow;
end

视图效果

88793d7e86cb43d4b16dbc18fa91528b.png

 6、对输入向量 [0.7; 1.2] 进行分类

说明

此新点及原始训练集的绘图显示了网络的性能。为了将其与训练集区分开来,将其显示为红色。

代码

x = [0.7; 1.2];
y = net(x);
% figure(2)
plotpv(x,y);
circle = findobj(gca,'type','line');
circle.Color = 'red';

视图效果

b2bf43b59c53492e8e9588a087781f7e.png

 7、将训练集和分类线添加到绘图中

代码

hold on;
plotpv(X,T);
plotpc(net.IW{1},net.b{1});
hold off;

视图效果

b92453f580ab4e138a4501f433c905d9.png

 8、局部放大

说明

感知器正确地将我们的新点(红色)分类为类别“零”(用圆圈表示)而不是“一”(用加号表示)。尽管存在离群值,感知器仍能在短得多的时间内正确学习

代码

axis([-2 2 -2 2]);

视图效果

49dc8728b6a14471a47660843dba77a9.png

9、总结

在MATLAB中实现基于归一化感知器的输入向量分类可以按照以下步骤进行:

  1. 数据准备:准备包含特征值和标签的训练数据集。确保特征值已经进行了归一化处理。

  2. 参数初始化:初始化权重向量和偏置项,可以随机初始化或者设置为零向量。

  3. 训练模型:利用训练数据集训练归一化感知器模型。通过迭代计算,更新权重向量和偏置项,直至模型收敛或达到设定的迭代次数。

  4. 预测分类:利用训练好的感知器模型对测试数据集进行分类预测,计算准确率或者其他评估指标。

以下是一个简单的示例代码,演示如何在MATLAB中实现归一化感知器的输入向量分类:

% 准备训练数据集 
X_train = ...; % 特征值矩阵,已进行归一化处理 
Y_train = ...; % 标签向量

% 初始化参数 
W = zeros(size(X_train, 2), 1); % 权重向量 
b = 0; % 偏置项 

% 训练模型 
max_iter = 1000; % 最大迭代次数 
alpha = 0.1; % 学习率 
for iter = 1:max_iter 
  for i = 1:size(X_train, 1) 
    y_pred = sign(dot(W, X_train(i, :)) + b); 
      if y_pred ~= Y_train(i) W = W + alpha * Y_train(i) * X_train(i, :)';
          b = b + alpha * Y_train(i);
 end 
end 
end 
% 预测分类 
X_test = ...; % 测试数据集特征值矩阵
Y_test = ...; % 测试数据集标签向量 
correct = 0;
for i = 1:size(X_test, 1) 
y_pred = sign(dot(W, X_test(i, :)) + b); 
if y_pred == Y_test(i) correct = correct + 1;
 end
 end 
accuracy = correct / size(X_test, 1); 
disp(['Accuracy: ', num2str(accuracy)]);

以上代码演示了如何使用MATLAB实现基于归一化感知器的输入向量分类。在实际应用中,可以根据具体的数据集和问题进行参数调整和优化,以获得更好的分类结果。

10、源代码

 代码

%% 归一化感知器规则
%说明:2 输入硬限制神经元被训练为将 5 个输入向量分类为两个类别。
%一个输入向量比其他输入向量大得多,使用 LEARNPN 进行训练还是很快的。
%% 输入数据
%说明:X 中的五个列向量中的每一个都定义了一个二元素输入向量,行向量 T 定义了向量的目标类别。
%4 个输入向量的幅值远远小于绘图左上角的第五个向量。
%感知器必须将 X 中的 5 个输入向量正确分类为由 T 定义的两个类别。
X = [ -0.5 -0.5 +0.3 -0.1 -40; ...
      -0.5 +0.5 -0.5 +1.0 50];
T = [1 1 0 0 1];
figure(1)
plotpv(X,T);
%% 创建网络
%PERCEPTRON 用 LEARPN 规则创建一个新网络,相对于 LEARNP(默认值),该网络对输入向量大小的巨大变化不太敏感。
%用输入数据和目标数据对该网络进行配置,得到其权重和偏置的初始值。
net = perceptron('hardlim','learnpn');
net = configure(net,X,T);
%% 将神经元的最初分类尝试添加到绘图中
%初始权重设置为零,因此任何输入都会生成相同的输出,而且分类线甚至不会出现在图上。
hold on
linehandle = plotpc(net.IW{1},net.b{1});
%% 返回新网络对象(它作为更好的分类器执行)、网络输出和误差
%ADAPT 返回一个新网络对象(它作为更好的分类器执行)、网络输出和误差。此循环允许网络自适应,绘制分类线,并继续进行直到误差为零
%用 LEARNP 进行训练只需要 3 轮,而用 LEARNPN 求解同样的问题需要 32 轮。因此,当输入向量大小有巨大变化时,LEARNPN 的表现优于 LEARNP。

E = 1;
while (sse(E))
   [net,Y,E] = adapt(net,X,T);
   linehandle = plotpc(net.IW{1},net.b{1},linehandle);
   drawnow;
end
%% 对输入向量 [0.7; 1.2] 进行分类。
%此新点及原始训练集的绘图显示了网络的性能。为了将其与训练集区分开来,将其显示为红色。
x = [0.7; 1.2];
y = net(x);
% figure(2)
plotpv(x,y);
circle = findobj(gca,'type','line');
circle.Color = 'red';
%% 将训练集和分类线添加到绘图中
hold on;
plotpv(X,T);
plotpc(net.IW{1},net.b{1});
hold off;
%% 局部方法
%感知器正确地将我们的新点(红色)分类为类别“零”(用圆圈表示)而不是“一”(用加号表示)。尽管存在离群值,感知器仍能在短得多的时间内正确学习
axis([-2 2 -2 2]);

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1864321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT只是开胃菜,AIGC风口真的来了!

去年OpenAI发布的ChatGPT在全球疯狂刷屏成为一款现象级产品,并成功出圈受到IT、新闻媒体、学术研究、教育等领域的广泛好评和应用。甚至有一位美国学生用ChatGPT 写论文拿下全班最高分,受到了全球媒体的热议。 比尔盖茨曾在今年“Reddit AMA大会”表示&…

Mamba 模型

建议观看讲解视频:AI大讲堂:革了Transformer的小命?专业拆解【Mamba模型】_哔哩哔哩_bilibili 1. 论文基本信息 2. 创新点 选择性 SSM,和扩展 Mamba 架构,是具有关键属性的完全循环模型,这使得它们适合作…

武汉星起航:跨境电商直播带货热,推动中国出口销售新飞跃

随着数字化时代的到来,跨境电商领域正经历着前所未有的变革。中国商务部最近发布的数据显示,2023年中国跨境电商进出口总额达到2.38万亿元,同比增长15.6%,其中出口更是高达1.83万亿元,同比增长19.6%。这一亮眼成绩的背…

电脑开不了机怎么办?无响应就试试这3个方法,快速解决黑屏

当电脑突然变得沉默寡言,没有任何响应,屏幕只剩下一片漆黑时,不仅会打断我们的计划,还可能让我们感到无助和焦虑。电脑开不了机怎么办呢?如果你正面临这样的困境,别担心,本文将引导你通过三个简…

一文讲解:如何理解数字化?数字化的三大本质!

在当今时代,一些企业对数字化概念与本质进行了专门的诠释,部分认为数字化是基于大数据、云计算、物联网、5G等数字技术来实现企业的管理创新,且这一进程的前提是建立在信息化基础之上。然而,也有一些专家持有不同观点,…

基于weixin小程序新生报到系统的设计

管理员账户功能包括:系统首页,个人中心,学生管理,班级信息管理,师资力量管理,宿舍信息管理,宿舍安排管理,签到信息管理,论坛管理 小程序功能包括:系统首页&a…

用IP申请SSL证书需要注意什么?

用IP地址申请SSL证书需要选择支持IP地址验证的证书,验证所有权,正确安装和配置证书等。在互联网中,确保数据传输的安全性是至关重要的,使用SSL证书能够对数据进行加密处理,防止信息被窃取或篡改。使用IP地址申请SSL证书…

使用 Vanna 生成准确的 SQL 查询:工作原理和性能分析

Vanna工作原理 从本质上讲,Vanna 是一个 Python 包,它使用检索增强功能来帮助您使用 LLM 为数据库生成准确的 SQL 查询。 Vanna 的工作分为两个简单的步骤 - 在您的数据上训练 RAG“模型”,然后提出问题,这些问题将返回可设置为在您的数据库上自动运行的 SQL 查询。 vn.t…

如何安装Linux-centOS虚拟机

一、创建虚拟机 二、安装虚拟机 开启虚拟机,将光标移入虚拟机中,点击键盘上的上下键,移动到第一行,按下enter键,如图: 等待进入到如下图,选择中文 设置root密码

计算机毕业设计Thinkphp/Laravel校园体育器材管理系统

校园体育器材管理系统在流畅性,续航能力,等方方面面都有着很大的优势。这就意味着校园体育器材管理系统的设计可以比其他系统更为出色的能力,可以更高效的完成最新的体育器材、器材借用、器材归还、器材损坏、采购入库、器材报废、维修记录等…

项目实施方案(实际项目原件doc参考)

软件实施方案 二、 项目介绍 三、 项目实施 四、 项目实施计划 五、 人员培训 六、 项目验收 七、 售后服务 八、 项目保障措施 软件开发全套资料获取:(本文末个人名片也可直接获取) 软件产品,特别是行业解决方案软件产品不同于一…

制造业采购堡垒机的四大必要性看这里!

制造业包括的行业广泛,与大家的生活息息相关,例如食品制造业、汽车制造业、纺织业、服装制造业等等。但大家对于制造业不是很了解,不知道制造业也是需要采购堡垒机的,今天我们就来聊聊制造业采购堡垒机的必要性。 制造业采购堡垒机…

【AIGC】关于我用AI这玩意儿搞到人生第一笔副业这件事

前言 起初只是对AI感兴趣 后来没想到这玩意儿还能让我接兼职 我已经嗅到了AI的商机 接下来就是挖掘更钝金主爸爸 低收入一定要学!!!! 新手可以先从Midiourney入手 PS:如果不知道怎么学,可以扫描下方二…

76. 最小覆盖子串(困难)

76. 最小覆盖子串 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转:76. 最小覆盖子串 2.详细题解 在s中寻找一个最短的子串,使之包含t中的所有字符,t中可能存在多个相同字符,寻找的子串也应至少含有…

富豪王思聪的“爱情喜剧”从万达排片到网红聊天

王思聪,这位人生如戏、戏如人生的富二代, 在爱情的战场上可谓是屡战屡败,屡败屡战。 想当年,他向戚薇发起了猛烈的爱情攻势, 豪言壮语道:“若我以万达25%的排片量换你一笑,你可愿与我共舞&am…

计算机网络之数据通信原理

1.通信系统的基本组成 信源:信息的发出者; 信宿:信息的接收者; 载体:信息的传送通道; 变换器:将信息变换成载体上可传输的信号; 反变换器:将载体上传输的信号变换成信…

mysql GROUP_CONCAT分组连接

文章目录 GROUP_CONCAT 分组连接GROUP_CANCAT 的使用分班级列出名单分班级列出名单并包含显示性别组合IFNULL组合IF组合case when GROUP_CONCAT 分组连接 准备的数据示例 CREATE TABLE students (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) DEFAULT NULL,classNa…

如何快速交付网络基础设施运维管理软件项目?

​ 基于nVisual网络基础设施数字孪生管理工具 开发项目需求 项目交付成本节省50%、进度提高100% ​ >>>nVisual主要功能<<< 01 场 景 ★ 支持层次化的场景结构 ★ 支持多种空间场景 ​ 02 规 划 ★ 丰…

SpringBoot集成IotDB

1、引入依赖 <dependency><groupId>org.apache.iotdb</groupId><artifactId>iotdb-session</artifactId><version>0.14.0-preview1</version></dependency><dependency><groupId>cn.hutool</groupId><a…

66Uptime – 网站服务器 Cronjob 监控工具 v35.0.0扩展中文版安装

66Uptime是一款自托管、易于使用、轻量级且高性能的网站服务器和Cronjob监控工具。以其丰富的功能和便捷的管理方式&#xff0c;为用户提供了全方位的网站服务器和Cronjob监控解决方案&#xff1a; 主要功能&#xff1a; 监控网站服务器和Cronjob的运行状态&#xff0c;确保它们…