Bootstrap

支持向量机SVM原理详解

1、超平面

在数学和几何中,超平面Hyperplane)是一个通用化的几何概念。它是用来描述高维空间中的某个维度少一维的子空间。例如:

  • 在二维空间(平面)中,超平面就是一条直线,它将平面分成两个部分。
  • 在三维空间(我们通常理解的三维世界)中,超平面是一个平面,它将空间分成两个部分。
  • 在更高的维度中,例如四维或更高维空间,超平面则是比空间维数低一维的几何对象,它同样将高维空间分成两个部分。

从数学表达上,超平面通常可以用一个线性方程来表示,如:

w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b = 0 w_1 x_1 + w_2 x_2 + \cdots + w_n x_n + b = 0 w1x1+w2x2++wnxn+b=0

其中 w 1 , w 2 , … , w n w_1, w_2, \dots, w_n w1,w2,,wn 是权重, b b b 是偏差项,而 x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,,xn 是 n 维空间中的坐标。这个方程的解就是超平面在该空间中的位置。

在机器学习(尤其是支持向量机)中,超平面用于将数据点分成不同的类别。

2、SVM原理

支持向量机(Support Vector Machine, SVM)是一种监督学习算法,广泛用于分类问题。它的核心思想是通过一个超平面来最大化不同类别之间的间隔,从而实现分类。下面我们从数学的角度来详细说明支持向量机的原理。

1. 问题定义

假设我们有一个线性可分的二分类问题,训练数据集表示为 ( { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) } ( \{(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)\} ({(x1,y1),(x2,y2),,(xn,yn)}),其中 ( x i ∈ R d ( x_i \in \mathbb{R}^d (xiRd) 是特征向量, ( y i ∈ { − 1 , 1 } ( y_i \in \{-1, 1\} (yi{1,1}) 是类标签。

SVM 的目标是找到一个超平面将不同类别的数据点分开,这个超平面的方程可以表示为:

w T x + b = 0 w^T x + b = 0 wTx+b=0

其中:

  • ( w ( w (w) 是法向量,决定超平面的方向。
  • ( b ( b (b) 是偏置项,决定超平面与原点的距离。

2. 分类决策

对于给定的样本点 ( x ),分类决策依据超平面的方程进行:

  • 如果 ( w T x + b > 0 ( w^T x + b > 0 (wTx+b>0),则分类为 ( 1 ) 类。
  • 如果 ( w T x + b < 0 ( w^T x + b < 0 (wTx+b<0),则分类为 ( -1 ) 类。

对于给定的训练样本 ( ( x i , y i ) ( (x_i, y_i) ((xi,yi)),其中 ( y i ∈ { 1 , − 1 } ( y_i \in \{1, -1\} (yi{1,1}) 表示分类标签,支持向量机的目标是确保这些样本点能够被正确分类。

  • 如果 ( y i = 1 ( y_i = 1 (yi=1)(正类),我们希望该点在超平面的正侧,即满足:

w T x i + b > 0 w^T x_i + b > 0 wTxi+b>0

  • 如果 ( y i = − 1 ( y_i = -1 (yi=1)(负类),我们希望该点在超平面的负侧,即满足:

w T x i + b < 0 w^T x_i + b < 0 wTxi+b<0

可以将这两个条件合并为一个不等式:

y i ( w T x i + b ) > 0 y_i (w^T x_i + b) > 0 yi(wTxi+b)>0

这个条件确保了所有样本点都被正确分类。对于 ( y i = 1 ( y_i = 1 (yi=1)的样本,如果 ( w T x i + b > 0 ( w^T x_i + b > 0 (wTxi+b>0),则 y i ( w T x i + b ) = 1 ⋅ ( w T x i + b ) > 0 y_i (w^T x_i + b) = 1 \cdot (w^T x_i + b) > 0 yi(wTxi+b)=1(wTxi+b)>0;对于 ( y i = − 1 ( y_i = -1 (yi=1) 的样本,如果 ( w T x i + b < 0 ( w^T x_i + b < 0 (wTxi+b<0),则 y i ( w T x i + b ) = − 1 ⋅ ( w T x i + b ) > 0 y_i (w^T x_i + b) = -1 \cdot (w^T x_i + b) > 0 yi(wTxi+b)=1(wTxi+b)>0

得到约束条件

在支持向量之外的样本,应该位于超平面外更远的地方,因此我们可以将分类条件拓展为所有样本都必须至少满足 ( y i ( w T x i + b ) ≥ 1 ( y_i (w^T x_i + b) \geq 1 (yi(wTxi+b)1),即:

y i ( w T x i + b ) ≥ 1 ∀ i y_i (w^T x_i + b) \geq 1 \quad \forall i yi(wTxi+b)1i

这个条件表示所有样本点必须被正确分类,并且支持向量与超平面的距离为 1

3. 最大化间隔

SVM 的关键在于找到能够最大化间隔(margin)的超平面。间隔指的是超平面到距离它最近的点的距离。

  • 支持向量:离超平面最近的那些点称为支持向量。SVM 试图使得支持向量到超平面的距离最大化。
  • 间隔的计算:对于一个点 ( x i ( x_i (xi),它到超平面的距离是:

Distance = ∣ w T x i + b ∣ ∥ w ∥ \text{Distance} = \frac{|w^T x_i + b|}{\|w\|} Distance=wwTxi+b

为了使得间隔最大化,支持向量机引入了支持向量的概念。支持向量是最靠近超平面的点,其几何上距离超平面的距离为 ( 1 ∥ w ∥ \frac{1}{\|w\|} w1)。我们希望通过约束条件,将最靠近超平面的点(支持向量)的几何距离标准化为 1。

因此,对于支持向量,我们约定满足刚好分类正确的条件:

y i ( w T x i + b ) = 1 y_i (w^T x_i + b) = 1 yi(wTxi+b)=1

这意味着支持向量到超平面的距离刚好为 1。
最终,间隔变成:
Distance = 1 ∥ w ∥ \text{Distance} =\frac{1}{\|w\|} Distance=w1

4. 优化目标

SVM 的目标是最大化间隔,即最小化 ( ∥ w ∥ ( \|w\| (w)。因此,我们的优化问题可以写为:

min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2} \|w\|^2 w,bmin21w2

同时,约束条件是所有样本点要被正确分类,即:

y i ( w T x i + b ) ≥ 1 ∀ i y_i (w^T x_i + b) \geq 1 \quad \forall i yi(wTxi+b)1i

这是一个凸二次优化问题,能够通过拉格朗日乘子法和对偶问题来求解。

3、凸优化问题

将支持向量机(SVM)的优化问题转换为对偶问题,主要是通过拉格朗日乘子法来处理约束条件。下面是详细步骤:

1. 原始优化问题

我们从 SVM 的原始优化问题开始。SVM 的目的是找到一个超平面 ( w T x + b = 0 ( w^T x + b = 0 (wTx+b=0) 来分隔两个类别,同时最大化间隔。原始问题为:

优化目标

min ⁡ w , b 1 2 ∥ w ∥ 2 \min_{w, b} \frac{1}{2} \|w\|^2 w,bmin21w2

约束条件

y i ( w T x i + b ) ≥ 1 ∀ i y_i (w^T x_i + b) \geq 1 \quad \forall i yi(wTxi+b)1i

2. 拉格朗日乘子法

为了将此问题转换为对偶问题,我们引入拉格朗日乘子 ( α i ≥ 0 ( \alpha_i \geq 0 (αi0),为每个约束 ( y i ( w T x i + b ) − 1 ≥ 0 ( y_i (w^T x_i + b) - 1 \geq 0 (yi(wTxi+b)10) 对应一个拉格朗日乘子。原始的拉格朗日函数 ( L ( w , b , α ) ( L(w, b, \alpha) (L(w,b,α)) 为:

L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i [ y i ( w T x i + b ) − 1 ] L(w, b, \alpha) = \frac{1}{2} \|w\|^2 - \sum_{i=1}^n \alpha_i \left[ y_i (w^T x_i + b) - 1 \right] L(w,b,α)=21w2i=1nαi[yi(wTxi+b)1]

其中:

  • ( α i ≥ 0 ( \alpha_i \geq 0 (αi0) 是拉格朗日乘子,对应于每个约束。

3. 拉格朗日函数分析

拉格朗日函数 ( L ( w , b , α ) ( L(w, b, \alpha) (L(w,b,α)) 包含两个部分:

  • 第一部分是目标函数 ( 1 2 ∥ w ∥ 2 ( \frac{1}{2} \|w\|^2 (21w2),它希望最小化法向量的模,等价于最大化间隔。
  • 第二部分包含所有约束的乘积,确保分类正确。

为了求解这个优化问题,我们需要同时最小化 w w w b b b(主问题),并且最大化 α \alpha α(对偶问题)。

4. 求解对 w w w b b b 的极值

接下来,我们对 w w w b b b 进行最小化。首先对 w w w 求偏导数,并令其等于 0:

∂ L ( w , b , α ) ∂ w = w − ∑ i = 1 n α i y i x i = 0 \frac{\partial L(w, b, \alpha)}{\partial w} = w - \sum_{i=1}^n \alpha_i y_i x_i = 0 wL(w,b,α)=wi=1nαiyixi=0

得到:

w = ∑ i = 1 n α i y i x i w = \sum_{i=1}^n \alpha_i y_i x_i w=i=1nαiyixi

这表明,最终的法向量 w w w 是支持向量的线性组合。

然后对 b b b 求偏导数,并令其等于 0:

∂ L ( w , b , α ) ∂ b = ∑ i = 1 n α i y i = 0 \frac{\partial L(w, b, \alpha)}{\partial b} = \sum_{i=1}^n \alpha_i y_i = 0 bL(w,b,α)=i=1nαiyi=0

因此,我们得到一个约束条件:

∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1nαiyi=0

5. 构造对偶问题

现在,我们将 w w w的表达式 ( w = ∑ i = 1 n α i y i x i ( w = \sum_{i=1}^n \alpha_i y_i x_i (w=i=1nαiyixi) 代入到拉格朗日函数中,消去 w w w

( w = ∑ i = 1 n α i y i x i ( w = \sum_{i=1}^n \alpha_i y_i x_i (w=i=1nαiyixi) 代入到 ( 1 2 ∥ w ∥ 2 ( \frac{1}{2} \|w\|^2 (21w2) 中:

1 2 ∥ w ∥ 2 = 1 2 ( ∑ i = 1 n α i y i x i ) T ( ∑ j = 1 n α j y j x j ) = 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j \frac{1}{2} \|w\|^2 = \frac{1}{2} \left( \sum_{i=1}^n \alpha_i y_i x_i \right)^T \left( \sum_{j=1}^n \alpha_j y_j x_j \right) = \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j x_i^T x_j 21w2=21(i=1nαiyixi)T(j=1nαjyjxj)=21i=1nj=1nαiαjyiyjxiTxj

然后,我们将 w w w的表达式代入拉格朗日函数的第二项:

− ∑ i = 1 n α i [ y i ( w T x i + b ) − 1 ] = − ∑ i = 1 n α i y i ( ∑ j = 1 n α j y j x j T x i ) + ∑ i = 1 n α i y i b + ∑ i = 1 n α i -\sum_{i=1}^n \alpha_i \left[ y_i (w^T x_i + b) - 1 \right] = - \sum_{i=1}^n \alpha_i y_i \left( \sum_{j=1}^n \alpha_j y_j x_j^T x_i \right)+\sum_{i=1}^n \alpha_i y_i b+\sum_{i=1}^n \alpha_i i=1nαi[yi(wTxi+b)1]=i=1nαiyi(j=1nαjyjxjTxi)+i=1nαiyib+i=1nαi

由上述约束条件:
∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1nαiyi=0
得到对偶问题的优化目标:

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j x_i^T x_j αmaxi=1nαi21i=1nj=1nαiαjyiyjxiTxj

对偶问题的约束条件:

  1. ( α i ≥ 0 ( \alpha_i \geq 0 (αi0)
  2. ( ∑ i = 1 n α i y i = 0 ( \sum_{i=1}^n \alpha_i y_i = 0 (i=1nαiyi=0)

通过求解这个对偶问题,我们可以得到每个样本对应的拉格朗日乘子 ( α i ( \alpha_i (αi)。再根据 ( α i ( \alpha_i (αi) 的值,求得 w w w b b b,从而得到最终的分类决策函数。
在支持向量机(SVM)的对偶问题求解完成后,拉格朗日乘子 α i \alpha_i αi 的解已经找到。通过这些解,我们可以计算出权重向量 w w w。不过,我们仍需要求解偏置项 b b b,它是决策边界的偏移量。

6、通过支持向量求解 b b b

由于 b b b出现在 SVM 的决策函数 g ( x ) = w T x + b g(x) = w^T x + b g(x)=wTx+b中,求解 b b b 时我们需要利用支持向量。支持向量是那些位于边界上的训练样本,即它们满足 y i ( w T x i + b ) = 1 y_i (w^T x_i + b) = 1 yi(wTxi+b)=1。支持向量对应的拉格朗日乘子 α i > 0 \alpha_i > 0 αi>0,而其他样本的 α i = 0 \alpha_i = 0 αi=0

我们可以通过任意一个支持向量的公式来求解 b b b

支持向量的条件

对于支持向量 x i x_i xi,有:

y i ( w T x i + b ) = 1 y_i (w^T x_i + b) = 1 yi(wTxi+b)=1

w w w 的表达式 w = ∑ j = 1 n α j y j x j w = \sum_{j=1}^n \alpha_j y_j x_j w=j=1nαjyjxj 代入上式(别忘了,我们有 ( y i ∈ { − 1 , 1 } ( y_i \in \{-1, 1\} (yi{1,1})):

y i ( ∑ j = 1 n α j y j x j T x i + b ) = 1 y_i \left( \sum_{j=1}^n \alpha_j y_j x_j^T x_i + b \right) = 1 yi(j=1nαjyjxjTxi+b)=1

化简得:

∑ j = 1 n α j y j x j T x i + b = y i \sum_{j=1}^n \alpha_j y_j x_j^T x_i + b = y_i j=1nαjyjxjTxi+b=yi

从这里我们可以解出 b b b

b = y i − ∑ j = 1 n α j y j x j T x i b = y_i - \sum_{j=1}^n \alpha_j y_j x_j^T x_i b=yij=1nαjyjxjTxi

要计算 b b b,我们只需要找到一个支持向量 x i x_i xi,然后将其代入上述公式即可。更一般地,我们也可以使用多个支持向量的平均值来求解 b b b,以提高计算的稳定性。具体步骤如下:

  1. 选择多个支持向量:这些支持向量是满足 α i > 0 \alpha_i > 0 αi>0 的样本点。
  2. 代入求 b b b 的公式
    • 对每一个支持向量 x i x_i xi,我们可以使用公式:
      b = y i − ∑ j = 1 n α j y j x j T x i b = y_i - \sum_{j=1}^n \alpha_j y_j x_j^T x_i b=yij=1nαjyjxjTxi
    • 若选择多个支持向量,可以取它们对应的 b b b 的平均值:
      b = 1 m ∑ i ∈ S V ( y i − ∑ j = 1 n α j y j x j T x i ) b = \frac{1}{m} \sum_{i \in SV} \left( y_i - \sum_{j=1}^n \alpha_j y_j x_j^T x_i \right) b=m1iSV(yij=1nαjyjxjTxi)
      其中, S V SV SV表示支持向量的集合, m m m 是支持向量的个数。

7. 对偶问题的解法

通过求解上述的对偶优化问题,我们可以得到拉格朗日乘子 ( α i ( \alpha_i (αi)。找到最优解后,法向量 w w w可以由支持向量(那些 ( α i > 0 ( \alpha_i > 0 (αi>0))的线性组合表示为:

w = ∑ i = 1 n α i y i x i w = \sum_{i=1}^n \alpha_i y_i x_i w=i=1nαiyixi

代入 g ( x ) = w T x + b g(x)=w^T x + b g(x)=wTx+b,最终用于分类的决策函数为:

f ( x ) = sign ( ∑ i = 1 n α i y i x i T x + b ) f(x) = \text{sign}\left(\sum_{i=1}^n \alpha_i y_i x_i^T x + b \right) f(x)=sign(i=1nαiyixiTx+b)

其中 b b b可以通过支持向量求得。

4、非线性如何划分

支持向量机(SVM)通过一种称为核技巧(Kernel Trick)的方法来处理非线性数据。基本思想是:将原始的输入数据从低维的非线性可分空间映射到高维空间,在这个高维空间中,数据变得线性可分,然后再使用线性SVM进行分类。具体步骤和方法如下:

1. 非线性数据问题

在原始空间中,SVM只能找到一个线性超平面来分割数据。然而,很多数据集是非线性可分的,线性分类器在这些情况下无法取得好的效果。例如:

  • 数据在二维平面中是非线性分布的,例如以圆形或螺旋形方式分布。
  • 线性SVM无法找到一个直线或平面来正确分类这些数据。

为了解决这个问题,SVM需要将原始数据映射到一个更高的维度,在这个高维空间中,数据可能就变得线性可分了。

2. 核技巧的核心思想

SVM 并不直接将数据映射到高维空间,而是通过使用一种称为核函数(Kernel Function)的方法,避免实际地进行高维计算。核函数能够计算两个样本在高维空间中的内积,而无需显式地进行高维映射。

SVM 的优化问题依赖于样本之间的内积(即 ( x i ⋅ x j ( x_i \cdot x_j (xixj)),我们可以通过核函数来计算这个内积:

K ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) K(x_i, x_j) = \phi(x_i)^T \phi(x_j) K(xi,xj)=ϕ(xi)Tϕ(xj)

其中:

  • x i x_i xi x j x_j xj 是原始空间中的样本。
  • ϕ ( x ) \phi(x) ϕ(x) 是将 x x x 从原始空间映射到高维空间的映射函数。
  • K ( x i , x j ) K(x_i, x_j) K(xi,xj) 是核函数,它计算了 x i x_i xi x j x_j xj 在高维空间中的内积。

通过使用核函数,我们可以在不显式进行高维映射的情况下,计算出在高维空间中样本之间的内积,从而利用线性SVM进行分类。

3. 常见的核函数

SVM 使用核函数来替代直接的内积计算,不同的核函数对应于不同的高维映射。常见的核函数有:

1. 线性核(Linear Kernel)

K ( x i , x j ) = x i T x j K(x_i, x_j) = x_i^T x_j K(xi,xj)=xiTxj
这个核函数表示在原始空间中不进行任何映射,直接应用线性SVM。适用于数据已经线性可分的情况。

2. 多项式核(Polynomial Kernel)

K ( x i , x j ) = ( x i T x j + c ) d K(x_i, x_j) = (x_i^T x_j + c)^d K(xi,xj)=(xiTxj+c)d
这个核函数将数据映射到高维多项式空间,适用于非线性关系可以用多项式模型表示的情况。

  • c c c 是常数(通常 c ≥ 0 c \geq 0 c0)。
  • d d d 是多项式的阶数,控制映射的维度。

3. 高斯径向基核(RBF Kernel)/ 高斯核

K ( x i , x j ) = exp ⁡ ( − ∥ x i − x j ∥ 2 2 σ 2 ) K(x_i, x_j) = \exp\left( -\frac{\|x_i - x_j\|^2}{2\sigma^2} \right) K(xi,xj)=exp(2σ2xixj2)
RBF 核将数据映射到无限维的空间,适用于各种非线性数据。它非常灵活且常用于实际问题中。 σ \sigma σ 控制高斯函数的宽度,决定了每个数据点的“影响范围”。

4. Sigmoid 核(类似于神经网络的激活函数)

K ( x i , x j ) = tanh ⁡ ( κ x i T x j + c ) K(x_i, x_j) = \tanh(\kappa x_i^T x_j + c) K(xi,xj)=tanh(κxiTxj+c)
Sigmoid 核在某些情况下类似于神经网络中的一个激活函数,适用于神经网络相关的任务。

4. 使用核技巧的 SVM 优化问题

使用核函数后,SVM 的优化目标和对偶问题发生了一些变化。原始的对偶优化问题依赖于样本之间的内积 ( x i ⋅ x j ( x_i \cdot x_j (xixj),现在变为依赖于核函数:

对偶优化目标:

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j K(x_i, x_j) αmaxi=1nαi21i=1nj=1nαiαjyiyjK(xi,xj)

约束条件:
  1. α i ≥ 0 \alpha_i \geq 0 αi0
  2. ∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1nαiyi=0

在这里,内积 x i T x j x_i^T x_j xiTxj 被核函数 K ( x i , x j ) K(x_i, x_j) K(xi,xj) 替代。因此,在高维空间中的优化依然是线性问题,但是通过核函数的作用,解决了原始空间中的非线性问题。

5. SVM 的决策函数

训练完成后,SVM 的分类决策函数也依赖于核函数,表示为:

f ( x ) = ∑ i = 1 n α i y i K ( x i , x ) + b f(x) = \sum_{i=1}^n \alpha_i y_i K(x_i, x) + b f(x)=i=1nαiyiK(xi,x)+b

其中, α i \alpha_i αi 是拉格朗日乘子, K ( x i , x ) K(x_i, x) K(xi,x) 是核函数,它计算新样本 x x x 与训练样本 x i x_i xi 的相似度。

  • 如果使用线性核,这个决策函数就等价于线性SVM。
  • 如果使用非线性核(例如 RBF 核),决策函数将是一种非线性分类器。

6. 核函数的选择

选择合适的核函数对于非线性问题的解决至关重要:

  • 线性核适用于线性可分或接近线性可分的数据。
  • 多项式核适用于多项式关系较强的数据,但阶数 d d d 需要调节。
  • RBF 核是最常用的核函数之一,它可以很好地处理复杂的非线性数据。
  • Sigmoid 核与神经网络类似,在特定应用中有时会使用,但不如 RBF 核普遍。

即使有了核函数,支持向量机(SVM)仍需要引入软间隔正则化,以增强对噪声和不可分数据的鲁棒性。以下是引入软间隔和正则化的原因及其对应的数学推导和原理。

5、软间隔

虽然通过核函数可以将非线性数据映射到高维空间,并且使其在高维空间中线性可分,但在实际数据集中,有噪声的样本或错误标注的样本可能无法被完全正确分类。因此,直接使用一个完全的线性可分分类器(硬间隔SVM)可能会导致以下问题:

  • 过拟合:当分类器过于严格地尝试将所有样本分类正确时,它可能会对数据中的噪声过于敏感,从而对训练数据过拟合,无法很好地泛化到新的数据。
  • 无法处理不可分数据:某些数据集中,数据点在高维空间中依然不是完全线性可分的,硬间隔SVM无法找到一个有效的超平面来区分这些数据。

因此,引入软间隔(Soft Margin)是为了允许某些样本可以违反分类间隔要求,以提高模型的鲁棒性,并控制模型的复杂度,避免过拟合。

1、允许部分错误分类

为了应对上述问题,SVM 引入了软间隔的概念。软间隔允许一些样本违反间隔条件,即允许它们出现在错误的一侧,或者没有完全位于正确的边界上。为此,我们引入松弛变量(slack variables) ξ i \xi_i ξi 来表示每个样本违反间隔的程度。

软间隔 SVM 的目标函数和约束条件

在软间隔 SVM 中,优化问题变为在保持最大间隔的同时,允许一定的分类错误。引入松弛变量后的优化问题可以表示为:

目标函数:

min ⁡ w , b , ξ   1 2 ∥ w ∥ 2 + C ∑ i = 1 n ξ i \min_{w, b, \xi} \ \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n \xi_i w,b,ξmin 21w2+Ci=1nξi

其中:

  • 1 2 ∥ w ∥ 2 \frac{1}{2} \|w\|^2 21w2 是与硬间隔 SVM 一致的间隔最大化目标。
  • C ∑ i = 1 n ξ i C \sum_{i=1}^n \xi_i Ci=1nξi 是为了惩罚违反间隔的样本, ξ i ≥ 0 \xi_i \geq 0 ξi0 表示第 i i i 个样本的松弛程度。
  • C C C 是一个正则化参数,用来控制模型在最大间隔和分类错误之间的权衡。较大的 C C C 倾向于减少分类错误,较小的 C C C 则允许更多分类错误,从而使间隔更大。
约束条件:

y i ( w T x i + b ) ≥ 1 − ξ i ∀ i y_i (w^T x_i + b) \geq 1 - \xi_i \quad \forall i yi(wTxi+b)1ξii

ξ i ≥ 0 ∀ i \xi_i \geq 0 \quad \forall i ξi0i

这里, y i ( w T x i + b ) ≥ 1 − ξ i y_i (w^T x_i + b) \geq 1 - \xi_i yi(wTxi+b)1ξi 意味着每个样本的分类间隔必须至少为 1 − ξ i 1 - \xi_i 1ξi,并且 ξ i \xi_i ξi 是允许间隔违背的程度。当 ξ i = 0 \xi_i = 0 ξi=0 时,样本严格满足分类间隔条件;当 ξ i > 0 \xi_i > 0 ξi>0 时,样本位于间隔内部或被错误分类。

6、正则化:控制模型的复杂度

在软间隔 SVM 中,正则化通过引入参数 C C C 来控制模型的复杂度。它的作用是调整间隔最大化和分类错误之间的权衡。

C C C 的影响:

  • 较大的 C C C:表示对分类错误的惩罚更大,因此模型会更严格地尝试将每个样本正确分类,但可能导致过拟合,因为它会对噪声样本过于敏感。
  • 较小的 C C C:表示对分类错误的容忍度更高,因此模型会允许更多样本违反分类间隔,间隔可能更大,但泛化能力更强。

正则化在数学上通过目标函数中的 ( C ∑ i = 1 n ξ i ( C \sum_{i=1}^n \xi_i (Ci=1nξi) 项来实现。此项增加了对违反分类间隔样本的惩罚,并且通过调节 ( C ) 的值来调整对错误分类的容忍度。

7、软间隔和核函数结合

即使引入了核函数来处理非线性数据,仍然有必要使用软间隔和正则化。原因是即便数据被映射到高维空间,有些数据仍可能不完全线性可分,或者存在噪声样本,这些噪声样本可能导致分类器出现过拟合。因此,结合核函数和软间隔可以增强分类器的泛化能力。

使用核函数的软间隔 SVM 优化目标

我们现在将核函数引入到软间隔 SVM 的对偶问题中。对偶问题的形式与原始 SVM 相似,但会包含惩罚项 C C C

对偶优化问题

max ⁡ α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j K ( x i , x j ) \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j K(x_i, x_j) αmaxi=1nαi21i=1nj=1nαiαjyiyjK(xi,xj)

约束条件

  1. 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0αiC
  2. ∑ i = 1 n α i y i = 0 \sum_{i=1}^n \alpha_i y_i = 0 i=1nαiyi=0

这里的 α i \alpha_i αi 是拉格朗日乘子, K ( x i , x j ) K(x_i, x_j) K(xi,xj) 是核函数。 0 ≤ α i ≤ C 0 \leq \alpha_i \leq C 0αiC 这一约束表明拉格朗日乘子不再无限制,受正则化参数 ( C ) 的影响。

;