【自学笔记】支持向量机(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.rhkb.cn/news/430336.html

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

相关文章

【C++篇】走进C++标准模板库:STL的奥秘与编程效率提升之道

文章目录 C STL 初探&#xff1a;打开标准模板库的大门前言第一章: 什么是STL&#xff1f;1.1 标准模板库简介1.2 STL的历史背景1.3 STL的组成 第二章: STL的版本与演进2.1 不同的STL版本2.2 STL的影响与重要性 第三章: 为什么学习 STL&#xff1f;3.1 从手动编写到标准化解决方…

字母与符号检测系统源码分享

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

十二、JDK17的GC调优策略

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

C++设计模式(更新中)

文章目录 1、创建型模式1.1 简单工厂&#xff08;Simple Factory&#xff09;&#xff08;1&#xff09;示例&#xff08;2&#xff09;总结 1.2 工厂方法&#xff08;Factory Method&#xff09;&#xff08;1&#xff09;示例&#xff08;2&#xff09;总结 1.3 抽象工厂&…

1--SpringBoot外卖项目介绍及环境搭建 详解

目录 软件开发整体流程 软件开发流程 角色分工 软件环境 苍穹外卖项目介绍 项目介绍 产品原型 技术选型 开发环境搭建 前端环境搭建 后端环境搭建 完善登录功能 导入接口文档 Swagger 介绍 使用方式 常用注解 软件开发整体流程 软件开发流程 需求分析&#x…

Microsoft 365 Copilot: Wave 2 发布,开启AI时代下的全新工作流

本周一&#xff08;9月16日&#xff09;&#xff0c;微软对 Microsoft 365 Copilot 办公辅助工具进行了重大升级&#xff0c;推出 Wave 2 版本。新版 Copilot 将为 Microsoft 365 用户带来一系列新功能和改进&#xff0c;进一步提升工作效率与用户体验&#xff0c;正式开启AI时…

一个能同时to B和to C、批发零售一体化的需求分析和系统设计

一些企业纠结自己的模式是to B还是to C&#xff0c;一些企业在to B和to C中转型&#xff0c;还有一些企业在做着to B的业务&#xff0c;也在做to C的代发&#xff0c;这些企业在不停地变更着业务&#xff0c;更换着系统&#xff0c;给企业带来巨大的资金和时间成本&#xff0c;…

关于SpringBoot项目使用maven打包由于Test引起的无法正常打包问题解决

一、问题描述 在日常工作中&#xff0c;在接手项目时&#xff0c;项目未必是“正常”的&#xff0c;一般平常搭建项目&#xff0c;都不会采用一键式生成的方式&#xff0c;现在说下旧项目&#xff0c;可能项目结构并不是那么简洁&#xff0c;通常都带有与main同层级的test&…

同声传译翻译工具哪个好?不妨试试这些翻译工具

在全球化的浪潮中&#xff0c;语言沟通的重要性日益凸显&#xff0c;它不仅是跨文化交流的桥梁&#xff0c;更是连接不同文化和思想的关键。 为了跨越语言的鸿沟&#xff0c;市场上涌现了众多同声传译工具&#xff0c;它们像是科技的魔法&#xff0c;让沟通变得触手可及。 然…

Nginx实用篇:实现负载均衡、限流与动静分离

Nginx实用篇&#xff1a;实现负载均衡、限流与动静分离 | 原创作者/编辑&#xff1a;凯哥Java | 分类&#xff1a;Nginx学习系列教程 Nginx 作为一款高性能的 HTTP 服务器及反向代理解决方案&#xff0c;在互联网架构中扮演着至关重要的角色。它…

【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣653

1. 力扣653&#xff1a;两数之和IV - 输入二叉搜索树 1.1 题目&#xff1a; 给定一个二叉搜索树 root 和一个目标结果 k&#xff0c;如果二叉搜索树中存在两个元素且它们的和等于给定的目标结果&#xff0c;则返回 true。 示例 1&#xff1a; 输入: root [5,3,6,2,4,null,7…

大数据处理技术:HBase的安装与基本操作

目录 1 实验名称 2 实验目的 3 实验内容 4 实验原理 5 实验过程或源代码 5.1 Hbase数据库的安装 5.2 创建表 5.3 添加数据、删除数据、删除表 5.4 使用Java操作HBase 6 实验结果 6.1 Hbase数据库的安装 6.2 创建表 6.3 添加数据、删除数据、删除表 6.4 使用Java操…

C++:类和对象全解

C&#xff1a;类和对象全解 一、类的定义和初始化&#xff08;一&#xff09;类的定义1、类的成员变量&#xff08;1&#xff09;成员变量&#xff08;2&#xff09;成员函数 2、实例化对象&#xff08;1&#xff09;采用普通构造函数&#xff08;2&#xff09;采用初始化列表 …

CAD的案例

在这个案例我会一步步教如何快速实现 比如我们要复刻这个图形 首先先画直线 输入L&#xff0c;然后空格&#xff0c;输入尺寸70&#xff0c;按ESC退出 到这一步画斜线&#xff0c;很简单就是直线旋转30的角度 直线教学&#xff1a; 先从右边拖到左边&#xff0c;选中这条直线…

【ShuQiHere】 探索数据挖掘的世界:从概念到应用

&#x1f310; 【ShuQiHere】 数据挖掘&#xff08;Data Mining, DM&#xff09; 是一种从大型数据集中提取有用信息的技术&#xff0c;无论是在商业分析、金融预测&#xff0c;还是医学研究中&#xff0c;数据挖掘都扮演着至关重要的角色。本文将带您深入了解数据挖掘的核心概…

中小企业体系技术抽象沉淀-异地灾备篇

IT团队内部使用工具 系列文章&#xff1a;https://blog.csdn.net/caicongyang/article/details/136857045 DDL DML管控 https://github.com/hhyo/Archery/ flyway 文档编写 wiki 技术对外输出文档推荐gitbook 同城双活数据同步方案 总览&#xff1a; vivo 系列文章&#x…

十三 系统架构设计(考点篇)

1 软件架构的概念 一个程序和计算系统软件体系结构是指系统的一个或者多个结构。结构中包括软件的构件&#xff0c;构件 的外部可见属性以及它们之间的相互关系。 体系结构并非可运行软件。确切地说&#xff0c;它是一种表达&#xff0c;使软件工程师能够&#xff1a; (1)分…

洪涝洪水滑坡灾害数据集 灾害 2300张 带标注 voc yolo

洪涝洪水滑坡灾害数据集 灾害 2300张 带标注 voc yolo 洪涝洪水滑坡灾害数据集 数据集描述 该数据集是一个专门用于检测和识别洪涝、洪水和滑坡等自然灾害的数据集&#xff0c;旨在帮助研究人员和开发者训练和评估基于深度学习的目标检测模型。数据集涵盖了两种常见的自然灾害…

8-----手机机型维修工具助手 功能较全 涵盖解锁 刷机 修复等选项 维修推荐

上图是一款功能较全的维修加密狗。目前可以无限制 任何人使用。看图片可以了解其中涵盖刷机 解锁 修复分区 查看短接图 安装驱动 修复基带等等选项。而且其中有针对各个机型型号的对应功能操作。以及一些rec5.0相关的操作选项。 通过此博文了解 ★★★★★此工具涵盖的一些…

【Java】JVM基本组成

一、JDK、JRE、JVM JDK&#xff1a;全称 “Java Development Kit” Java 开发工具包&#xff0c;提供 javac编译器、jheap、jconsole 等监控工具; JRE&#xff1a;全称 “Java Runtime Environment” Java 运行环境&#xff0c;提供 class Library 核心类库JVM; …