支持向量机

支持向量机(SVM)是一种分类模型,通过最大化间隔来找到最佳超平面。在解决线性可分问题时,SVM采用硬间隔最大化,而在面对非线性问题时,它使用核技巧和软间隔最大化。SVM的优化问题可转换为求解凸二次规划,其对偶问题通过拉格朗日乘子和核函数简化。常见的核函数有多项式和高斯核。此外,序列最小优化(SMO)算法被用来高效地求解大规模SVM问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

支持向量机(SVM)是一种二类分类模型。基本模型是定义在特征空间上的间隔最大的线性分隔器,间隔最大使它有别于感知机——误分类点到超平面S的总距离最小


核技巧使它成为实质上的非线性分类器。间隔最大化可形式化为一个求解的凸二次规划,也等价于正则化的合页损失函数的最小化问题——求解凸二次规划的最优化算法



线性可分支持向量机



分离超平面为: wx+b=0
分类决策函数: f(x)=sign(wx+b=0)


函数间隔与几何间隔

在超平面 wx+b=0 确定的情况下,l wx+b l能够表示点x距离超平面的远近.而 wx+b 与符号与类标记y的符号是否一致能够表示分类是否正确。所以可用 y(wx+b) 来表示分类的正确性及确信度—等价于l wx+b l
这就是函数间隔,定义:
γi=yi(wxi+b)

i=1,….,N

γ=minγi


若对分离超平面的法向量w加某些约束,如规范化, w=1 ,使得间隔是确定的,此时函数间隔为几何间隔

几何间隔定义
γi=yi(wwxi+bw)
i=1,….,N

γ=minγi



(硬)间隔最大化

对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的.这里的间隔最大化又称为硬间隔最大化(与将讨论的训练数据集近似线性可分的软间隔最大化相对应)

最大间隔分离超平面,表示为下面的约束最优化问题
maxw,bγ
s.t. yi(wwxi+bw)>=γ,i=1,2,....,N
可改写为
maxw,bγw
s.t. yi(wxi+b)>=γ,i=1,2,....,N


然而函数间隔γ并不影响最优化问题的解(因为有 w 的存在),令γ=1最后改写为
minw,bw22
s.t. yi(wxi+b)1>=0,i=1,2,....,N









算法(线性可分支持向量机学习算法——最大间隔法)

1) minw,bw22
s.t. yi(wxi+b)1>=0,i=1,2,....,N

2)利用拉格朗日算法整合函数求偏导等于0,得到参数即可


最大间隔分离超平面的存在且唯一



支持向量和间隔边界


支持向量是使约束条件式等号成立的点,即

yi(wxi+b)1=0


这里写图片描述

yi=+1 的正例点,支持向量在超平面: H1:wxi+b=1
yi=1 的负例点,支持向量在超平面: H1:wxi+b=1

间隔边界即: 2w


给个例子,二维情况

这里写图片描述



学习的对偶算法


应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解
因为:一是对偶问题往往更易求解;二是引进核函数,今儿推广非线性分类问题


引进拉格朗日乘子αi>=0,i=1,2,…,N,定义拉格朗日函数:
L(w,b,α)=w22Ni=1αiyi(wxi+b)+Ni=1αi
α=(α1,α2,...,αN)T 为拉格朗日乘子向量
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
max(对α)min(对w,b)L(w,b,α)


得到下面与之等价的对偶最优化问题:
minα12Ni=1Nj=1αiαjyiyj(xixj)Ni=1αi
s.t. Niαiyi=0
αi>=0,i=1,2,....,N



定理,设 α=(α1,α2,...,αl)T 是对偶最优化问题—上述等价问题 的解,则存在下标 j,使得 αj>0 ,并按下式求得原始最优化问题的解 w,b :


w=Ni=1αiyixi
b=yjNi=1αiyi(xixj)



算法(线性可分支持向量机学习算法)

1)构造并求解约束最优化问题
minα12Ni=1Nj=1αiαjyiyj(xixj)Ni=1αi
s.t. Niαiyi=0
αi>=0,i=1,2,....,N
求得最优解 α=(α1,α2,...,αN)T .

2)计算
w=Ni=1αiyixi
并选择 α 的一个正分量 αj >0计算
b=yjNi=1αiyi(xixj)
3)求得分离超平面
wx+b=0
分类决策函数:
f(x)=sign(xx+b)



对于支持向量的定义

考虑原始最优化问题和对偶最优化问题,将训练数据集中对应于 αi>0(xi,yi)xiRn 称为支持向量
根据这一定义,支持向量一定在间隔边界上
αi(yi(wx+b)1)=0,i=1,2,....,N
对于 αi>0xi ,有
yi(wx+b)1=0

wx+b=±1


一个例子:
这里写图片描述
这里写图片描述




线性支持向量机与软间隔最大化



线性支持向量机



训练数据集:
T=(x1,y1,....,xn,yn)
,xiχ=Rn,yiΥ=+11i=1,...,N,xii,yixi
再假设训练数据集不是线性可分的,通常情况是,训练数据中有一些特异点,将这些特异点去除后,剩下大部分的样本点组成的集合是线性可分的



ϵi0
yi(wxi+b)1ϵi
12w212w2+CNi=1ϵi


C>0为惩罚参数,最小化目标函数包含两层含义:使\frac{1}{2}|w|^2尽量小即间隔尽量大,同时使误分类点的个数尽量小,C是调和二者的系数.



线性不可分的线性支持向量机的学习问题变成如下凸二次规划问题(原始问题):
minw,b,ϵ12w2+CNi=1ϵi
s.t.yi(wxi+b)1ϵi
ϵi0i=1,2,...,N





下面给出支持向量机定义

定义(线性支持向量机),
得到分离超平面为
wx+b=0
以及相应的分类决策函数
f(x)=sign(wx+b=0)
称为线性支持向量机





相应的学习对偶算法

minα12Ni=1Nj=1αiαjyiyj(xixj)Ni=1αi
s.t. Niαiyi=0
0αiC,i=1,2,....,N



定理,对偶问题的解可通过下式求得
w=Ni=1αiyixi
b=yjNi=1yiαi(xixj)



中间证明用到所谓KKT条件




算法(线性支持向量机学习算法)

输入:训练数据集T
输出:分离超平面和分类决策函数


1)选择惩罚参数C>0,构造并求解凸二次规划问题
minα12Ni=1Nj=1αiαjyiyj(xixj)Ni=1αi
s.t. Niαiyi=0
0αiC,i=1,2,....,N
求得最优解 α=(α1,...,αN)T


2)计算 w=Ni=1αiyixi
ααj0<αj<C
计算 b=yjNi=1yiαi(xixj)


求得分离超平面
分离超平面
wx+b=0
相应的分类决策函数
f(x)=sign(wx+b=0)

步骤2中对任意是和条件分量都可以求出 b ,但是由于解不唯一,求出来不一样,所以一般实际计算可以取所有符合条件的样本点上的均值






支持向量


图示化理解

这里写图片描述






合页损失函数



对于线性支持向量机来说,学习策略为软间隔最大化,学习算法为凸二次规划.
还有另外一种解释,就是最小化以下目标函数:
Ni=1[1yi(wxi+b)]++λw2
目标函数第一项是经验损失或者经验风险,函数
L(y(wx+b))=[1y(wx+b)]+
称为合页损失函数,下标”+”表示一下取正值的函数


[z]+[=z,z>0;=0,z0]



定理,原始最优化问题等价于最优化问题

原始最优化问题:
minw,b,ϵ=12w2+CNi+1ϵi
s.t.yi(wxi+b)1ϵi,i=1,2,...,N
ϵi0,i=1,2...,N
等价于最优化问题
minw,bNi=1[1yi(wxi+b)]++λw2
(易证明)


损失函数
损失函数可以看做 误差部分(loss term) + 正则化部分(regularization term)
这里写图片描述


0-1损失函数,记录分类错误的次数
这里写图片描述



合页损失函数

这里写图片描述


因为函数形状像合页,故名合页损失函数
图中还画出0-1损失函数,可认为它是二分类问题的真正的损失函数
合页损失函数是其的上界,由于0-1损失函数不是连续可导的,直接优化其构成的目标函数较难。
上界函数因此称为代理损失函数
线[yi(wxi+b)]+0yi(wxi+b)0
合页损失函数对学习有更高的要求




非线性支持向量机与核函数


有时分类问题是非线性的,这时可以使用非线性支持向量机。先介绍核技巧,不仅运用于支持向量机,也应用于其他统计学习问题



核技巧



非线性分类问题

这里写图片描述


将左图中椭圆变换成右图的直线。
定义从原空间到新空间的映射
z=ϕ(x)=((x(1))2,(x(2))2)T
原空间的椭圆:
w1(x(1))2+w2(x(2))2+b=0
变换为新空间的直线:
w1z(1)+w2z(2)+b=0


核技巧就是通过一个非线性变换将输入空间(欧氏空间 Rn 或离散集合)对应于一个特征空间(希尔伯特空间 H ),使得在输入空间 Rn中超曲面模型对应于特征空间 H 中超平面模型(支持向量机)




核函数定义
χH
ϕ(x):χH
使x,zχ,K(x,z)
K(x,z)=ϕ(x)ϕ(z)
K(x,z),ϕ(x)ϕ(x)ϕ(z)ϕ(x)ϕ(z)


在学习和预测中只定义核函数,而不显式地定义映射函数,通常直接计算K(x,z)较容易
ϕRnHH
K(x,z)Hϕ


R2,K(x,z)=(xz)2Hϕ(x):R2H
H=R3,x=(x(1),x(2))T,z=(z(1),z(2))T ,由于
(xz)2=(x(1)z(1)+x(2)z(2))2=(x(1)z(1))2+2x(1)z(1)x(2)z(2)+(x(2)z(2))2
可以取映射
ϕ(x)=((x1)2,2x(1)x(2),(x(2))2)T


仍取 H=R3 以及
ϕ(x)=12((x(1))2x(2))2,2x(1)x(2),(x(1))2+x(2))2)T
满足 ϕ(x)ϕ(z)=K(x,z)=(xz)2


还可以取 H=R4
ϕ(x)=((x(1))2,x(1)x(2),x(1)x(2),x(2))T




核技巧在支持向量机中的应用



x1xjK(xi,xj)=ϕ(xi)ϕ(xj) 代替
此时对偶问题的目标函数:
W(α)=12Ni=1Nj=1αiαjyiyjK(xi,xj)Ny=1αi
分类决策函数:
f(x)=sign[Nsi=1aiyiϕ(xi)ϕ(xj)+b]=sign[Nsi=1aiyiK(xi,x)+b]
实际应用中,往往依赖领域知识直接选择核函数,核函数选择的有效性需要通过实验验证。





正定核



K(x,z)
K(x,z)χ×χxiχ,K(x,z)xiGramK(x,z)
ϕS
S
S



1.定义映射,构成向量空间S


定义映射
ϕ:xK(,x)
定义线性组合
f()=mi=1αiK(,xi)
考虑线性组合集合S,由于集合S对加法和数乘是封闭的,所以S构成一个向量空间



2.在S上定义内积,使其成为内积空间

f()=mi=1αiK(,xi)
g()=li=1βiK(,zi)
定义运算*
fg=mi=1lj=1αiβjK(xi,zj)
证明运算*是空间S的内积,为此要证:
1(cf)g=c(fg),cR
2(f+g)h=fh+gh,hS
3fg=gf
4ff0 ,
ff=0f=0




2.将S完备化为希尔伯特空间


||f||=ff
因此,S是一个赋范向量空间.根据泛函分析理论,对于不完备的赋范向量空间S,一定可以完备化。一个内积空间,作为赋范向量空间是完备的时侯,就是希尔伯特空间。
这一希尔伯特空间称为再生希尔伯特空间。
这是由于核K有再生性:
K(,x)g=f(x)K(,x)K(,z)=K(x,z) 称为再生核




4.正定核的充要条件



定理(正定核的充要条件)
Kχ×χRK(x,z)
xiχ,i=1,2,...,m,K(x,z)Gram:
K=[K(xi,xj)]m×m
是半正定矩阵


定义(正定核的等价定义)
χRn,K(x,z)χ×χ
xiχ,i=1,2,...,m,K(x,z)Gram:
K=[K(xi,xj)]m×m
是半正定矩阵,则称 K(x,z) 是正定矩阵


这一定义在构造核函数很有用,但对于一个具体函数,检验是否为正定函数不容易,在实际问题往往运用已有的核函数
另外,由Mercer定理可以得到Mercer核,正定核比Mercer核更具有一般性





常用的核函数


1.多项式核函数
K(x,z)=(xz+1)p
对应的支持向量机是一个p次多项式分类器,分类决策函数:
f(x)=sign[Nxi=1aiyi(xix+1)p+b]


2.高斯核函数
K(x,z)=exp(||xz||22σ2)
对应的支持向量机是一个高斯径向基函数分类器,分类决策函数:
f(x)=sign[Nxi=1aiyiexp(||xz||22σ2)+b]


3.字符串核函数
核函数不仅可以定义在欧氏空间,还可以定义在离散数据的集合上,比如,字符串核是定义在字符串集合上的核函数.字符串核函数在文本分类、信息检索、生物信息学等方面都有应用





非线性支持向量分类机



将线性支持向量机对偶形式中的内积换为核函数,就可拓展为非线性支持向量机


系统归纳定义和算法


定义:
f(x)=sign[Nsi=1aiyiK(xi,x)+b]
称为非线性支持向量, K(x,z)


算法:

1)选择适当的核函数K(x,z)和惩罚参数C>0,构造并求解最优化问题
minα12Ni=1Nj=1αiαjyiyjK(xixj)Ni=1αi
s.t. Niαiyi=0
0αiC,i=1,2,....,N
求得最优解 α=(α1,...,αN)T


2) ααj0<αj<C
计算 b=yjNi=1yiαi(xixj)


3)构造决策函数:
f(x)=sign[Nsi=1aiyiK(xi,x)+b]
K(x,z) 是正定核函数时,此问题时凸二次规划问题,解是存在的





序列最小优化算法



支持向量机学习问题最后归化为凸二次规划问题,有全局最优解,并且有许多最优化算法课用于求解
但当训练数据样本容量很大的时,这些算法往往变得很低效,所以如何高效实现支持向量机学习是一个重要问题
目前人们已提出许多快速实现算法,SMO序列最小优化算法就是之一


SMO算法要解如下对偶问题
minα12Ni=1Nj=1αiαjyiyjK(xixj)Ni=1αi
s.t. Niαiyi=0
0αiC,i=1,2,....,N
一个变量 αi(xi,xj) ,变量的总数等于训练样本容量N


SMO算法是一种启发式算法:
如果所有变量的解都满足此最优化问题的KKT条件,那么解就得到。
否则,选择两个变量,固定其他变量,针对这两个变量构造一个二次规划问题
这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使原始二次规划问题的目标函数值变得更小,重要的是,这是子问题可以通过解析方法求解,这样可以大大提高整个算法的计算速度,子问题有两个变量,一个是违反KKT条件最严重的那个,另一个由约束条件自动确定
讲原问题不断分解为子问题


整个SMO算法包括两部分:求解两个变量二次规划的解析方法选择变量的启发式方法



两个变量二次规划的求解方法


假设选择 α1,α2 ,于是最优化问题的子问题可以写成:
minα1,α2W(α1,α2)=12K11α21+12K22α22+y1y2K12α1α2(α1+α2)+y1α1Ni=3yiαiKi1+y2α2Ni=3yiαiKi2


s.t.α1y1+α2y2=Ni=3yiαi=ζ
0αiC,i=1,2
其中 Kij=K(xi,xj),i,j=1,2,...,N,ζ 是常数,目标函数式中省略了不含 α1,α2 的常数项


这里写图片描述
这里写图片描述




变量的选择方法

SMO算法在每个子问题中选择两个变量优化,其中至少一个变量是违反KKT条件的



1.第一个变量的选择
SMO称选择第一个变量的过程为外层循环.外层循环在训练样本中违反KKT条件最严重的样本点
具体:
αi=0yig(xi)1
0<αi<Cyig(xi)=1
αi=Cyig(xi)1
其中, g(xi)=Nj=1αjyjK(xi,xj)+b


该检验是在 ϵ 范围内进行
检验过程,先遍历所有满足条件 0<αi<C 的样本点,即在间隔边界上的支持向量点,是否满足KKT条件
如果都满足KKT,那么遍历整个训练集,是否满足KKT



2.第二个变量的选择
SMO称选择第二个变量的过程为内层循环.
选择 α2使|E1E2| 最大



3.计算阈值b和差值 Ei
bnew1=E1y1K11(αnew1αold1)y2K21(αnew2αold2)+bold
bnew2=E2y2K12(αnew1αold1)y2K22(αnew2αold2)+bold


Enewi=SyjαjK(xi,xj)+bnewyi




SMO算法


算法
输入:训练数据集,精度 ξ
输出:近似解 α^
1)取初值 α(0),k=0
2)选取优化变量 a(k)1,a(k)2 ,解析求解两个变量的最优化问题,求得最优解 a(k+1)1,a(k+1)2 ,更新 αα(k+1)
3)若在精度 ξ 范围内满足停机条件
Ni=1αiyi=0
0αiC,i=1,2,...,N
yig(xi)=1=11{xi|αi=0}{xi|0<αi<C}{xi|αi=C}
其中,
g(xi)=Nj=1αjyjK(xj,xi)+b
则转4);否则另k=k+1,转2)
4)取 α^=αk+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值