首页 > 其他分享 >【自学笔记】支持向量机(3)——软间隔

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

时间:2024-09-23 22:50:47浏览次数:3  
标签:yi xi sum 笔记 vec alpha 自学 1m 向量

引入

  上一回解决了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+C∑i=1m​ℓ0/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,1−z)
指数损失 ℓ 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+C∑i=1m​max(0,1−yi​(w Tx i​+b))

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

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+C∑i=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       ξi​≥0,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}                            +C∑i=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−ξi​−yi​(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 αi​≥0, μ i ≥ 0 \mu_{i} \ge 0 μi​≥0是拉格朗日乘子

  令 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​αi​yi​x i​
0 = ∑ i = 1 m α i y i 0 = \sum_{i=1}^{m}\alpha_{i}y_{i} 0=∑i=1m​αi​yi​
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​αi​−21​∑i=1m​∑j=1m​αi​αj​yi​yj​x iT​x 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​αi​yi​=0
        0 ≥ α i ≥ C , i = 1 , 2 , . . . , m \ \ \ \ \ \ \ 0 \ge \alpha_{i} \ge C, i=1,2,...,m        0≥αi​≥C,i=1,2,...,m

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

  更改后的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 ξi​≥0
3.对偶约束
   0 ≤ α i ≤ C 0 \le \alpha_{i} \le C 0≤αi​≤C
   ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_{i}y_{i}=0 ∑i=1m​αi​yi​=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} yi​f(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 ξi​≤1样本落在最大间隔内部
若 α 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)+C∑i=1​mℓ(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}) C∑i=1​mℓ(f(x i​,yi​)被称为经验风险,是模型在训练数据集上的平均损失,它衡量了模型在已知训练数据上的拟合程度。

标签:yi,xi,sum,笔记,vec,alpha,自学,1m,向量
From: https://blog.csdn.net/qq_40432278/article/details/142378266

相关文章

  • C++学习笔记(三)-----【内联函数】
    1内联函数1.1为什么要有内联函数答:还是为了补C语言的坑,补宏的坑#defineN10//实现一个ADD的宏函数//错误写法#defineADD(intx,inty){returnx+y;}#defineADD(x,y){returnx+y;}#defineADD(x,y)returnx+y;#defineADD(x,y)x+y;//宏不需......
  • 【刷题笔记】2020 CSP-J
    2020CSP-J题目整理B-直播获奖思路梳理题目中说“如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多”,这是一个坑点,因为即使有分数相同的人,他的分数也是和位于第\(n*w\%\)人的分数相同的,而题目只让输出分数,所以不用在意。先来考虑暴力算法,没加进......
  • 【刷题笔记】2019 CSP-S
    2019CSP-S题目整理A-格雷数思路简介思路很简单,如果编号在中点的左边那么就输出0,否则输出1,同时还要改变编号。代码实现#include<bits/stdc++.h>#definemaxn80usingnamespacestd;typedef__int128int1;int1n,k;__int128read(){ charch=getchar(); __int128......
  • 零基础小白如何入门CTF,看这一篇就够了(附学习笔记、靶场、工具包)_ctf入门
    CTF简介:CTF(CaptureTheFlag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2......
  • EEPROM手册阅读笔记
    目录一、特征描述二、功能描述三、总线特性四、设备寻址五、写入操作1.字节写入2.页写入六、读取操作1.当前地址读取2.随机读取3.顺序读取一、特征描述1.MicrochipTechnologyInc.24AA04/24LC04B(24XX04*)是一款4Kbit电气可擦除PROM。该器件由两个256x8......
  • VulnHub靶场笔记 - Breach: 2.1
    靶机下载地址:https://download.vulnhub.com/breach/Breach-2_final2.1.zip一.安装下载后为压缩包文件解压后双击打开.ova文件根据压缩包里附带的说明我们需要将靶机的ip配为静态IP:192.168.110.151选择虚拟网络编辑器选择仅主机的网卡并将子网ip改为110网段点......
  • 跟着黑马学MySQL基础篇笔记(4)-多表查询
    37.多表查询-多表关系介绍多表关系概述项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:一对多(多对一)多对多一对一一对多(多对一)案例:部门与员工的关系......
  • 【避雷指南】自学AI人工智能常踩的4个大雷区
    ​1、数学基础学习人工智能时,有一种常见的误解,认为一定要数学学的很好,才能进一步学人工智能。这种观念并不正确。虽然数学是AI的基石,为算法和模型提供了理论基础,但过分沉迷于数学理论可能会让学习过程变得枯燥无味,甚至削弱学习积极性。正确的做法是将数学学习与AI实践紧密结合......
  • 动手学深度学习8.7. 通过时间反向传播-笔记&练习(PyTorch)
    本节课程地址:本节无视频本节教材地址:8.7.通过时间反向传播—动手学深度学习2.0.0documentation(d2l.ai)本节开源代码:...>d2l-zh>pytorch>chapter_multilayer-perceptrons>bptt.ipynb通过时间反向传播到目前为止,我们已经反复提到像梯度爆炸或梯度消失,以及需要对循环......
  • mysql学习笔记1
    安装1.更新sudoaptupdate2.安装$sudoaptinstallmysql-server3.查看运行状况$sudosystemctlstatusmysql.service●mysql.service-MySQLCommunityServerLoaded:loaded(/lib/systemd/system/mysql.service;enabled;vendorpreset:>Active:......