【机器学习】 15. SVM 支撑向量机 support vector machine,拉格朗日,软边界,核函数

SVM 支撑向量机 support vector machine,拉格朗日,软边界,核函数

  • 1. 超平面边界 margin of hyperplane
  • 2. 边界越大的超平面越好
    • 原因
  • 3. 线性模型通过决策边界分类
  • 4. SVM的问题
  • 5. 拉格朗日乘子与SVM结合求最大边界
  • 6. SVM软边界和硬边界
  • 7. 非线性 SVM
    • 核方法 kernal trick
      • 一些有效的核方法(符合默瑟定理)
  • 8. sklearn 中的C

1. 超平面边界 margin of hyperplane

在这里插入图片描述

  • 超平面中找决策边界,有很多。
  • 支持向量是靠近决策边界的例子;删除它们将改变决策边界。
  • 边缘(margin):边界和最接近的例子之间的距离。
  • 边界在边缘(margin)的中间。

2. 边界越大的超平面越好

  • 具有最大边缘的超平面称为最大边缘超平面。
  • 它是到训练示例的距离最大的超平面。
  • SVM选择最大边缘超平面。

原因

  • 如果边界很小,那么超平面或训练例子在边界上的任何轻微变化都更有可能影响分类,因为允许数据扰动的空间非常小。
  • 小边界更容易过度拟合
  • 另一方面,如果差距很大,就有更多的余地对数据的微小变化保持稳健。
  • 可能有更好的泛化性能。
  • 从统计学习理论也有理由,结构风险最小化原则。

3. 线性模型通过决策边界分类

如果x在决策边界之上:wx +b > 0 class1
如果x在决策边界以下:w
x +b < 0 class2

s i g n ( w ∗ x + b ) sign(w * x + b ) sign(wx+b)

4. SVM的问题

H1: wx +b =1 (2,3 也可以)
H2: w
x +b = -1
设于H1和H2上的点为支持向量
在这里插入图片描述

  • 根据w的方向决定H1和H2,跟w一样方向的是1
  • d = 2 / ||w|| d为H的边际
  • 对于任意一个样本点, 它到超平面的垂直距离为
    ∣ w ∗ x + b ∣ ∣ ∣ w ∣ ∣ \frac{|w*x+b|}{||w||} ∣∣w∣∣wx+b
    代入H1-H2求两个点之间距离得到d
  • 为了最大化边际d,我们需要最小化||w||
    • 这等价于最小化二次函数
      1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21∣∣w2

5. 拉格朗日乘子与SVM结合求最大边界

拉格朗日乘子法的基本原理是通过引入拉格朗日乘子(λ)将原来的约束优化问题转化为无约束的方程组问题。拉格朗日乘子法的求解过程大致分为以下步骤:

1、原问题描述:求解函数z=f(x, y)在条件φ(x, y)=0条件下的极值。

2、构造函数:F(x, y, λ) = f(x, y) + λ · φ(x, y), 其中λ为拉格朗日乘子。

3、构造函数求偏导,列出方程组。
在这里插入图片描述
4、求出x, y, λ的值, 代入即可得到目标函数的极值。

在这里插入图片描述
在这里插入图片描述
我们可以使用拉格朗日乘数法将约束条件结合到目标函数中, 构造如下:
L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N λ i [ y i ( w ∗ x i + b ) − 1 ] L (w,b,λ) = \frac{1}{2}||w||^2 - \sum^N_{i=1}λ_i[y_i(w*x_i+b)-1] L(w,b,λ)=21∣∣w2i=1Nλi[yi(wxi+b)1]
对w 和 b进行求偏导
得到
w = ∑ i = 1 N λ i y i x i w = \sum_{i=1}^N λ_iy_ix_i w=i=1Nλiyixi
∑ i = 1 N λ i y i = 0 \sum_{i=1}^N λ_iy_i = 0 i=1Nλiyi=0
代入之后得到
m a x L ( w , b , λ ) = ∑ i = 1 N λ i − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j x i . x j max L (w,b,λ) =\sum_{i=1}^N λ_i- \frac{1}{2}\sum^{N}_{i=1}\sum^{N}_{j=1}{λ_iλ_jy_iy_jx_i.x_j} maxL(w,b,λ)=i=1Nλi21i=1Nj=1Nλiλjyiyjxi.xj
这个公式的最大解得到最终的拉格朗日乘数λ,可以使用QP技术等。
得到λ之后就可以计算出w。
λ_i > 0 的点是支撑向量。
假设有多个样本,其中两个样本的λ大于0,其他样本都是0,那么这两个就是支撑向量。根据λ代入w的公式中,得到各自的w

6. SVM软边界和硬边界

软边际=允许在正超平面和负超平面之间存在一些样本点.
在这里插入图片描述
边际的距离上B1远胜B2, 但是B1中正负超平面之间存在两个错误分类的样本点。
一般情况下, 边际的距离更重要, 因为大的边际距离能够让模型更少受噪音干扰, 防止过拟合.

在硬边际分类问题中, 我们要最小化
∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣
而在软边界中,增加了一个参数C
∣ ∣ w ∣ ∣ + C ∑ ξ i ||w|| + C\sumξ_i ∣∣w∣∣+Cξi
ξ是每个样本的额外允许的误差当C变大的时候, 会使得更加注重减小分类错误, 而不是增加边际距离.

  • 当C为无穷大时,为了保证目标函数取得最小值,需要要求ξ=0,即所有样本严格满足硬间隔约束条件;
  • 当C取有限值时,允许部分样本不满足约束条件。

7. 非线性 SVM

解决了线形不可分的问题,数据的特征空间转换:当数据在其原始特征空间中不是线性可分的时,我们可以考虑将其转换到⼀个新的特征空间中,这样在新的空间⾥数据可能会变得线性可分。⾮线性转换到更⾼维度:通过⾮线性变换,我们可以将数据映射到⼀个更⾼的维度。在这个更⾼维度的空间中,数据有更⼤的可能性是线性可分的。想象⼀下,⼀组在⼆维平⾯上不可分的数据点,可能在三维空间中可以被⼀个平⾯完美地分隔。
在这里插入图片描述
在这里插入图片描述

  • 将数据从其原始特征空间转换为一个新的空间,线性边界可以用来分离数据

  • 如果转换是非线性的,并向更高的维度空间,它更有可能比线性的决策边界可以在其中找到。

  • 在新特征空间中学习到的线性决策边界被映射回原始特征空间,导致原始空间中的非线性决策边界

核方法 kernal trick

能够直接计算⾼维空间中两个数据点的点积,⽽⽆需显式地将数据点映射到那个⾼维空间。

通过使⽤核函数,绕过在⾼维空间中进⾏显式计算的需求,从⽽有效地处理⾮线性问题,

避免了⾼维度带来的计算复杂性。在⽀持向量机(SVM)中,这种技巧尤为关键,因为SVM的⼯作原理是基于数据点之间的点积。

使⽤核技巧,我们可以直接计算这些点积,从⽽实现⾮线性分类,⽽不需要在⾼维空间中处理数据。

简⽽⾔之,核技巧的核⼼是利⽤核函数来“欺骗”算法,使其“认为”它在⾼维空间中⼯作,⽽实际上我们只是在原始空间中计算点积。这使得计算更加⾼效和实⽤。

  1. 映射关系: 当我们想将数据从原始空间转移到⼀个⾼维空间时,通常需要定义⼀个映射函数(例如ϕ(x)这个映射函数的作⽤是将数据点从原始特征空间映射到⼀个更⾼的维度。
  2. ⾼维空间中的计算: 在⾼维空间中,我们可能需要计算两个映射后的数据点的点积,即ϕ(xi)ϕ(xj) 。直接进⾏这样的计算可能会⾮常耗时,特别是当映射到的维度⾮常⾼时。
  3. 核函数的作⽤: 核函数 的作⽤就是直接计算⾼维空间中的点积,⽆需显式地计算映射 。这意味着我们可以得到⾼维空间中的点积值,但不需要明确地执⾏映射过程,最终提⾼计算效率
    ϕ ( u ) ∗ ϕ ( v ) = ( u ∗ v ) 2 ϕ(u) * ϕ(v) = (u*v)^2 ϕ(u)ϕ(v)=(uv)2
    以上这个公式简要概括了核函数的作用,不需要计算高维空间的映射ϕ,而是直接用核函数算出高维空间点积。

一些有效的核方法(符合默瑟定理)

Mercer定理:一个核函数K(u,v)如果满足特定条件, 那么这个核函数一定对应着某一个映射函数
在这里插入图片描述

8. sklearn 中的C

通过上述讲解,在sklearn中掉包的时候,C已经有了清晰的认知。
超参数C控制模型对误分类点的惩罚强度

  • 当C很小的时候, 允许更多的点被误分类, 因此决策边界更加平滑, 接近线性, 适用于防止过拟合, 我们可以看左上角的图, 边界基本上是线性的了;
  • 当C很大的时候, 模型更加关注误分类的点, 导致决策边界弯曲, 以捕捉到更多的细节, 如果数据复杂, 模型可能会过拟合。
    所以,过拟合的时候应该减小C,欠拟合的时候应该再增加C
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多线程学习篇六:park / unpark

1. API LockSupport.park()&#xff1a;暂停当前线程LockSupport.unpark (线程对象)&#xff1a;恢复某个线程的运行 1.1 先 park 再 unpark main 线程睡眠时间大于 t1 线程睡眠时间 Slf4j(topic "c.Test01") public class Test01 {public static void main(Str…

传承双百基因 大将军F9轻松跑“盈”脐橙创富路

“江作青罗带&#xff0c;山如碧玉簪。”广西河池&#xff0c;地处桂林西北一隅&#xff0c;奇秀的喀斯特地貌纵横绵延&#xff0c;亚热带季风气候温润宜人&#xff0c;堪称种植脐橙的“天选之地”。 正值秋季&#xff0c;这里漫山遍野&#xff0c;“橙”香四溢&#xff0c;大量…

一图看懂亚信安全2024年三季度财报

一图看懂亚信安全2024年三季度财报&#xff0c; 2024年前三季度营收创历史新高&#xff0c; 净利润、经营现金流加速增长&#xff01; &#xff08;相关信息主要摘自亚信安全2024年三季度财报&#xff0c; 如存在差异&#xff0c;以亚信安全2024年三季度财报为准。&#xff0…

arm 体系架构-过程调用标准AAPCS

一、什么是AAPCS&#xff1f; 旧时&#xff0c;ARM 过程调用标准叫做 APCS (ARM Procedure Call Standard)&#xff0c;Thumb的过程调用标准为 TPCS。如今这两种叫法已经废弃&#xff0c;统一称作 AAPCS (Procedure Call Standard for the ARM Architecture)。 AAPCS 是 ARM …

Kubernetes运行大数据组件-运行spark

部署组件 ● spark-historyserver ● spark-client 配置文件 kind: ConfigMap apiVersion: v1 metadata:name: spark data:spark-defaults.conf: |-spark.eventLog.enabled truespark.eventLog.dir hdfs://192.168.199.56:8020/eventLogsspark.ev…

STM32FreeRTOS 使用QSPI驱动nandFlash

STM32FreeRTOS 使用QSPI驱动nandFlash 不清楚为什么STM32同时打开3个以上的音频文件时会出现播放问题&#xff0c;所以更换方案。因为SRAM的内存空间过小&#xff0c;用于存储音频文件不适合&#xff0c;所以使用大小为128MByte的nandFlash。 nandFlash使用华邦的W25N01GVZEI…

Nature Communications|综述|无线胶囊内窥镜机器人的最新研究进展和未来发展方向(健康监测/柔性传感/可吞服电子)

浙江大学杨华勇(Huayong Yang)院士和韩冬( Dong Han)特聘研究员团队,在期刊《Nature Communications》上发布了一篇题为“Robotic wireless capsule endoscopy: recent advances and upcoming technologies”的综述论文,博士生曹青(Qing Cao)为论文第一作者。综述内容如…

群控系统服务端开发模式-应用开发-安装及提交仓库

整个应用采用的是现有的流行模式&#xff0c;前后分离。应用架构前端采用vue-element-admin&#xff0c;API接口采用的是thinkphp6&#xff0c;数据库采用的是MySQL5.7.36&#xff0c;而事件处理我采用的是分布式队列rabbitMQ。 首先安装及调整API接口系统业务架构逻辑。根据《…

一文讲明白大模型分布式逻辑(从GPU通信原语到Megatron、Deepspeed)

1. 背景介绍 如果你拿到了两台8卡A100的机器&#xff08;做梦&#xff09;&#xff0c;你的导师让你学习部署并且训练不同尺寸的大模型&#xff0c;并且写一个说明文档。你意识到&#xff0c;你最需要学习的就是关于分布式训练的知识&#xff0c;因为你可是第一次接触这么多卡…

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(一)认识和了解Build.cs

目录 引言 一、创建一个C插件TextureReader插件 二、Build.cs文件 三、ModuleRules 四、TextureReader插件的构造 4.1ReadOnlyTargetRules的作用 4.2TextureReaderd的构造调用 4.3设置当前类的预编译头文件的使用模式 4.4PublicIncludePaths.AddRange与PrivateInclude…

揭秘世界技能大赛健康与社会照护项目,对智慧养老专业建设的启示

一、世界技能大赛&#xff08;世赛&#xff09;&#xff1a;职业技能的巅峰对决 被誉为“职业技能奥林匹克”的世界技能大赛是全球最高水平的职业技能竞赛&#xff0c;代表着各行业职业技能发展的国际先进水平。赛事涵盖六大领域&#xff1a;建筑与工程技术、创意艺术与时尚、…

【Unity】鼠标点击获取世界坐标位置:物体移动至鼠标点击的位置

需求说明 鼠标点击3D场景时&#xff0c;可以获取其所在的世界坐标&#xff1b; 鼠标点击3D物体时&#xff0c;可以获取该物体&#xff1b; 鼠标点击3D物体时&#xff0c;可以让玩家移动至该物体&#xff1b; 成果展示 Scene部分 关于仓库栏的设置&#xff0c;物体如何进入…

搭建支持国密GmSSL的Nginx环境

准备 1、服务器准备&#xff1a;本文搭建使用的服务器是CentOS 7.6 2、安装包准备&#xff1a;需要GmSSL、国密Nginx&#xff0c;可通过互联网下载或者从 https://download.csdn.net/download/m0_46665077/89936158 下载国密GmSSL安装包和国密Nginx安装包。 服务器安装依赖包…

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion论文阅读笔记

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion 论文阅读笔记 这是ECCV2024的论文&#xff0c;作者单位是是港中文和上海AI Lab 文章提出了一个叫AutoDIR的方法&#xff0c;包括两个关键阶段&#xff0c;一个是BIQA&#xff0c;基于vision-language…

如何查看磁盘的类型?(固态硬盘 or 机械硬盘)

按一下电脑的win键 直接打字搜索&#xff1a;【碎片整理和优化驱动器】 &#xff0c; 然后按一下【回车】或者 鼠标点击选择即可 如下位置&#xff1a;【媒体类型】显示的即是&#xff1a;【固态硬盘】or【机械硬盘】

解决pycharm无法添加conda环境的问题【Conda Environment下没有Existing environment】

解决pycharm无法添加conda environment 问题【Conda Environment下不显示Existing environment】 问题&#xff1a; 第一次下载好pycharm准备编写代码&#xff0c;在Anoconda Prompt建立好环境后&#xff0c;打开pycharm导入环境&#xff0c;却发现在【Conda Environment】处…

使用AIM对SAP PO核心指标的自动化巡检监控

一、背景 由于SAP PO系统维护成本较高&#xff0c;各类型异常报错等都需要人员进行时刻监控和响应&#xff0c;遂由AIM平台进行自动化巡检SAP PO的各指标&#xff0c;然后告警通知用户&#xff0c;节省维护成本和提高工作效率 二、核心指标监控 SAP PO失败消息 适用于S…

基于Python的A*算法实现路径规划

目录 一、A*算法 二、算法具体步骤 三、算法基本程序流程 四、算法代码实现 五、运行结果 一、A*算法 A*&#xff08;A-Star&#xff09;算法是P.E.Hart、N.J.Nilsson和B.Raphael等人在1986年综合Dijkstra算法和BFS算法的优点而提出来的一种非常有效的启发式路径搜索算法…

和鲸科技 CEO 范向伟受邀揭牌启动南京大学 2024 级大学生人工智能素养大赛

2024 年 10 月 26 日&#xff0c;南京大学第十九届读书节在仙林校区图书馆举行开幕仪式。中国科学院院士、南京大学校长谈哲敏&#xff0c;校党委常委、副校长索文斌&#xff0c;原副校长、关工委主任闵铁军出席仪式&#xff0c;南京大学相关学院和职能部处负责人&#xff0c;以…

有序序列合并(c语言)

代码实例 int main() {int n 0;int m 0;scanf("%d %d", &n, &m);//n输入第一个升序数组中的元素个数//m输入第二个升序数组中的元素个数//创建数组//arr1为n对应的数组int arr1[1000];//arr2为m对应的数组int arr2[1000];//arr3为数组1与数组2结合后的数组…