Andrew Ng - SVM【1】最优间隔分类器

本文深入探讨Andrew Ng关于SVM的理论,重点在于最优间隔分类器的概念。从间隔的直观理解出发,分析预测的“信心”,并介绍了函数间隔和几何间隔的定义。最终目标是寻找最大化间隔的分类器,以实现更准确和自信的分类预测。

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

Andrew Ng - SVM【1】最优间隔分类器


Ng说,SVM是最好的监督学习算法(因为你用不用,它就那里,现成的)。为了了解SVM,我们首先应该絮叨絮叨怎样用一个较大的间隔将数据划开成类;接着好戏上演,我会讲到最优间隔分类器;然后我会讲一些核函数(Kernel)的知识,这个尤其重要,因为核函数是打通低维和高维通道的关键手段;最后,我将会讲解用SMO算法怎么实现SVM,顺利收关。


从间隔(margins)讲起


1. 对间隔的一个直观的认识

在logistic回归中,对于预测以θ为参在x(特征向量,?)条件下y为1的概率<p(y=1|x;θ)>,我们会使用模型hθ(x)=g(θTx)作为假设。所以当hθ0.5或者当且仅当θTx0时我们会认为预测结果为1()。那么我们来考虑一下这个问题,显然θTx越大hθ(x)=p(y=1|x;θ)就会越大,因此当我们在这种情况下,将结果预测为1就会非常“自信”。所以直观的理解,当θTx0时,我们会很确定预测的结果为1,而当θTx0的时候则会很肯定y=0。现给定一个训练集,同样,对于训练数据,假设我们可以找到相应的θ使得不论何时,只要y=1就有θTx(i)0,只要y=0就有θTx(i)0,那么根据这样的θ对相应的新数据做预测就非常简单了。不过理想很丰满,现实很骨感,要找到这样的θ还真不容易。不过有个概念叫函数间隔,可能会给这个理论一个相对好一点的支撑。

2. 对于预测的“信心”做一个分析

看下图,X代表正的训练样例,O代表负的训练样例,我们用一条线(由θTx=0确定的分割超平面)将正负样本分开,对A、B、C三点我们来做个分析。


初次遇见,分割超平面

对于A点,我们会很确定y=1;而相反,对于C点来说,或许根据当前的SH我能说y=1,可是机器学习这种事情,不确定性的东西本来就多,如果SH稍微动一动,可能C的分类就不好说了。因此,当点距离我的分割超平面足够远的时候,我们对数据的预测会很简单。那么,能不能在不同类别之间,真的存在那么一个边界,使我们很自信准确(意思就是离边界足够远)的预测出数据所属类别?几何间隔(geometric margin)粗现。

3. 一些符号的说明

为了更好的讲解SVM,我们将使用y{1,1}()来表示分类标签;分类器将以w,b为参,即:hω,b(x)=g(ωTx+b)
在上述h中,g(z)={11z0z<0,可以注意到,b其实是超平面的截距。

4. 函数间隔和几何间隔

给定训练样本m条(x(i),y(i)),i{1,...,m},对于参数(ω,b)定义函数间隔为:


γ^(i)=y(i)(ωTx+b)

值得注意的是,根据我们上边对间隔的描述,如果y(i)=1,意味着如果要使得函数间隔尽量大的话,则 ωTx+b得是一个很大的正数;相反,如果y(i)=1,意味着如果要使得函数间隔尽量大的话,则 ωTx+b得是一个很大的负数。同时不难看出当y(i)(ωTx+b)>0的时候,我们的预测一定是对的。所以相应的如果我们需要准确的预测数据的分类,则函数间隔越大越好(说明离超平面越远)。
但是这里存在一个问题,对于我们选取的g(z),可以看到其实g(ωT+b)=g(2ωT+2b),但这个却对函数间隔有很大的影响,通过调整参数的系数,我们发现函数间隔可能会变得很大(把(ωT+b)变成(2ωT+2b),函数间隔就翻了一倍)。这不科学!通常在这种情况下,为了标准化函数间隔,上帝会为我们打开一扇窗。承接上文,几何间隔亮相!
如图所示:

这里写图片描述

可以看到,ω是一个和分割超平面正交(0)的向量,A点则是某个分类为y(i)=1对应的x(i)所确定的点(x(i)也是一个向量),其距超平面的距离AB=γ(i)。要计算γ(i),有几个条件:

(1)ω/||ω||(2)Ax(i)(3)B(x(i)γ(i)ω/||ω||)(4)B


所以可以有以下等式:

ωT(x(i)γ(i)ω/||ω||)+b=0

则可以得到γ(i)

γ(i)=ωT(x(i)+b)||ω||=(ω||ω||)Tx(i)+b||ω||

当然看得出这只是A点的几何间隔,更一般的,对于任意训练样本(x(i),y(i))在以(ω,b)为参情况下的几何间隔见如下等式:

γ(i)=y(i)((ω||ω||)Tx(i)+b||ω||)

||ω||=1的时候,函数间隔和几何间隔相等,这就意味着在两种间隔中间,冥冥中有某种联系(γ=γ^||ω||);还有一点要说明的是,当前妈妈已经不用担心我的几何间隔随(ω,b)的变化而变化了(对其做了正规化)。
回归到我们的问题,找一个分割超平面,让所有点都离超平面尽可能的远。所以在给定集合S={(x(i),y(i));i=1,...,m}时,函数间隔和几何间隔最终的取值为

函数间隔:γ^=mini=1,...,mγ^(i)


几何间隔:γ=mini=1,...,mγ(i)

5. 最优间隔分类器

让我们先把目标放在一个线性可分的训练集上,稍后再推广到高维的情况。我们要使得间隔最大化,才能尽量满足分类时尽可能“自信”的需求,所以所求问题可以描述如下:


maxγ,ω,bγs.t.y(i)(ωTx(i)+b)γ,i=1,...,m||ω||=1.


解释一下上边的式子,γ为样本中最小的函数间隔,所以要求最大的函数间隔,必然要满足条件:所有的样本函数间隔都要不小于γ,而||ω||=1保证了函数间隔和几何间隔相等。至此,如果我们能够写代码搞定上述问题,那最优间隔无疑是找到了。可是看看上边的式子,这个最优值怎么求呢?怎么求呢?怎么求呢?实际上在条件||ω||=1的约束下,我们面临的是一个非凸问题,这意味着两件事,不好解决和非常不好解决(对于凸优化问题,有许多现成软件可以接收格式化的参数,直接计算优化结果),所以在此基础上我们把问题转化一下:

maxγ,ω,bγ^||ω||s.t.y(i)(ωTx(i)+b)γ^,i=1,...,m


当然在当前情况下,问题仍然非凸,我们依然愁眉不展(用γ=γ^||ω||γ换了一下,还去掉了一个条件“||ω||=1”),那怎么办嘞?这时候ωb在几何间隔下有个性质,可以随意伸缩!这就比较屌了,我直接固定γ^=1,那么肯定会有与之对应的ωb使得γ不变!再审视一下问题,最大化γ^/||ω||就变成了最大化1/||ω||等同于最小化||ω||2。方程式如下:

minγ,ω,b12||ω||2s.t.y(i)(ωTx(i)+b)1,i=1,...,m


眼熟!现在问题转化成了一个有线性条件约束的凸优化问题!也是我们要找的最优间隔分类器!找一段二次规划(quadratic programming)代码直接搞定!
话说我们的最优分割超平面找到这里就应该画上句号了,可是注意,我们解决的问题依然是线性的,面对的还是假设中必然可分类的情况,那么如果训练样本非线性或者线性不可分怎么办?一个更加高端的话题等着我们去探索,让我们来认识一下拉格朗日对偶规划(lagrange duality programming),为核函数做个铺垫。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值