资讯

软间隔最大化是什么?在间隔大小和分错代价之间求平衡

2026-11-053 分钟阅读百科
TL;DR软间隔最大化(Soft Margin Maximization)是软间隔支持向量机的学习策略,在最大化分类间隔的同时,为每个样本引入松弛变量允许少量违反约束,并在目标函数中加入以系数 C 加权的松弛变量之和,等价于“铰链损失加 L2 正则化”的优化问题。

软间隔最大化(Soft Margin Maximization)是软间隔支持向量机所采用的学习策略。它的目标是在两个相互矛盾的要求之间找到平衡:一方面让分类的间隔尽可能大,以获得更好的泛化能力;另一方面让训练样本中违反间隔要求、甚至被分错的情况尽可能少。

为什么需要“软”间隔

最初的支持向量机采用硬间隔最大化:要求所有训练样本都被正确地分开,并且都位于间隔边界之外,在满足这个前提的情况下让间隔最大。但这只适用于线性可分的数据。如果数据中存在噪声或者两类样本有所重叠,硬间隔的约束无法同时被满足,问题就没有解;即使数据恰好线性可分,个别异常的样本也可能让分界线被迫偏移,间隔变得很窄。软间隔最大化放宽了这些约束,允许一部分样本不满足要求。

怎么做:引入松弛变量

软间隔最大化为每一个训练样本引入一个非负的松弛变量,用来衡量这个样本违反约束的程度:松弛变量为零,说明这个样本被正确分类,而且位于间隔边界之外,完全满足要求;松弛变量在零和一之间,说明样本被正确分类,但进入了间隔区域;松弛变量大于一,说明样本被分到了错误的一侧。于是,原来要求每个样本到分界面的函数间隔至少为 1 的约束,就放宽为至少为 1 减去它的松弛变量。

当然,放宽约束是有代价的。软间隔最大化的目标函数由两部分组成:第一部分是权重向量长度平方的一半,最小化它就是最大化间隔;第二部分是所有样本的松弛变量之和乘以一个惩罚系数 C,最小化它就是让违反约束的程度尽量小。两者相加,就是要最小化的目标函数。

惩罚系数 C 的作用

参数 C 决定了两个目标之间的权衡。C 很大时,违反约束的代价很高,模型会尽量把每个训练样本都分对,间隔变窄,更接近硬间隔,容易过拟合;C 很小时,模型更愿意容忍一些错误来换取更宽的间隔,模型更简单,但可能欠拟合。C 是使用支持向量机时最需要调节的超参数之一,通常通过交叉验证来选择。

另一种视角:铰链损失

可以证明,软间隔最大化等价于最小化“铰链损失加上 L2 正则化项”。铰链损失的含义是:如果一个样本被正确分类并且离分界面足够远,损失为零;否则损失随着违反的程度线性增长。这个视角把支持向量机与逻辑回归等其他线性模型联系了起来:它们的区别主要在于使用了不同的损失函数,逻辑回归使用的是对数损失。

求解

软间隔最大化仍然是一个凸二次规划问题,有唯一的最优解。通常通过拉格朗日对偶方法求解,对偶问题中每个样本对应一个拉格朗日乘子,它被限制在零到 C 之间。那些乘子大于零的样本就是支持向量,包括位于间隔边界上的样本、进入间隔内的样本和被分错的样本。1998 年 John Platt 提出的 SMO(序列最小最优化)算法是求解这一对偶问题的经典高效方法,被 LIBSVM 等常用工具采用。