西瓜书6 支持向量机

函数间隔与几何间隔

支持向量机是一种经典的二分类模型
分类学习的基本思想就是基于训练集在样本空间找到一个划分超平面,将不同类别的样本分开,但是能将样本分开的有很多我们应该找那个最中间的超平面,因为其容忍度最好。如下图所示应该用最中间的红色面
Pasted image 20250328191352.png

当超平面距离与它最近的数据点的间隔越大,分类的鲁棒性越好,即当新的数据点加入时,超平面对这些点的适应性最强,出错的可能性最小。
因此需要让所选择的超平面能够最大化这个间隔 Gap, 常用的间隔定义有两种,一种称之为函数间隔,一种为几何间隔

Pasted image 20250328192340.png

线性超平面📔

首先超平面分为线性的和非线性的,线性的一般来说就是SVM法来分类,非线性的就是用核方法来映射到高维空间使之有线性的性质。简要介绍一下超平面的一些性质:

  • 法向量恒垂直于超平面。
  • 和法向量相同的点代入超平面方程恒大于零,否则恒小于等于零(下面计算间隔距离时候的假设可以看出)
  • 法向量和位移项确定唯一一个超平面
  • 等倍缩放法向量和偏移值超平面不变

函数间隔

在SVM中,我们用一个超平面 wTx+b=0 来把数据分成两类,比如正类(标签 y=1)和负类(标签 y=1)。函数间隔 (functional margin) 就是用来衡量某个数据点 x 离这个超平面有多“远”,同时还能判断它有没有被正确分类。

定义:
函数间隔 γ^ 的公式是:

γ^=y(wTx+b)

x 是数据点,y 是它的标签(1 或 -1),w 是超平面的法向量,b 是偏置。
简单来说,函数间隔是超平面输出 wTx+b 乘以标签 y 的结果。

含义:
如果 wTx+b>0,说明点 x 在超平面的一侧(比如正类侧)。
如果 wTx+b<0,说明点 x 在另一侧(比如负类侧)。
乘上标签 y 后,
γ^>0 表示分类正确,
γ^<0 表示分类错误。

对于整个训练数据集 T={(xi,yi)},i=1,...,n 来说,我们关心的是超平面在所有点上的表现。通常,我们定义数据集上的函数间隔 γ^所有单个点函数间隔的最小值

γ^=minγ^i,(i=1,...,n)

这个最小值反映了超平面分类能力的最“短板”——离超平面最近的点决定了整体的安全性。

几何间隔

函数间隔的问题:它会受到超平面参数 wb 的缩放影响。
举个例子:假设有个超平面 w1x1+w2x2+b=0。如果我把 wb 都乘以2,变成 2w1x1+2w2x2+2b=0
超平面本身没变(两边还是相等的,分割效果一样)。但函数间隔 γ^=y(wTx+b) 会变成原来的2倍。比如原来的 γ^=3,缩放后变成 6,但点到超平面的实际距离根本没变!这说明函数间隔不能真正反映点到超平面的几何距离,只是个数学上的数值,受参数大小影响。

因为函数间隔有这个缺陷,我们需要一个更靠谱的指标来衡量点到超平面的真实距离。这就引出了几何间隔(geometrical margin)。

样本空间中任意一点 x 到超平面的距离 r 为:

r=|wTx+b|||w||

其中 ||w||=w12+w22++wd2 是法向量的模。这个公式表示点到超平面的垂直距离。

最大间隔与支持向量

间隔(margin)是指两个边界超平面(wTx+b=1wTx+b=1)之间的距离。计算可得,间隔 γ 为:

γ=2||w||

支持向量(support vectors)是指那些恰好位于边界上的样本点,即满足 yi(wTxi+b)=1 的点。这些点距离超平面最近,直接决定了间隔的大小。

为了最大化间隔,SVM的数学优化问题可以表示为:

maxw,b2||w||

s.t. yi(wTxi+b)1,i=1,2,,m

其中:
m 是样本总数。
约束条件 yi(wTxi+b)1 确保所有样本点被正确分类,且距离超平面至少为单位距离。
为了计算方便,将最大化 2||w|| 转化为等价的最小化问题,即最小化 ||w||2。于是优化问题变为:

minw,b12||w||2

s.t. yi(wTxi+b)1,i=1,2,,m
12||w||2 是为了后续求导时简化计算。

对偶问题

拉格朗日乘子法
Pasted image 20250328200946.png

Pasted image 20250328200957.png

核函数

非线性数据(非线性问题——>线性问题)
原理是将数据映射到高维数据,在高维空间线性可分。
从低维转换到高维,Φ是转换函数。
Pasted image 20250328200644.png

高维的特征空间的特征向量设为 ϕ(x),因此该空间中的超平面为:

f(x)=wTϕ(x)+b

Pasted image 20250328201201.png

我们把上面的内积表示成:

κ(xi,xj)=ϕ(xi)ϕ(xj)

那么什么样的函数可以作为核函数呢?我们有Mercer定理 (充分非必要):只要一个对称函数所对应的核矩阵半正定, 则它就能作为核函数来使用. 核矩阵和常用的核函数如下图所示:

Pasted image 20250328201124.png

软间隔支持向量机

现实中, 很难确定合适的核函数使得训练样本在特征空间中线性可分; 同时一个线性可分的结果也很难断定是否是有过拟合造成的,所以引入”软间隔”的概念, 允许支持向量机在一些样本上不满足约束.
Pasted image 20250328201435.png

这样优化目标变为:

29.png

如同阶跃函数,0/1 损失函数虽然表示效果最好,但是数学性质不佳。因此常用其它函数作为“替代损失函数”。

30.png

Pasted image 20250328201539.png

Pasted image 20250328201655.png

西瓜书第六章--支持向量机 - Anrys_Tian - 博客园