Preceptron感知机

前言

在上一章中,我们讨论了回归问题,主要的任务就是拟合出数据集分布的解析式。而这一次的学习中,我们将关注分类问题。

Classification

classification分类有两种:二元分类和多类分类。

二元分类:预测二值目标,在分类问题属于基本问题。

多类分类:预测离散(>2)值目标的二元分类的示例。

分类在实际生活中有什么意义吗?

很多领域都有分类问题,例如,可以根据是否存在各种症状,医生预测患者是否患有疾病;

管理员将电子邮件分类为垃圾邮件或非垃圾邮件;

预测金融交易是否具有欺诈性等。

Binary Linear Classication

二元分类中基础的为二元线性分类。

它的描述如下:

给定D维输入x\epsilon R^{D}预测离散值目标。

预测二进制目标y\epsilon \left \{ 0,1\right \}y\epsilon \left \{ -1,+1 \right \}

其中y=1的样本称为正样本,y=0或y=-1的样本称为负样本

模型预测\hat{y}是x的线性函数。

我们看下面这样的数据集:

样本有两个维度,y表示样本所属的类别。

在坐标图中绘制出来:

接下来我们的任务就是得到一个预测模型(解析式),对于其他的样本,输入到模型中能够得到它的分类情况。

对于该数据集,我们可以用一条直线将其进行分类,这条直线的解析式可以定义为:

w^{T}{x}'+b=0

然后计算不同的数据样本到直线的距离

d=\frac{w^{T}x+b}{\left \| w \right \|}

在坐标图中:

因此在直线下面的距离d<0,在直线上面的d>0,然后定义一个符号函数

这样我们就能用直线来对数据进行二元分类了。

另外对于上述求距离的公式,其中\left \| w \right \|是一个非负数,而最终我们判断类别仅仅考虑正负号的情况,所以不用精确距离数值,只保留公式中影响正负的式子即可。可以再乘\left \| w \right \|消掉,这样公式就变为了w^{T}x+b

那么我们的预测模型就可以这样定义:

\hat{y}=f(x)=sign(\sum_{i=1}^{D}w_{i}x_{i}+b)=sign(w^{T}x+b)

根据数据集训练获得参数w和b,然后就可以对新的数据进行预测了,预测结果\hat{y}范围为(-1,1)

这个模型我们就可以称之为感知机(Perceptron)

Cost Function

这样损失函数就很简单了,我们可以用w^{T}x+b表示模型预测的距离信息,而实际数据的分类信息是y,我们让预测的\hat{y}与实际的y相乘。

例如这样的示例,其中右下的样本它本身应该属于-1,但是我们的分类线把它划在了上面,即w^{T}x+b>0,那么相乘后结果<0。只有当预测的结果与实际值一致时,相乘后的结果才是非负数。

因此只要出现负数,就表明目前模型参数有损失,可以进行优化。

Optimization

怎么进行优化呢?

首先我们考虑优化的对象,在上面的分析中,预测值与实际值乘积<0表明预测错误,所以我们只对这部分进行优化即可。

不过,这里有一个问题呀,为什么w的优化公式是

w=w-\eta \left ( -y^{\left ( i \right )}x^{\left ( i \right )} \right )   这样的呢?

在上一章《线性回归》中我们也用了这样的梯度下降的优化方法,感觉这样的公式是偏直觉的,好像看着很有道理,但是具体的原理是怎么样的呢?

我们要先明白这里为什么梯度是-y^{\left ( i \right )}x^{\left ( i \right )},前面加负号的原因是什么?

很显然,在该模型中选取的损失函数为

而只有该函数小于0的时候才说明预测结果失败,因此我们选取的都是该损失函数小于0的部分,那么假设损失函数为l(w,b),在优化的时候有l(w,b)<0,一般情况下我们习惯用正数表示损失函数值,所以令L(w,b)=-l(w,b)就有了>0,这样对L函数求w的偏导会得到-y^{\left ( i \right )}x^{\left ( i \right )}

至于整个式子,偏导数表示损失函数在 w方向上的局部变化率,即损失函数在当前点w的增长方向。-偏导数则为当前点w的减少方向,所以w=w-\eta \left ( -y^{\left ( i \right )}x^{\left ( i \right )} \right ) 这样更新w可以不断地减少损失函数值,从而达到优化的效果。

作业

数据集格式样式为:

共50行3列数据,前两列为横纵坐标,最后一列为该样本所属的类别。

文件分享

需要完成的任务如图所示:

文件分享

我们需要在update优化函数中,填写W和J的更新方法。

填写如下:

这里的Z实际上为\hat{y},即预测的类别,然后让Z矩阵中的元素与实际类别y相乘,对于大于0的部分更改为0(说明该部分预测正确)。剩下的就是预测错误的样本,接着就对这部分样本进行优化。

我们选取的优化策略为梯度优化,由于之前的损失为负数,所以这里-X.T@Y有一个-号。

迭代次数,学习率设置如下:

最后的结果为:

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

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

相关文章

k8s核心操作_存储抽象_K8S中使用ConfigMap抽取配置_实现配置热更新---分布式云原生部署架构搭建032

现在有个问题,是上面我们利用pv和pvc 就是持久卷 以及 持久卷申请,实现了对存储的,pod删除以后,对其使用的存储空间也进行了删除,那么还有个问题,对于redis这种我们希望,他的配置也管理起来. 比如这个redis的配置文件. 以后其他的配置文件也是这样. 使用配置文件的存储在k8s中…

Spring Boot 中使用 Resilience4j 实现弹性微服务的简单了解

1. 引言 在微服务架构中&#xff0c;服务的弹性是非常重要的。Resilience4j 是一个轻量级的容错库&#xff0c;专为函数式编程设计&#xff0c;提供了断路器、重试、舱壁、限流器和限时器等功能。 这里不做过多演示&#xff0c;只是查看一下官方案例并换成maven构建相关展示&…

Hadoop3:RPC通信原理及简单案例实现

一、场景介绍 我们知道&#xff0c;Hadoop中存在多种服务&#xff0c;那么&#xff0c;服务之间是如何通信的了&#xff1f; 比如&#xff0c;DN和NN之间如何通信&#xff1f; 这里&#xff0c;实际上是通过RPC实现进程间通信的了。 RPC属于Java网络编程范畴 需要编写客户端和…

AAD Connect自定义同步用户上云

使用场景&#xff1a;我想同步本地AD域的那些用户信息、账号上云端做SSO登录和权限管控&#xff0c;但是不希望使用快速上传一股脑传上去&#xff0c;所以使用自定义同步功能上传&#xff0c;这是一篇对AAD CONNECT这个应用的详解和配置步骤推荐 AD Connect如何自定义配置&…

隐性行为克隆——机器人的复杂行为模仿学习的新表述

介绍 论文地址&#xff1a;https://arxiv.org/pdf/2109.00137.pdf 源码地址&#xff1a;https://github.com/opendilab/DI-engine.git 近年来&#xff0c;人们对机器人学习进行了大量研究&#xff0c;并取得了许多成果。其中&#xff0c;模仿学习法尤其受到关注。这是一种从人…

iOS ------ 消息传递和消息转发

一&#xff0c;消息传递 在OC中&#xff0c;传递消息就是在对象上调用方法。 相对于C语言的方法就“静态绑定”的函数&#xff0c;在编译器就决定了运行时所要调用的函数。在OC中&#xff0c;如果向某对象传递消息&#xff0c;就会使用动态绑定机制来决定需要调用那个方法。调…

全球风味:红酒中的地域风情与特色

在红酒的世界里&#xff0c;每一滴琼浆玉液都承载着地域的风情与特色。它们不仅仅是葡萄酒&#xff0c;更是大自然的恩赐&#xff0c;是时间的馈赠&#xff0c;是人类智慧的结晶。今天&#xff0c;就让我们一起走进红酒的世界&#xff0c;感受那些来自不同地域的风情与魅力。 …

ROS2入门到精通—— 2-6 ROS2实战:可调节纯跟踪算法(局部规划)

1 Regulated Pure Pursuit 纯追踪算法变体&#xff1a;调节纯追踪算法 将自适应纯追踪&#xff08;Adaptive Pure Pursuit&#xff09;算法的特性与围绕线性速度的规则相结合&#xff0c;重点关注消费类、工业和服务型机器人的需求。我们还实现了几种常识性的安全机制&#xf…

业务终端动态分配IP-DHCP技术、DHCP中继技术

一、为什么需要DHCP? 1、许多设备(主机、无线WiFi终端等)需要动态地址的分配; 2、人工手工配置任务繁琐、容易出错,比如:IP地址冲突; 3、网络规模扩大、复杂度提高,网络配置越来越复杂,计算机的位置变化和数量超过可分配IP地址的数量,造成IP地址变法频繁以及IP地址…

Monaco 使用 DocumentHighlightProvider

Monaco 中有一个文字高亮的功能&#xff0c;就是选中一个单词&#xff0c;会高亮文字文档中所有出现该单词的位置&#xff0c;效果如下&#xff1a; Monaco 默认就有这个功能&#xff0c;可以根据具体需求进行定制。通过 registerDocumentHighlightProvider 进行注册 实现 pro…

【Java数据结构】初始线性表之一:链表

为什么要有链表 上一节我们描述了顺序表&#xff1a;【Java数据结构】初识线性表之一&#xff1a;顺序表-CSDN博客 并且进行了简单模拟实现。通过源码知道&#xff0c;ArrayList底层使用数组来存储元素。 由于其底层是一段连续空间&#xff0c;当在ArrayList任意位置插入或者…

代码随想录二刷复习(二分法)

二分法模板&#xff1a; 1&#xff1a;左闭右闭区间写法 第一种写法&#xff0c;我们定义 target 是在一个在左闭右闭的区间里&#xff0c;也就是[left, right] &#xff08;这个很重要非常重要&#xff09;。 区间的定义这就决定了二分法的代码应该如何写&#xff0c;因为定…

vue 给特定满足条件的表单数据添加背景颜色,组件的 row-class-name

1、:row-class-name"tableRowClassName" 可为表格每行根据后面的函数绑定class名 <!-- 列表框 --><div class"tableList"><el-table :data"teamModelListTable" style"width: 100%"selection-change"handleSele…

el-table表格操作列错行处理

解决方法&#xff1a; <style>::v-deep .el-table th.el-table__cell > .cell {white-space: nowrap !important;} </style>

不想填邀请码?Xinstall来帮你,一键安装无忧愁

在这个快节奏的时代&#xff0c;每一个点击都承载着用户的期待与耐心。然而&#xff0c;在下载App的过程中&#xff0c;繁琐的邀请码填写往往成为了用户体验的一大障碍。你是否也曾经因为不愿填写邀请码而放弃了一款心仪的App&#xff1f;今天&#xff0c;就让我们一起走进Xins…

镜像与容器

Docker Image (镜像) Docker 镜像概念 Docker iamge 本质上是一个 read-only 只读文件&#xff0c;这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必需的文件。 可以把 Docker image 理解成一个模板&#xff0c;可以通过这个模板实例化出来很多…

【Datawhale AI 夏令营】入门lightgbm及特征工程进行实践

文章目录 1. LightGBM简介2. 导入必要的库3. 加载数据集4. 数据可视化4.1 不同类型对应目标值的柱状图4.2 特定ID的目标值折线图 5. 特征工程5.1 合并训练集和测试集并进行排序5.2 历史平移5.3 窗口统计5.4 数据切分5.5 确定输入特征 6. 模型训练与评估7. 结果展示 1. LightGBM…

一文看懂JTAG基本知识

文章目录 1、JTAG是什么?1.1边界扫描2、JTAG如何起作用?2.1 PC控制JTAG2.2 并行端口2.3 JTAG TAP控制器2.4 计算JTAG链中元件个数2.5 获得JTAG链上芯片的ID3、边界扫描3.1、SAMPLE3.2、边界扫描寄存器3.3、JTAG还可以做什么?参考资料:1、JTAG是什么? JTAG是20世纪80年代开…

云监控(华为) | 实训学习day1(10)

云监控&#xff1a;确保服务器高效运行 在当今的数字化时代&#xff0c;服务器的稳定运行对于任何企业都至关重要。为了确保服务器的 CPU、内存和硬盘等资源的合理运行&#xff0c;云监控成为了一项不可或缺的技术。本文将详细介绍云监控的基本概念、所需软件、配置方法以及如何…

JDBC 技术 | Java连接MySQL数据库(四万字零基础保姆级超全详解)

文章目录 前言一. JDBC概述1. JDBC 概念2. JDBC 本质3. JDBC 的好处 二. JDBC 快速入门1. 编写Java 程序步骤2. 在IDEA 中的操作流程3. 正式编写 Java程序 三. JDBC API详解1. DriverManager 类2. Connection 接口2.1 获取执行SQL语句的对象 3 .ResultSet 类3.1 概述3.2 代码实…