线性支持向量机(Linear SVM)的硬间隔与优化求解过程
我将为您讲解线性支持向量机中的硬间隔分类器原理与优化求解过程。这是一个基础但重要的机器学习算法。
问题描述
给定一组线性可分的训练数据{(x₁,y₁), (x₂,y₂), ..., (xₙ,yₙ)},其中xᵢ ∈ Rᵈ是特征向量,yᵢ ∈ {-1, +1}是类别标签。我们需要找到一个超平面wᵀx + b = 0,使得所有正类样本(yᵢ = +1)落在超平面的一侧,所有负类样本(yᵢ = -1)落在另一侧,并且让距离超平面最近的样本点与超平面之间的间隔(margin)最大化。
核心思想
硬间隔SVM的目标是找到一个最优分离超平面,使得:
- 所有样本都被正确分类
- 分类间隔最大化
- 这是一个凸优化问题,有全局最优解
解题步骤详解
步骤1:定义超平面与函数间隔
对于分离超平面wᵀx + b = 0:
- 决策函数:f(x) = sign(wᵀx + b)
- 函数间隔:γᵢ = yᵢ(wᵀxᵢ + b)
- 几何间隔:γᵢ/‖w‖,表示样本点到超平面的带符号距离
步骤2:建立最大化间隔的优化问题
我们希望最大化最小的几何间隔:
max γ
s.t. yᵢ(wᵀxᵢ + b) ≥ γ‖w‖, i = 1,...,n
通过缩放变换,我们可以固定函数间隔γ = 1,问题转化为:
max 1/‖w‖ ⇔ min ½‖w‖²
s.t. yᵢ(wᵀxᵢ + b) ≥ 1, i = 1,...,n
步骤3:构建拉格朗日函数
引入拉格朗日乘子αᵢ ≥ 0,构建拉格朗日函数:
L(w, b, α) = ½‖w‖² - Σᵢ₌₁ⁿ αᵢ[yᵢ(wᵀxᵢ + b) - 1]
步骤4:求解对偶问题
根据KKT条件,我们先对原变量求导:
∂L/∂w = 0 ⇒ w = Σᵢ₌₁ⁿ αᵢyᵢxᵢ
∂L/∂b = 0 ⇒ Σᵢ₌₁ⁿ αᵢyᵢ = 0
将结果代回拉格朗日函数,得到对偶问题:
max Σᵢ₌₁ⁿ αᵢ - ½Σᵢ₌₁ⁿΣⱼ₌₁ⁿ αᵢαⱼyᵢyⱼxᵢᵀxⱼ
s.t. αᵢ ≥ 0, i = 1,...,n
Σᵢ₌₁ⁿ αᵢyᵢ = 0
步骤5:分析KKT条件与支持向量
最优解满足KKT条件:
αᵢ[yᵢ(wᵀxᵢ + b) - 1] = 0, i = 1,...,n
这意味着:
- 当αᵢ = 0时,对应的样本不影响决策边界
- 当αᵢ > 0时,必有yᵢ(wᵀxᵢ + b) = 1,这些样本就是支持向量
步骤6:计算偏置项b
利用任意支持向量(xₛ, yₛ)计算:
b = yₛ - wᵀxₛ
为数值稳定性,通常用所有支持向量的平均值:
b = (1/|S|) Σₛ∈S (yₛ - wᵀxₛ),其中S是支持向量集合
步骤7:得到最终决策函数
将w = Σᵢ₌₁ⁿ αᵢyᵢxᵢ代入,得到分类决策函数:
f(x) = sign(Σᵢ₌₁ⁿ αᵢyᵢxᵢᵀx + b)
这个结果表明,新样本的分类只依赖于支持向量与它的内积。
关键特点
- 硬间隔SVM要求数据线性可分
- 最终模型只依赖于少数支持向量
- 解具有稀疏性,大部分αᵢ为0
- 这是一个凸二次规划问题,保证找到全局最优解
这个硬间隔线性SVM为理解更复杂的软间隔和非线性SVM奠定了重要基础。