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

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;endend 
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.mzph.cn/news/860920.shtml

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

相关文章

手机远程控制另一台手机的全新使用教程(安卓版)

看完这篇文章,你可以了解到安卓手机如何远程控制安卓手机,以及苹果手机如何远程控制安卓手机。 如果想要用安卓手机远程管控苹果手机,或者苹果手机远程管控另一台苹果手机,请点击查看视频《手机远程管控另一台手机的全新使用教程…

如何提高搜索点击率:五个利用ChatGPT创造吸引眼球标题的小技巧

在当今信息爆炸的时代,如何让自己的文章在海量信息中脱颖而出,是每个内容创作者都在思考的问题。尤其是当读者面对无数个搜索结果时,标题成为吸引他们点击的第一步。那么,如何才能写出吸引眼球的标题,从而提高搜索点击…

数字化工厂生产管理看板系统如何优化生产流程

在当今高度数字化的时代,制造业正经历着深刻的变革,数字化工厂生产管理看板系统作为一种创新的工具,正在为优化生产流程发挥着关键作用。 数字化工厂生产管理看板系统是一个集数据采集、分析、展示和决策支持于一体的综合性平台。生产管理看板…

SaaS行业的发展与前景

随着互联网技术的飞速发展,云计算逐渐成为新一代信息技术的重要方向。作为云计算的一种服务模式,SaaS(Software as a Service,软件即服务)已经深入到企业级应用和个人消费市场,成为全球软件产业的新趋势。在…

Linux上搭建邮件服务

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 Linux上搭建邮件服务 前言电子邮件的工作原理和基本组成部分1. 电子邮件的工作原理2. 电子邮件的…

【软件测试】概念篇

🎃🎃🎃个人主页🎃🎃🎃 🎃🎃🎃【软件测试专栏】🎃🎃🎃 🎃🎃🎃上一篇文章:认识测试&…

音乐创作与制作软件:Studio One 6.6.1中文版安装激活使用指南

音乐创作与制作软件:Studio One 6.6.1 简介 StudioOne 的设计核心是易于使用。十年来,它已将久经考验的录音棚模型与当今以节拍和循环为导向的制作过程无缝地结合在一起,因此您可以比以往更快地将音乐创意带入声音现实。高效的单屏幕界面可…

PointCloudLib-特征(Features)-基于转动惯量和偏心率的描述符

基于转动惯量和偏心率的描述符 在本教程中,我们将学习如何使用 pcl::MomentOfInertiaEstimation 类来获取基于 偏心率和转动惯量。此类还允许提取云的轴对齐和定向边界框。 但请记住,提取的 OBB 不是最小可能的边界框. 理论入门 特征提取方法的思路如下。 首先计算点云的…

GNU、Unix、Linux、Makefile、GCC、GDB 之间的关系

1.1 Makefile Makefile 是一个用于自动化编译和构建过程的文本文件,尤其在软件开发项目中被广泛使用。它定义了一系列规则,说明了如何将源代码文件编译成可执行文件、库或者其他目标文件。Makefile 的核心作用在于它能够管理源代码文件之间的依赖关系&am…

Python多线程技巧心得详解

概要 多线程是一种能够并发执行代码的方法,可以提高程序的执行效率和响应速度。本文将详细介绍 Python 中多线程的概念、使用场景、基本用法以及实际应用,可以更好地掌握多线程编程。 什么是多线程? 多线程是一种在单个进程内并发执行多个线程的技术。每个线程共享相同的内…

笔记101:OSQP求解器的底层算法 -- ADMM算法

前言1:这篇博客仅限于介绍拉格朗日乘子法,KKT条件,ALM算法,ADMM算法等最优化方法的使用以及简版代码实现,但不会涉及具体的数学推导;不过在下面我会给出具体数学推导的相关文章和截图,供学有余力…

图书馆书籍管理系统

项目名称与项目简介 图书馆书籍管理系统 本项目是一个计算机管理系统,也就是将传统手工的管理方式转变为智能化、标准化、规范化的管理管理模式,对图书馆中所有的图书、文献资料、音像资料、报刊、期刊等各种类型的资料实现采编、收集图书信息、检索、归…

探讨数字化背景下VSM(价值流程图)的挑战和机遇

在信息化、数字化飞速发展的今天,各行各业都面临着前所未有的挑战与机遇。作为源自丰田生产模式的VSM(价值流程图),这一曾经引领制造业革命的工具,在数字化背景下又将如何乘风破浪,应对新的市场格局和技术变…

屏幕翻译下载哪个软件好?好用的屏幕翻译推荐

想象一下,当我们在阅读外文文档或是观看外语电影时,如果能有一款翻译工具同步提供译文,那将是多么令人愉悦的体验! 如果这种翻译服务能够在不影响其他应用的情况下进行,那就是double快乐了。 其实,现在要…

【ajax07基础】回调函数地狱

一:什么是回调函数地狱 在一个回调函数中嵌套另一个回调函数(甚至一直嵌套下去),形成回调函数地狱 回调函数地狱存在问题: 可读性差异常捕获严重耦合性严重 // 1. 获取默认第一个省份的名字axios({url: http://hmaj…

浏览器自动填充登录用户名和密码,如何清除

文章目录 刷新网页的时候浏览器会自动填充用户名和密码刷新之后效果图解决方案完整的login.vue代码核心代码原理(添加 readonly 和监听 focus 事件) 刷新网页的时候浏览器会自动填充用户名和密码 刷新之后效果图 解决方案 完整的login.vue代码 <template><div class…

【线上】如何解决积压消费?

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!​​​​​​​ Hello, 各位亲爱的读者朋友们!我是你们的小米,一个积极活泼的技术分享达人,今天我们要聊聊一个大家在分布式系统中经常遇到的棘手问题…

【Linux】使用ntp同步时间

ntp介绍 NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是一种用于同步计算机时间的协议&#xff0c;工作在UDP的123端口上。它是一种客户端-服务器协议&#xff0c;用于同步计算机的时钟。通过连接到网络上的时间服务器&#xff0c;计算机可以获…

PFA 反应罐盖特氟龙 润滑绝缘行业加工 匠心工艺

PFA反应罐别名也叫反应瓶&#xff0c;储样罐&#xff0c;清洗罐等。可作为样品前处理实验中消解样品和中低压溶样的反应容器&#xff0c;广泛应用于半导体分析、新材料、新能源、同位素分析等。 PFA反应罐规格参考&#xff1a;250ml、300ml、350ml、500ml、1L等。 产品特点&am…

项目管理:如何解决项目延期的那些问题?

在项目管理中&#xff0c;项目延期是一种普遍现象&#xff0c;也管理者最为头疼的一个问题。为了有效地解决项目延期问题&#xff0c;我们需要从多个方面入手&#xff1a; 1、快速识别原因&#xff1a;当项目出现延期迹象时&#xff0c;首要任务是迅速识别并定位导致延期的根…