一、概述
支持向量机(Support Vector Machine)的模型包括原始问题下的模型和对偶问题下的模型,分别是
y(\mathbf{x}) = sign(\mathbf{w}^{T}\Phi(\mathbf{x})+b)\, , \, y(\mathbf{x}) = sign(\sum_{i=1}^{N} \alpha_i y_i K(\mathbf{x}_i, \, \mathbf{x}) + b^*)$$使用的学习策略是**间隔最大化**。感知机学习算法(PLA)在线性可分的数据集上选择任意一个可以将数据分开的线性分类器,而SVM选择在特征空间上**具有最大间隔**的线性分类器。因此SVM具有较强的抗噪声干扰能力。
结合最大间隔策略和特征转换,我们可以高效地学习复杂的边界模型。从学习可行性的角度来讲:
1. 在经过特征变换后的特征空间上学习线性模型,对应着原输入空间上的非线性模型。模型越复杂,VC维越大。此时,VC维为 $d_{特征}+1$,大于 $d_{输入空间}+1$。
2. 若我们限定了间隔,那么我们在特征空间上的VC维 $\widetilde{d}_{特征}+1$ 小于 $d_{特征}+1$。这是因为有些样本分布情况可以被简单的线性分类器*打散*,但无法被限定间隔的线性分类器*打散*。
3. 两者结合起来,保证了复杂模型的学习可行性。
4. 若特征变换到无穷维时,$\widetilde{d}_{特征}+1$ 趋于无穷,因此引入对偶问题和核技巧。若数据集在输入空间或者特征空间中线性不可分,我们将引入一个惩罚项以允许一定程序的“违反”。
下面将由简至繁依次介绍各种情况下的策略。
<br />
### 二、公式推导
1. **原始问题下的线性可分支持向量机**
分离超平面为 $\mathbf{w}^T \mathbf{x} + b = 0$,使用间隔最大策略来计算参数 $\mathbf{w}$,$b$。超平面关于样本点 $(\mathbf{x}_i, y_i)$ 的几何间隔(点到超平面的距离)为 $$\gamma_i = \frac{ y_i}{||\mathbf{w}||}(\mathbf{w}^T \mathbf{x}_i + b)$$最小值为$$\gamma = \min_{i=1,2,...,N}\,\,\,\gamma_i$$我们的目标就是使间隔最大化,即$$\max_{\mathbf{w},b} \,\,\,\gamma \\ s.t. \frac{ y_i}{||\mathbf{w}||}(\mathbf{w}^T \mathbf{x}_i + b) \geqslant \gamma, \,\,\, i=1,2,...,N$$由于将 $\mathbf{w}$,$b$ 按相同比例最大或缩小,对应的超平面不变。因此我们令 $\min_{i=1,2,...,N}\,\,\,y_i(\mathbf{w}^T \mathbf{x}_i + b) = 1$,则得到$$\min_{\mathbf{w},b} \,\,\, \frac{1}{2}||\mathbf{w}||^2 \\ s.t. \,\,\,1-y_i(\mathbf{w}^T \mathbf{x}_i + b) \leqslant 0, \,\,\, i = 1,2,...,N$$此时,问题转换为求解 $\widetilde{d}+1$( $|\mathbf{w}|+|b|$ )个变量,$N$ 个约束的凸二次规划问题,可以直接求解出 $\mathbf{w}^*$,$b^*$。
【注】在线性可分的情况下,训练数据集的样本中与分离超平面距离最近的样本点的实例被称为支持向量。在决定分离超平面时只有支持向量起作用。
<br />
2. **对偶问题下的线性可分支持向量机**
若特征空间趋于无穷维,则原始问题中变量个数 $\widetilde{d}+1$ 趋于无穷,无法求解。因此通过求解对偶问题得到原始问题的最优解。
**适用范围:特征维度远大于样本数目**
构建拉格朗日函数$$L(\mathbf{w}, b, \alpha) = \frac{1}{2} ||\mathbf{w}||^2 - \sum_{i=1}^{N}\alpha_i y_i (\mathbf{w}^T\mathbf{x}_i + b) + \sum_{i=1}^{N}\alpha_i \\ s.t. \,\,\, \alpha_i \geqslant 0, \,\,\, i = 1,2,...,N$$此时,原始问题变为 $\min_{\mathbf{w},b} \max_{\alpha} L(\mathbf{w}, b, \alpha) = p^*$,
对偶问题变为 $\max_{\alpha} \min_{\mathbf{w},b} L(\mathbf{w}, b, \alpha) = d^*$,
$p^* \geqslant d^*$,要想使等于成立,需要满足KKT条件,即
$$1-y_i(\mathbf{w}^T \mathbf{x}_i + b) \leqslant 0 \\ \alpha_i \geqslant 0 \\ \alpha_i[1-y_i(\mathbf{w}^T \mathbf{x}_i + b)] = 0 \\ \triangledown_{b} L(\mathbf{w}, b, \alpha) = 0 \\ \triangledown_{\mathbf{w}} L(\mathbf{w}, b, \alpha) = 0$$由上面等式可以解出$$\mathbf{w} = \sum_{i=1}^{N} \alpha_i y_i \mathbf{x}_i, \,\,\, \sum_{i=1}^{N} \alpha_i y_i = 0$$带入 $\max_{\alpha} \min_{\mathbf{w},b} L(\mathbf{w}, b, \alpha)$ 中可以得到$$\max_{\alpha} -\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j ({\mathbf{x}_i}^T \mathbf{x}_j )+ \sum_{i=1}^{N} \alpha_i \\ s.t. \,\,\, \sum_{i=1}^{N} \alpha_i y_i = 0, \,\,\, \alpha_i \geqslant 0, \,\,\, i =1,2,...,N$$即求解 $N$ 个变量,$N+1$ 个约束的凸二次规划问题。
<br />
3. **将核技巧应用于对偶问题下的线性可分支持向量机**
转换为对偶问题后,$\widetilde{d}+1$ 的计算量仍没有消除,而是隐藏在 $<\mathbf{x}_i, \,\, \mathbf{x}_j>$ 之中,若特征空间为无穷维,仍无法计算,因此引入核技巧。
若函数 $\Phi$ 是从输入空间到某个特征空间的映射,则 $<\Phi(\mathbf{x}_i), \,\,\Phi(\mathbf{x}_j)>$ 仍需 $\widetilde{d}+1$ 的计算量。
核技巧 $ K(\mathbf{x}_i, \, \mathbf{x}_j) = {\Phi(\mathbf{x}_i)}^T \Phi(\mathbf{x}_j) = <\Phi(\mathbf{x}_i), \,\,\Phi(\mathbf{x}_j)> $
使用核技巧时,我们直接计算 $ K(\mathbf{x}_i, \, \mathbf{x}_j)$ 的通用表达式,而无需先计算 $\mathbf{x}_i$ 和 $\mathbf{x}_j$ 的映射而再去求其内积,简化了特征空间中的内积运算。此时我们的策略为$$\max_{\alpha} -\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j K(\mathbf{x}_i, \, \mathbf{x}_j)+ \sum_{i=1}^{N} \alpha_i \\ s.t. \,\,\, \sum_{i=1}^{N} \alpha_i y_i = 0, \,\,\, \alpha_i \geqslant 0, \,\,\, i =1,2,...,N$$模型为$$y(\mathbf{x}) = sign(\sum_{i=1}^{N} \alpha_i y_i K(\mathbf{x}_i, \, \mathbf{x}) + b^*) \\ b^* = -\frac{1}{2} (\max_{i: y_i=-1} {w^*}^T\mathbf{x}_i + \min_{i: y_i=+1} {w^*}^T\mathbf{x}_i)
-
线性支持向量机(软间隔支持向量机)
若特征空间中的样本线性不可分,则我们需要放弃一些噪声实例。我们对每个样本点 (\mathbf{x},y) 引入一个松弛变量 \xi_i \geqslant 0,则$$\min_{\mathbf{w},b,\xi} ,,, \frac{1}{2}||\mathbf{w}||^2 + C\sum_{i=1}^{N} \xi_i \ s.t. ,,,1 - \xi_i - y_i(\mathbf{w}^T \mathbf{x}i + b) \leqslant 0, ,,, -\xi_i \leqslant 0,,,, i = 1,2,...,N$$ 这里,(\mathbf{w},b,\xi) 的解是存在的,其中,\mathbf{w} 的解唯一,但 b 的解存在一个区间,C>0 称为惩罚项,是调和 ||\mathbf{w}||^2 和 \sum_{i=1}^{N} \xi_i 的系数。
下面推导其对偶问题$$L(\mathbf{w},b,\xi,\alpha,\mu) = \frac{1}{2} ||\mathbf{w}||^2 - \sum^{N}\alpha_i y_i (\mathbf{w}^T\mathbf{x}i + b) + \sum^{N}\alpha_i - \sum_{i=1}^{N} \mu_i \xi_i \ s.t. ,,, \alpha_i \geqslant 0, ,,,\mu_i \geqslant 0, ,,, i = 1,2,...,N \ \triangledown_{b} L(\mathbf{w},b,\xi,\alpha,\mu) = -\sum_{i=1}^{N} \alpha_i y_i = 0 \ \triangledown_{\mathbf{w}} L(\mathbf{w},b,\xi,\alpha,\mu) = \mathbf{w} - \sum_{i=1}^{N} \alpha_i y_i \mathbf{x}i = 0 \ \triangledown L(\mathbf{w},b,\xi,\alpha,\mu) = C - \alpha_i - \mu_i = 0因此最终的策略为\min_{\alpha} \frac{1}{2} \sum_{i=1}{N}\sum_{j=1}\alpha_i \alpha_j y_i y_j K(\mathbf{x}i, , \mathbf{x}j) - \sum^{N} \alpha_i \ s.t. ,,, \sum^{N} \alpha_i y_i = 0, ,,, 0 \leqslant \alpha_i \leqslant C, ,,, i =1,2,...,N$$一个 N 个变量, 2N+1 个约束的凸二次规划问题。模型为y(\mathbf{x}) = sign(\sum_{i=1}^{N} \alpha_i y_i K(\mathbf{x}_i, , \mathbf{x}) + b^*)
三、补充
在SVM模型中,有三种样本点,non SV、free SV和bounded SV。
non SV:\alpha = 0,\xi = 0,样本点远离边界。
free SV:0 < \alpha < C,\xi = 0,样本点在边界上。
bounded SV:\alpha = C,\xi 为违反边界的大小。样本点超过边界或者有极小的可能在边界上。
模型选择的方法:
- 使用验证方法。
- 优先使用线性模型。
- 对于留一交叉验证法,其样本内误差存在上界 E_{loocv} \leqslant \frac{SV的数量}{N}。
线性支持向量机原始的最优化问题等价于$$\min_{w,b} \sum_{i=1}{N}[1-y_i(\mathbf{w}T \mathbf{x}i + b)] + \lambda ||\mathbf{w}||^2$$这里,当 z > 0, \,[z]_{+} = z,当 z \leqslant 0, \,[z]_{+} = 0。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法