SVM学习笔记

本文介绍了SVM(支持向量机)的核心思想,包括最大几何间隔、函数间隔与几何间隔的区别、线性可分与线性不可分情况下的支持向量机。还探讨了非线性支持向量机如何通过核函数实现高维映射,以及SMO(序列最小最优算法)在求解支持向量机对偶问题中的应用。

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

SVM个人理解


核心

SVM(Support Vector Machine),二分类模型(可扩展为多分类模型, One-vs-rest or one-vs-one,也可做回归,参考SVR)。其要点如下:

  • Maximum geometric margin: 求空间中一超平面得到最大分类间隔
  • Hinge loss: 对支持向量施加的松弛惩罚
  • Kernel trick: 利用核函数非线性分类

概念

  • 问题形式化:给定训练数据集
    T=(x1,y1),(x2,y2),,(xN,yN)

    ,xiRn,yi{+1,1},i=1,2,,N,xiiyixi
  • 线性可分: 假设训练集在输入空间线性可分,即存在一个超平面: wx+b=0 能够完全划分正负实例点。
  • 函数间隔
    γ^=mini=1,,Nyi(wxi+b)
  • 几何间隔
    γ=mini=1,,Nyi(wxi+b)w=γ^w

线性可分支持向量机


对于线性可分的训练数据集,可以证明一定存在唯一的超平面能够最大化几何间隔。我们认为具有最大间隔的超平面具有最佳分类效果。
在这,个人对函数间隔与几何间隔这样理解。对同一个超平面,通过比例缩放 w b,函数间隔也会同比例变化。也就是说,对于一个成功划分正负实例的超平面(不一定最优),该平面固定,但是通过缩放 w b,可以使其function margin取任何正值。而我们的目标是找到具有最大margin的超平面。显然通过最大化函数间隔没有意义,因为任何成功划分训练实例的超平面都可以使函数间隔无限大。我们注意到,对一个超平面,函数间隔与 w 的比值保持不变,也就是说几何间隔与超平面关联。所以,我们目标是最大化几何间隔,而且我们可以令函数间隔为1,然后最小化 w 达到最大化几何间隔目的。

因此,线性可分支持向量机学习算法-最大硬间隔法

约束最优化问题

minw,b12w2s.t. yi(wxi+b)10,i=1,2,,N

求得最优解 w b
超平面
wx+b=0

分类决策函数
f(x)=sign(wx+b)

拉格朗日对偶问题

约束最优化问题

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=0αi0,i=1,2,,N

求得
α=(α1,α2,,αN)T

wi=i=1Nαiyixi

选择一个正分量 αj>0 ,计算
b=yji=1Nαiyi(xixj)

超平面
wx+b=0

分类决策函数
f(x)=sign(wx+b)

αi0 的实例为支持向量。

线性支持向量机


对于线性不可分训练集,也就是说不存在一个超平面能够完全正确地把正负实例点分隔开来。我们通过对实例点的函数间隔小于1的情况施加一个松弛因子,并对此施加惩罚。并把惩罚与 w 的加权和作为最优化目标,称之为最大化软间隔

采取损失函数为hinge loss

L(yi(wxi+b))=max(1yi(wxi+b),0)=ζi

因此,线性可分支持向量机学习算法- 最大软间隔法

约束最优化问题

minw,b12w2+Ci=1Nζi s.t. yi(wxi+b)1ζi,i=1,2,,Nζi0,i=1,2,,N

求得最优解 w b
超平面
wx+b=0

分类决策函数
f(x)=sign(wx+b)

拉格朗日对偶问题

约束最优化问题

minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t. i=1Nαiyi=00αiC,i=1,2,,N

求得
α=(α1,α2,,αN)T

w=i=1Nαiyixi

选择一个正分量 0<αj<C ,计算
b=yji=1Nαiyi(xixj)

超平面
wx+b=0

分类决策函数
f(x)=sign(wx+b)

αi>0 的实例为支持向量。若 αi<C ζi=0 , 支持向量 xi 在间隔边界上。若 αi=C0<ζi<1 ,则分类正确,支持向量 xi 在间隔边界与分类超平面之间。若 αi=Cζi=1 ,支持向量 xi 在分类超平面。若 αi=Cζi>1 ,支持向量 xi 在分离超平面误分类一侧。(存在约束,参考引用)
显然,线性支持向量机更具一般化。
另外,据证明 E(Ltest)NsvN ,其中左侧方程表示测试集上错误率的期望,右侧表示支持向量数目,表示样本总数。他的意义是:支持向量越多,测试集上错误率可能会越高。这其实很容易理解,如果数据离分界面很远,那么支持向量一般会很少,测试性能自然会不错;反之,如果数据全部分布在分界面上,那表明数据缠绕很严重,测试集效果基本不靠谱。
参考SVM在线性不可分的情况下,利用核函数升维后就一定线性可分吗?-肖寒的回答

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


对于输入空间相互缠绕程度比较强的训练集合,通过以上方法很难找到理想的分类超平面。我们知道,高维空间具有更强的数据表现能力,那么我们把输入空间映射到更高维空间,在高维空间最大化软间隔很可能取得更好的效果,very promising。

在此,我们定义核函数

K(x,z)=ϕ(x)ϕ(z)

ϕ(x) 为输入空间到特征空间(高维)的映射。

注意,我们没有显式定义映射 ϕ(x) 。也就是说,特征空间的定义和输入空间到高维特征空间的映射都是隐式完成的。我们只要定义适当的核函数,那么一定存在对应的映射函数,使得两个实例在高维上映射的内积等于二者的核函数。在这,经常说的核函数是正定核函数。

因此,线性可分支持向量机学习算法-最大软间隔与核技法

  1. 选取适当的核函数 K(x,z) 和适当的参数 C ,构造并求解最优化问题
    minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t. i=1Nαiyi=00αiC,i=1,2,,N

    求得
    α=(α1,α2,,αN)T

    选择一个正分量 0<αj<C ,计算
    b=yji=1NαiyiK(xi,xj)

    分类决策函数
    f(x)=sign(i=1NαiyiK(xi,x)+b)

SMO

序列最小最优算法:解决凸二次规划的对偶问题,即支持向量机对偶问题 α 的求解。

思路:选取两个变量 αi,αj ,固定其他 N2 个参数变量,解二次规划问题。不断迭代,直到所有 αi 满足KKT条件。

  1. 求解两个变量二次规划的解析方法
  2. 选择变量启发式方法:违反KKT最严重的 αi ,另一个由约束确定。

引用

李航《统计学习方法》
维基百科:SVM
SVM在线性不可分的情况下,利用核函数升维后就一定线性可分吗?-肖寒的回答

作者是个beginner,有问题请提出!欢迎交流!谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值