支持向量机(Support Vector Machine, SVM)是一种强大的机器学习算法,广泛应用于分类和回归问题中。其核心思想是通过最大化分类间隔来找到最优的决策边界。本文将从头到尾详细推导SVM的数学原理及其优化过程,帮助读者深入理解这一经典算法。
1. 问题定义与目标
假设我们有一个二分类数据集 \( D = \{(x_1, y_1), (x_2, y_2), \dots, (x_n, y_n)\} \),其中 \( x_i \in \mathbb{R}^d \) 是输入特征,\( y_i \in \{-1, +1\} \) 是对应的类别标签。我们的目标是找到一个超平面 \( w^\top x + b = 0 \),能够将两类数据尽可能分开,并具有良好的泛化能力。
为了实现这一目标,我们需要满足以下条件:
- 数据点必须位于超平面的两侧;
- 超平面应尽量远离最近的数据点,以确保分类的鲁棒性。
2. 最大间隔分离
2.1 分离超平面的形式
假设超平面为 \( w^\top x + b = 0 \),其中 \( w \) 是法向量,\( b \) 是偏置项。对于任意数据点 \( x_i \),它与超平面的距离为:
\[
\text{距离} = \frac{|w^\top x_i + b|}{\|w\|}
\]
由于数据点被分为两类 \( y_i \in \{-1, +1\} \),我们可以通过引入约束条件 \( y_i(w^\top x_i + b) \geq 1 \) 来保证所有正样本在超平面的一侧,负样本在另一侧。
2.2 最大间隔优化
为了找到最优的超平面,我们需要最大化分类间隔。分类间隔定义为:
\[
\text{间隔} = \frac{2}{\|w\|}
\]
因此,我们的目标是最小化 \( \|w\|^2 \),同时满足约束条件 \( y_i(w^\top x_i + b) \geq 1 \)。
3. 构造拉格朗日函数
为了处理约束优化问题,我们采用拉格朗日乘子法。构造拉格朗日函数如下:
\[
L(w, b, \alpha) = \frac{1}{2}\|w\|^2 - \sum_{i=1}^n \alpha_i [y_i(w^\top x_i + b) - 1]
\]
其中 \( \alpha_i \geq 0 \) 是拉格朗日乘子。
3.1 对偶问题
通过对 \( L(w, b, \alpha) \) 求导并令其等于零,可以得到以下条件:
\[
\frac{\partial L}{\partial w} = w - \sum_{i=1}^n \alpha_i y_i x_i = 0 \quad \Rightarrow \quad w = \sum_{i=1}^n \alpha_i y_i x_i
\]
\[
\frac{\partial L}{\partial b} = -\sum_{i=1}^n \alpha_i y_i = 0
\]
将这些条件代入原函数后,可以得到对偶形式的目标函数:
\[
\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^\top x_j
\]
约束条件为 \( \alpha_i \geq 0 \) 和 \( \sum_{i=1}^n \alpha_i y_i = 0 \)。
4. 核函数技巧
当数据不可线性可分时,SVM通过引入核函数 \( K(x_i, x_j) \) 将特征映射到高维空间,从而实现非线性分类。常用的核函数包括:
- 线性核:\( K(x_i, x_j) = x_i^\top x_j \)
- 多项式核:\( K(x_i, x_j) = (x_i^\top x_j + c)^d \)
- 高斯核(径向基函数):\( K(x_i, x_j) = \exp(-\gamma \|x_i - x_j\|^2) \)
通过核函数替换内积 \( x_i^\top x_j \),我们可以高效地解决高维问题。
5. 算法流程总结
1. 初始化参数;
2. 计算拉格朗日乘子 \( \alpha_i \);
3. 根据 \( w = \sum_{i=1}^n \alpha_i y_i x_i \) 和 \( b \) 计算超平面;
4. 使用核函数进行非线性分类。
6. 实际应用中的注意事项
- 正则化参数 C:控制软间隔的程度,值越大越倾向于硬间隔。
- 核函数选择:根据数据特性选择合适的核函数。
- 特征缩放:确保不同特征尺度一致,避免数值不稳定。
通过以上推导可以看出,SVM不仅理论严谨,而且具有较强的实践价值。希望本文能帮助读者更好地掌握和支持向量机的核心思想!