支持向量机(SVM)的间隔是通过最大化两类样本之间的最小距离来推断的。以下是详细的推导过程:
1. 超平面方程
SVM的目标是找到一个超平面,将两类样本分开。超平面的方程可以表示为:
其中, 是超平面的法向量, 是偏置项。
2. 间隔的定义
间隔(Margin)是指两类样本到超平面的最小距离之和。对于任意样本点 ,其到超平面的距离为:
对于正确分类的样本,有 ,因此距离可以简化为:
3. 最大化间隔
为了最大化间隔,我们需要最大化最小距离。假设所有样本都被正确分类,即 ,则最小距离为:
因此,最大化间隔等价于最小化 。为了简化计算,通常最小化。
4. 优化问题
SVM的优化问题可以表示为:
约束条件为:
5. 原始优化问题
SVM的原始优化问题是:
约束条件为:
其中:
- 是超平面的法向量,
- 是偏置项,
- 是样本的标签,
- 是样本特征。
6. 引入拉格朗日乘子
为了将约束优化问题转化为无约束优化问题,我们引入拉格朗日乘子 (每个样本对应一个乘子)。拉格朗日函数定义为:
其中:
- 是拉格朗日乘子,
- 是约束条件。
7. 对拉格朗日函数求极值
为了求解拉格朗日函数的极值,我们需要对 和 求偏导,并令其为零。
(1) 对 求偏导:
解得:
(2) 对 求偏导:
解得:
8. 将 和 的表达式代入拉格朗日函数
现在,我们将 和 代入拉格朗日函数 。
(1) 代入 的表达式
首先,计算 :
展开内积:
因此, 变为:
(2) 代入约束条件
接下来,处理拉格朗日函数中的约束项:
将 代入:
因此,约束项变为:
展开并整理:
根据 ,第二项 ,因此约束项简化为:
(3) 合并结果
将 和约束项代入拉格朗日函数:
化简:
9. 对偶问题的形式
对偶问题是一个关于拉格朗日乘子 的优化问题:
约束条件为:
其中, 是拉格朗日乘子, 是正则化参数。
10. 核函数的引入
如果数据是非线性可分的,可以通过核函数 将样本映射到高维空间。此时,对偶问题中的内积 被替换为核函数:
11. 对偶问题的最终形式
对偶问题的目标函数为:
约束条件为:
其中:
- 是核函数,用于计算样本 和 的内积。
- 是拉格朗日乘子。
12. 求解方法
对偶问题是一个凸二次规划问题,可以使用以下方法求解:
(1) 序列最小优化(SMO)算法
SMO 是专门为 SVM 设计的快速求解算法。它的核心思想是将大优化问题分解为一系列小优化问题,每次只优化两个拉格朗日乘子 和 ,同时固定其他乘子。
SMO 的步骤:
- 选择两个乘子:选择一对拉格朗日乘子 和 进行优化。
- 优化子问题:固定其他乘子,求解关于 和 的二次规划问题。
- 更新乘子:根据优化结果更新 和 。
- 检查收敛:重复上述步骤,直到满足收敛条件(如 KKT 条件)。
优点:
- 高效,特别适合大规模数据集。
- 只需要计算核函数的值,避免了高维空间的计算。
(2) 通用的二次规划求解器
如果数据集较小,可以使用通用的二次规划求解器(如 CVXOPT、quadprog 等)直接求解对偶问题。
步骤:
- 将对偶问题转化为标准的二次规划形式:
其中:- 是核矩阵,
- 是全 1 向量。
- 添加约束条件:
- 使用求解器求解。
优点:
- 简单直接,适合小规模问题。
- 不需要实现复杂的算法。
13. 求解后的步骤
求解对偶问题后,我们需要根据 计算超平面的参数 和 。
(1) 计算
根据对偶问题的解,超平面的法向量 可以表示为:
如果使用核函数, 不需要显式计算,因为预测时直接使用核函数。
(2) 计算
偏置项 可以通过支持向量计算。对于任意支持向量 ,满足:
因此:
通常对所有支持向量计算 并取平均值,以提高稳定性。
14. 预测新样本
对于新样本 ,其预测结果为:
其中:
- 是符号函数,返回 或 。
- 是核函数。
总结
对偶问题的推导过程如下:
- 从原始优化问题出发,引入拉格朗日乘子。
- 对拉格朗日函数求极值,得到 和 的表达式。
- 将结果代入拉格朗日函数,得到对偶问题的目标函数。
- 引入核函数以处理非线性问题。
- 通过求解对偶问题,得到拉格朗日乘子 ,并确定支持向量。
- 最终计算出超平面的参数 和 。
对偶问题的形式使得SVM能够高效地处理高维数据,并且通过核函数扩展到非线性分类问题。