我们现在通过对支持向量机核心理念的理解,并经过简单的数学推导,得到了支持向量机的优化目标函数。为了能够求解这个优化问题,我们需要对目标函数进行进一步处理。

主要包含两个步骤:
- 对目标函数进行简化,使其转化为更容易求解的形式。
- 优化约束条件,使支持向量机能够应用到现实问题中。
1. 简化目标


- 分子称为函数间隔,它表示样本代入分类函数后的输出大小,再除以分母对其进行归一化,得到样本到超平面的几何距离,也就是几何间隔。
- 当 \(w、b\) 确定后,函数间隔越大,几何距离越大。函数间隔越小,几何距离越小。
- 在当前优化目标中,我们并不知道最小函数间隔是多少。为了简化后续的求解,我们可以先提出一个设想:将最小的函数间隔固定为 1。在做这个设想时,有一个重要的前提,就是不能改变超平面本身,也不能改变原本的优化目标。
我们缩放 \(w\) 与 \(b\) M 倍时,样本到超平面的几何间隔不变。

我们缩放 \(w\) 与 \(b\) M 倍时,超平面不会变化。

我们缩放 \(w\) 与 \(b\) M 倍时,函数间隔会缩放 M 倍。

接下来,我们利用这三个特点,在不改变原始目标的含义的情况下, 将目标函数进一步简化。我们选择一个合适的缩放系数 \(k\) 对 \(w\) 与 \(b\) 进行缩放,使得:


那么,所有样本到超平面的最小几何距离表示简化为(注意:缩放 w、b 不会影响最大几何间隔,以及超平面位置):

至此,我们的目标函数变成下面这种形式(注意:这个目标函数还要满足约束条件):

最大化问题转换为最小化问题:

\(||w||\) 带根号不好求导,平方去掉根号,\(1/2\)用来后续求导消去系数,最优解不变为。目标函数写成:

目标函数的含义是:希望找到一个分类超平面,使所有样本不仅能够被正确分类,而且距离超平面最近的样本也尽可能远,从而让分类边界具有更强的抗扰动能力。
2. 约束松绑
支持向量机的目标函数,要求所有的样本在满足约束 \( y_{i}(w·x_{i} + b) \ge 1 \) 的前提下,寻找几何间隔最大的那个超平面。但现实中,数据往往存在噪声、异常点,甚至可能线性不可分,导致部分样本无法满足这个严格约束,使得支持向量机不存在可行解。
为解决这一问题,需要对约束条件进行松绑,允许部分样本违反 \( y_{i}(w·x_{i} + b) \ge 1 \) 约束,但同时,我们也不能无限制的允许样本违反约束。
具体做法是,在目标函数中引入一个非负松弛变量 \(\xi\),该变量用于记录每个样本违反约束的程度。

假如:\(\xi = 0.3\) 表示该样本没有完全满足间隔约束,而是违反了 (0.3) 程度的要求。这个违反约束的程度会通过松弛变量 \(\xi\) 体现到目标函数中。
因此,软间隔 SVM 的目标函数包含两个相互制约的部分:
- 第一部分:用于间隔的大小。间隔越大,分类边界对样本扰动越不敏感,模型的泛化能力通常越强。
- 第二部分:用于衡量训练样本违反间隔约束的程度。间隔违例程度越小,说明模型对训练数据的分类和间隔要求满足得越好,对数据的拟合效果也越好。
公式中的惩罚参数 C 本质上是在减少训练误差和扩大分类间隔之间进行权衡。
- 当 C 较小时,模型认为部分样本违反间隔约束是可以接受的,因此会更加关注获得更大的分类间隔,对噪声和异常样本不敏感,具有更好的泛化能力和抗扰动能力,但可能产生较多训练误差。
- 当 C 较大时,模型更加重视减少违反约束,会尽可能让训练样本满足间隔约束,即使需要牺牲部分分类间隔。但如果过度关注训练样本,模型可能会受到噪声和异常点影响,导致泛化能力下降。



冀公网安备13050302001966号