Skip to content

第 8 章 支持向量机

支持向量机(Support Vector Machine, SVM)解决的是分类边界问题。它和逻辑回归一样可以做二分类,但关注点不同:逻辑回归关心类别概率,支持向量机更关心分类边界离样本有多远。

本章先讲线性可分情况下的最大间隔,再讲软间隔和核函数。

8.1 分类超平面

二分类问题中,先把标签写成:

y{1,+1}

线性分类器用一个超平面划分类别:

wTx+b=0

其中:

符号含义
x输入特征向量
w决定超平面方向的权重向量
b控制超平面平移的偏置
wTx+b样本到分类边界一侧的带符号分数

预测规则为:

y^=sign(wTx+b)

如果 wTx+b>0,预测为正类;如果 wTx+b<0,预测为负类。

二维平面中,超平面就是一条直线;三维空间中,超平面就是一个平面;更高维时仍然叫超平面。

8.2 间隔

对于一个样本 (xi,yi),如果分类正确,则:

yi(wTxi+b)>0

其中 xiyi 分别是第 i 个训练样本及其标签,m 表示训练样本数量。

支持向量机不仅要求分对,还希望样本离分类边界尽量远。样本到超平面的距离为:

|wTxi+b|w

考虑标签以后,几何间隔可以写成:

γi=yi(wTxi+b)w

SVM 的目标是让离边界最近的样本也尽量远。这个“最近样本到边界的距离”就是分类间隔。

8.3 硬间隔 SVM

如果数据线性可分,可以要求所有样本都被正确分类,并且满足:

yi(wTxi+b)1

在这个约束下,两个支持超平面为:

wTx+b=1wTx+b=1

它们之间的距离是:

2w

最大化间隔等价于最小化 w,通常写成优化问题:

minw,b12w2

约束为:

yi(wTxi+b)1,i=1,,m

这就是硬间隔 SVM。硬间隔要求所有训练样本完全可分,对噪声非常敏感。

8.4 支持向量

支持向量是离分类边界最近的样本。在线性可分情况下,它们满足:

yi(wTxi+b)=1

这些样本决定了最终边界的位置。离边界很远的样本即使移动一点,通常也不会改变分类超平面。

这也是“支持向量机”名字的来源:真正支撑分类边界的是少数支持向量。

8.5 软间隔 SVM

现实数据往往不是完全线性可分的。可能有噪声点,也可能类别本身有重叠。软间隔 SVM 允许少量样本违反间隔约束。

引入松弛变量 ξi0

yi(wTxi+b)1ξi

优化目标变成:

minw,b,ξ12w2+Ci=1mξi

其中 C 控制“间隔大小”和“分类错误惩罚”之间的权衡。

C含义可能结果
较大更重视训练样本分类正确间隔可能变窄,方差变大
较小更允许违反间隔间隔更宽,模型更平滑

8.6 合页损失

合页损失(Hinge Loss)是 SVM 常用的损失函数。

软间隔 SVM 也可以从损失函数角度理解。对单个样本,合页损失为:

Li=max(0,1yi(wTxi+b))

如果样本不仅分对,而且离边界足够远,即 yi(wTxi+b)1,损失为 0。

如果样本分对但离边界太近,或者直接分错,损失大于 0。

因此 SVM 的目标可以写成:

12w2+Ci=1mmax(0,1yi(wTxi+b))

第一项控制间隔,第二项惩罚训练样本违反间隔。

8.7 核函数

如果数据不能用直线或超平面分开,可以把样本映射到更高维空间:

xϕ(x)

然后在高维空间中做线性分类。

核函数的作用是:不显式计算 ϕ(x),而是直接计算两个样本映射后的内积:

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

这样可以在不真正构造高维特征的情况下,得到非线性分类边界。

常见核函数:

核函数形式说明
线性核K(x,z)=xTz不做非线性映射
多项式核K(x,z)=(xTz+c)d构造多项式特征
高斯核K(x,z)=exp(|xz|22σ2)按距离衡量相似度

多项式核中,c 是常数项,d 是多项式次数。高斯核中的 σ 控制相似度随距离下降的速度。

8.8 高斯核

高斯核也叫径向基函数核(Radial Basis Function Kernel, RBF Kernel):

K(x,z)=exp(xz22σ2)

如果 xz 很接近,xz2 很小,核函数接近 1;如果它们距离很远,核函数接近 0。

σ 控制相似度下降速度。

σ影响
较小只有很近的点才相似,边界更弯曲
较大更远的点也相似,边界更平滑

使用高斯核前必须做特征缩放。因为高斯核依赖距离,某个特征数值范围过大时,会主导距离计算。

8.9 SVM 和逻辑回归

模型损失函数关注点输出
逻辑回归交叉熵概率估计概率
SVM合页损失最大间隔类别或间隔分数

逻辑回归会持续关心概率是否更接近真实标签。SVM 更关心样本是否在正确一侧,并且离边界是否足够远。只要样本已经分对且间隔足够大,合页损失就是 0。

8.10 使用建议

  • 样本数不大、特征维度较高时,线性 SVM 常常有效。
  • 数据存在明显非线性边界时,可以尝试高斯核。
  • 高斯核 SVM 在样本很多时训练成本较高。
  • 特征缩放对 SVM 很重要,尤其是使用高斯核时。
  • 多分类通常用一对多或一对一方式组合多个二分类 SVM。

Powered by VitePress