【自学笔记】支持向量机(3)——软间隔

引入

  上一回解决了SVM在曲线边界的上的使用,使得非线性数据集也能得到正确的分类。然而,对于一个大数据集来说,极有可能大体呈线性分类趋势,但是边界处混杂,若仍采用原来的方式,会得到极其复杂的超平面边界,浪费了算力。
  上述要求所有训练样本满足约束的分类方式称为硬分类。而允许部分样本不满足约束的分类方式则被称为软分类

实现逻辑

  在实现软间隔的同时,我们既要保证模型的性能(违反约束的样本点尽量少),同时保证模型复杂度不要过高,我们需要设置一个损失函数来控制模型的样本点是否需要满足约束。
  最简单的,定义0/1损失函数 ℓ 0 / 1 ( z ) \ell _{0/1}(z) 0/1(z)

ℓ 0 / 1 ( z ) = { 1 , i f z < 0 0 , o t h e r w i s e \ell _{0/1}(z)=\begin{cases}1,\ if \ z<0 \\0, \ otherwise\end{cases} 0/1(z)={1, if z<00, otherwise

  并修改优化目标为:

m i n w ⃗ , b 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + C ∑ i = 1 m ℓ 0 / 1 ( y i ( w ⃗ T x ⃗ i + b ) − 1 ) min_{\vec{w}, b}\ \frac{1}{2}||\vec{w}||^{2}+C\sum_{i=1}^{m}\ell _{0/1}(y_{i}(\vec{w}^{T}\vec{x}_{i}+b)-1) minw ,b 21∣∣w 2+Ci=1m0/1(yi(w Tx i+b)1)

  其中常数 C > 0 C>0 C>0,称为正则化参数,控制了对误分类样本的惩罚程度。而损失函数则决定这个样本点误分类是否需要产生惩罚。

  然而,0/1损失函数非凸,非连续,使得后续求解不方便。人们通常用其他一些函数来替代 ℓ 0 / 1 ( z ) \ell _{0/1}(z) 0/1(z),称为替代损失

替代损失函数形式
hinge 损失 ℓ h i n g e ( z ) = m a x ( 0 , 1 − z ) \ell_{hinge}(z)=max(0, 1-z) hinge(z)=max(0,1z)
指数损失 ℓ e x p ( z ) = e x p ( − z ) \ell_{exp}(z)=exp(-z) exp(z)=exp(z)
对率损失 ℓ l o g ( z ) = l o g ( 1 + e x p ( − z ) ) \ell_{log}(z)=log(1+exp(-z)) log(z)=log(1+exp(z))

网图-三种常见的替代函数

  以 h i n g e hinge hinge损失为例,目标变成:

m i n w ⃗ , b 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( w ⃗ T x ⃗ i + b ) ) min_{\vec{w}, b}\ \frac{1}{2}||\vec{w}||^{2}+C\sum_{i=1}^{m}max(0,1-y_{i}(\vec{w}^{T}\vec{x}_{i}+b)) minw ,b 21∣∣w 2+Ci=1mmax(0,1yi(w Tx i+b))

  将求和符号后的部分记作松弛变量 ξ i ≥ 0 \xi _{i} \ge 0 ξi0,可重写为:

m i n w ⃗ , b 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 + C ∑ i = 1 m ξ i min_{\vec{w}, b}\ \frac{1}{2}||\vec{w}||^{2}+C\sum_{i=1}^{m}\xi _{i} minw ,b 21∣∣w 2+Ci=1mξi

s . t . y i ( w ⃗ T x ⃗ i + b ) ≥ 1 − ξ i s.t. \ y_{i}(\vec{w}^{T}\vec{x}_{i}+b)\ge1-\xi_{i} s.t. yi(w Tx i+b)1ξi
ξ i ≥ 0 , i = 1 , 2 , . . . , m \ \ \ \ \ \ \xi_{i} \ge 0, i=1,2,...,m       ξi0,i=1,2,...,m

  松弛变量的值反映了样本点离群的程度。值越大,样本点离正确的分类区域越远。

  使用软间隔方法的SVM被称为软间隔支持向量机

求解

  问题被转化后,依然是一个二次规划问题,我们仍用拉格朗日乘子法得到拉格朗日函数:

L ( w ⃗ , b , α ⃗ , ξ ⃗ , μ ⃗ ) = 1 2 ∣ ∣ w ⃗ ∣ ∣ 2 L(\vec{w},b,\vec{\alpha}, \vec{\xi},\vec{\mu})=\frac{1}{2}||\vec{w}||^{2} L(w ,b,α ,ξ ,μ )=21∣∣w 2
+ C ∑ i = 1 m ξ i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +C\sum_{i=1}^{m}\xi_{i}                            +Ci=1mξi
+ ∑ i = 1 m α i [ 1 − ξ i − y i ( w ⃗ T x ⃗ i + b ) ] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ +\sum_{i=1}^{m}\alpha _{i}[1-\xi_{i}-y_{i}(\vec{w}^{T}\vec{x}_{i}+b)]                            +i=1mαi[1ξiyi(w Tx i+b)]
− ∑ i = 1 m μ i ξ i \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ - \sum_{i=1}^{m}\mu_{i}\xi_{i}                            i=1mμiξi
其中 α i ≥ 0 \alpha_{i} \ge 0 αi0, μ i ≥ 0 \mu_{i} \ge 0 μi0是拉格朗日乘子

  令 L ( w ⃗ , b , α ⃗ , ξ ⃗ , μ ⃗ ) L(\vec{w},b,\vec{\alpha}, \vec{\xi},\vec{\mu}) L(w ,b,α ,ξ ,μ ) w ⃗ , b , ξ i \vec{w}, b, \xi_{i} w ,b,ξi求导为 0 0 0,得:

w ⃗ = ∑ i = 1 m α i y i x ⃗ i \vec{w}=\sum_{i=1}^{m}\alpha_{i}y_{i}\vec{x}_{i} w =i=1mαiyix i
0 = ∑ i = 1 m α i y i 0 = \sum_{i=1}^{m}\alpha_{i}y_{i} 0=i=1mαiyi
C = α i + μ i C = \alpha_{i}+\mu_{i} C=αi+μi

  代回得:

m a x α ⃗ ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x ⃗ i T x ⃗ j max_{\vec{\alpha}} \sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}\vec{x}_{i}^{T}\vec{x}_{j} maxα i=1mαi21i=1mj=1mαiαjyiyjx iTx j

s . t . ∑ i = 1 m α i y i = 0 s.t.\ \sum_{i=1}^{m}\alpha_{i}y_{i}=0 s.t. i=1mαiyi=0
0 ≥ α i ≥ C , i = 1 , 2 , . . . , m \ \ \ \ \ \ \ 0 \ge \alpha_{i} \ge C, i=1,2,...,m        0αiC,i=1,2,...,m

  不难发现,与硬间隔的对偶问题相比,只是把 0 ≤ α i 0 \le \alpha_{i} 0αi改成了 0 ≤ α i ≤ C 0 \le \alpha_{i} \le C 0αiC

  更改后的KKT要求为:

1.互补松弛条件
   α i [ y i ( w ⃗ x ⃗ i + b ) − ( 1 − ξ i ) ] = 0 \alpha_{i}[y_{i}(\vec{w}\vec{x}_{i}+b)-(1-\xi_{i})]=0 αi[yi(w x i+b)(1ξi)]=0
   μ i ξ i = 0 \mu_{i}\xi_{i}=0 μiξi=0

2.原始约束
   y i ( w ⃗ x ⃗ i + b ) − ( 1 − ξ i ) ≥ 0 y_{i}(\vec{w}\vec{x}_{i}+b)-(1-\xi_{i}) \ge 0 yi(w x i+b)(1ξi)0
   ξ i ≥ 0 \xi_{i} \ge 0 ξi0
3.对偶约束
   0 ≤ α i ≤ C 0 \le \alpha_{i} \le C 0αiC
   ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_{i}y_{i}=0 i=1mαiyi=0

  分析一下上面的式子,发现对任意样本 ( x ⃗ i , y i ) (\vec{x}_{i},y_{i}) (x i,yi),总有 α i = 0 \alpha_{i}=0 αi=0 y i ( w ⃗ x ⃗ i + b ) − ( 1 − ξ i ) = 0 y_{i}(\vec{w}\vec{x}_{i}+b)-(1-\xi_{i}) = 0 yi(w x i+b)(1ξi)=0。(由第一个式子推得)

  当 α i = 0 \alpha_{i}=0 αi=0,则说明该样本不会对 f ( x ⃗ ) f(\vec{x}) f(x )有任何影响
  否则,有 y i ( w ⃗ x ⃗ i + b ) = 1 − ξ i y_{i}(\vec{w}\vec{x}_{i}+b)=1-\xi_{i} yi(w x i+b)=1ξi,则该样本是支持向量

  注意,由于软间隔对边界附近的数据点进行了处理,支持向量的定义不再限制于完全在分类边界上的样本,而是规定为满足 y i f ( x ⃗ i ) = 1 − ξ i y_{i}f(\vec{x}_{i})=1-\xi_{i} yif(x i)=1ξi这个式子的样本。

  而对于所有的支持向量,也有一些分类:

条件性质
α i < C \alpha_{i}<C αi<C,则 μ i > 0 \mu_{i}>0 μi>0,有 ξ i = 0 \xi_{i}=0 ξi=0样本恰好在最大间隔边界上
α i = C \alpha_{i}=C αi=C,则 μ i = 0 \mu_{i}=0 μi=0,若 ξ i ≤ 1 \xi_{i} \le 1 ξi1样本落在最大间隔内部
α i = C \alpha_{i}=C αi=C,则 μ i = 0 \mu_{i}=0 μi=0,若 ξ i > 1 \xi_{i} > 1 ξi>1样本被错误分类

  在《机器学习》中,紧跟了一句话:

  由此可以看出,软间隔支持向量机的最终模型仅与支持向量有关,即通过采用 h i n g e hinge hinge损失函数仍保持了稀疏性。

  这里作个解释:
在这里插入图片描述

一般化

  以上其实是以 h i n g e hinge hinge损失函数替代 0 / 1 0/1 0/1损失函数的例子,我们当然可以通过其他的损失函数来得到其他的学习模型,最终都会变成以下的一般形式:

m i n f Ω ( f ) + C ∑ i = 1 m ℓ ( f ( x ⃗ i ) , y i ) min_{f} \ \Omega (f)+C\sum_{i=1}{m}\ell(f(\vec{x}_{i}),y_{i}) minf Ω(f)+Ci=1m(f(x i),yi)

  前半部分的 Ω ( f ) \Omega (f) Ω(f)称为结构风险(structural risk),是由模型的结构所产生的惩罚,如各种正则化,描述了模型 f f f的各种性质。

  后半部分的 C ∑ i = 1 m ℓ ( f ( x ⃗ i , y i ) C\sum_{i=1}{m}\ell(f(\vec{x}_{i},y_{i}) Ci=1m(f(x i,yi)被称为经验风险,是模型在训练数据集上的平均损失,它衡量了模型在已知训练数据上的拟合程度。

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

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

相关文章

Linux: filesystem:resize2fs: error: superblock checksum does not match

最近遇到一个resize2fs命令的错误:superblock checksum does not match superblock while trying to open。 而且问题的出现有随机性。 <qrms6-oam-b:root>/root: #rpm -qf /usr

通信工程学习:什么是VM虚拟机

VM&#xff1a;虚拟机 VM虚拟机&#xff08;Virtual Machine&#xff09;是一种通过软件模拟的计算机系统&#xff0c;它能够在物理计算机上模拟并运行多个独立的虚拟计算机系统。以下是关于VM虚拟机的详细解释&#xff1a; 一、VM虚拟机的定义与原理 定义&#xff1a; VM虚拟…

【ZYNQ 开发】填坑!双核数据采集系统LWIP TCP发送,运行一段时间不再发送且无法ping通的问题解决

问题描述 之所以说是填坑&#xff0c;是因为之前写了一篇关于这个双核数据采集系统的调试记录&#xff0c;问题的具体表现是系统会在运行一段时间后&#xff08;随机不定时&#xff0c;长了可能将近两小时&#xff0c;短则几分钟&#xff09;&#xff0c;突然间就不向电脑发送数…

Redis渐进式遍历

我们知道&#xff0c;keys* 是一次性把所有的key都获取到&#xff0c;这个操作太危险&#xff0c;可能会一次性得到太多的key而阻塞服务器。但是通过渐进式遍历&#xff0c;既能够获取到所有的key&#xff0c;又能不会卡死服务器。 redis使用scan命令进行渐进式遍历&#xff0…

对条件语言模型(Conditional Language Model)的目标函数的理解

在翻看LORA这篇论文的时候&#xff0c;忽然对条件语言模型优化的目标函数产生了一些疑问&#xff0c;下面是理解。 这个目标函数描述了条件语言模型&#xff08;Conditional Language Model&#xff09;的目标&#xff0c;即通过最大化对数似然估计来学习参数( Φ \Phi Φ)&a…

MySQL和SQL的区别简单了解和分析使用以及个人总结

MySQL的基本了解 运行环境&#xff0c;这是一种后台运行的服务&#xff0c;想要使用必须打开后台服务&#xff0c;这个后台服务启动的名字是在安装中定义的如下图&#xff08;个人定义MySQL88&#xff09;区分大小写图片来源 可以使用命令net start/stop 服务名&#xff0c;开…

【高并发内存池】基本框架 + 固定长度内存池实现 1

高并发内存池 1. 基本框架2. 定长内存池的实现2.1 介绍定长内存池2.2 T* New()2.3 void Delete(T* obj) 3. 源码&#xff08;附赠测试&#xff09;4. 总结 1. 基本框架 高并发内存池主要由三个部分构成&#xff1a; 1.thread cache:用于小于256KB的内存的分配。线程缓存是每个…

流域碳中和技术

随着全球气候变化的加剧&#xff0c;碳中和已成为实现可持续发展的重要目标之一。碳中和不仅仅是能源和工业领域的调整&#xff0c;它涉及整个生态系统的转型与再生。在这一过程中&#xff0c;流域的生态系统作为水、土、生物多样性等自然资源的集成体&#xff0c;扮演着至关重…

华为高级交换技术笔记 2024-2025

2024-2025 一、9/31.通信模型和封装2.以太网3.MAC地址4.以太网帧5.MAC地址表的建立 二、9/61.交换机的数据的处理2.以太网帧的分类3.广播域4.vlan技术开发背景 一、9/3 1.通信模型和封装 2.以太网 3.MAC地址 4.以太网帧 5.MAC地址表的建立 二、9/6 1.交换机的数据的处理 2.以…

【含2天数 / B】

题目 代码 #include <bits/stdc.h> using namespace std; int day[] {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; bool has_2(int x) {while (x){if (x % 10 2)return true;x / 10;}return false; } bool check(int y, int m, int d) {return has_2(y) ||…

十二、JDK17的GC调优策略

文章目录 一、JVM有哪些参数可以调&#xff1f;二、从RocketMQ学习常用GC调优三部曲三、基于JDK17优化JVM内存布局1、定制堆内存大小2、定制非堆内存大小设置元空间设置线程栈空间设置热点代码缓存空间应用程序类数据共享 四、基于JDK17定制JVM的GC参数G1重要参数ZGC重要参数 五…

Android使用OpenCV 4.5.0实现扑克牌识别(源码分享)

一、显示效果展示 二、OpenCV 4.5.0 OpenCV 4.5.0是OpenCV&#xff08;Open Source Computer Vision Library&#xff0c;开源计算机视觉库&#xff09;的一个重要更新版本&#xff0c;该版本在多个方面进行了优化和新增了多项功能。 三、ONNX模型 ONNX&#xff08;Open Neu…

风云4A/4B卫星行列号和经纬度查找表文件下载及读取方式

下载地址 https://satellite.nsmc.org.cn/PortalSite/StaticContent/DocumentDownload.aspx?TypeID15 如图&#xff1a; 点击绿色小图标下载。 下载完了后是压缩包&#xff0c;解压缩后进入文件夹获取raw格式的文件 注意&#xff01;&#xff01; 注意133E对应的卫星文件…

植物检测系统源码分享

植物检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …

Java面向对象——内部类(成员内部类、静态内部类、局部内部类、匿名内部类,完整详解附有代码+案例)

文章目录 内部类17.1概述17.2成员内部类17.2.1 获取成员内部类对象17.2.2 成员内部类内存图 17.3静态内部类17.4局部内部类17.5匿名内部类17.5.1概述 内部类 17.1概述 写在一个类里面的类叫内部类,即 在一个类的里面再定义一个类。 如&#xff0c;A类的里面的定义B类&#x…

闪回科技再冲刺上市:曾夸大融资规模,毛利率下滑,有股东退出

近日&#xff0c;闪回科技有限公司&#xff08;下称“闪回科技”&#xff09;递交招股书&#xff0c;准备在港交所主板上市。据贝多财经了解&#xff0c;该公司曾于2024年2月递表&#xff0c;此次是“失效”后的更新版本&#xff0c;清科资本为其独家保荐人。 闪回科技在招股书…

力扣刷题之815.公交路线

题干描述 给你一个数组 routes &#xff0c;表示一系列公交线路&#xff0c;其中每个 routes[i] 表示一条公交线路&#xff0c;第 i 辆公交车将会在上面循环行驶。 例如&#xff0c;路线 routes[0] [1, 5, 7] 表示第 0 辆公交车会一直按序列 1 -> 5 -> 7 -> 1 ->…

全国职业院校技能大赛(大数据赛项)-平台搭建Spark、Scala笔记

Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言&#xff0c;它结合了面向对象编程和函数式编程的特性&#xff0c;被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反…

Dify创建自定义工具,调用ASP.NET Core WebAPI时的注意事项(出现错误:Reached maximum retries (3) for URL ...)

1、要配置Swagger using Microsoft.AspNetCore.Mvc; using Microsoft.OpenApi.Models;var builder WebApplication.CreateBuilder(args);builder.Services.AddCors(options > {options.AddPolicy("AllowSpecificOrigin",builder > builder.WithOrigins("…

Transformers | 在自己的电脑上开启预训练大模型使用之旅!

本文内容主要包括两部分&#xff1a; Hugging Face 社区介绍 如何使用 Transformers 库的模型 1. Hugging Face 社区介绍 Hugging Face (https://huggingface.co/) 是一个 Hub 社区&#xff0c;它和 GitHub 相同的是&#xff0c;他们都是基于 Git 进行版本控制的存储库社区&…