SVM有三宝:间隔、对偶、核技巧
在机器学习中,支持向量机(Support Vector Machine, SVM)是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。
1. 预备
1.1 点到超平面的距离
在二维空间中的一点
将式
其中
1.2 不等式约束与KKT条件
对于给定的目标函数
分别对式
而对于带有不等式约束
原函数
的最值在约束范围内,此时约束条件并没有起到作用,满足条件: 原函数
的最值在约束范围外,此时的最值一定在约束条件的边界,满足条件:
合并上述情况的条件,即KKT(Karush-Kuhn-Tucker)条件:
1.3 凸二次规划问题
凸函数的定义为:
仿射函数为最高次数为1的多项式函数,仿射函数是一种特殊的凸函数:
凸优化问题是一种特殊的约束最优化问题,其中要求目标函数
且不等式约束函数
1.4 矩阵(向量)求导的几个公式
2. 最大间隔与支持向量
对于给定的训练样本集
式
它被称为“间隔”(margin)。
SVM的主要原理就是寻找具有“最大间隔”(maximum margin)的划分超平面,也就是要找到能满足
式
这就是SVM的基本型。
3. 最大间隔的对偶问题
可以观察到式
因为
当拉格朗日函数越接近目标函数,最小值越有可能出现,那么原始问题等效为:
为了方便求解,将
首先求
令式
式
令式
将
对偶问题
若能解出
另外上述条件将符合KKT条件:
可以观察到,训练样本中必有
4. 软间隔支持向量机
上述中的间隔被称为“硬间隔”(hard margin),而实际中的训练数据不可避免的存在噪声,对于这种情况需要引入“软间隔”(soft margin)的概念,即允许一定的错误,即不满足:
同时,不满足约束的样本应尽可能的少,在原优化目标基础上加上损失函数:
其中
另外还有hinge损失,式
引入”松弛变量“(slack variables)
构建
原问题为:
对偶问题为:
式
将对
相较于
5. 非线性支持向量机与核函数
在之前的章节中,我们假设样本在它们原来的空间
令
类似
对偶问题为:
假设从存在这样一个函数:
通过上面式可以避免直接计算高维空间中的内积,函数
式
求解后可得:
常用的核函数有:
名称 | 表达式 | 参数 |
---|---|---|
线性核 | ||
多项式核 | ||
高斯核(RBF核) | ||
拉普拉斯核 | ||
Sigmoid核 |
6. SMO求解拉格朗日参数
6.1 权重的更新
SMO的思想类似坐标上升算法,我们需要优化一系列的
式
SMO的核心思想是,对于一系列待优化的参数,先选取两个参数,固定剩下的参数进行优化。
选择式
优化目标及约束:
为了叙述简洁,记:
将式
由式
将式
这样就变成了只含有
将
令:
将
如果
,有: 如果
:
因此:
并且:
6.2 偏置的更新
当
: 因此:
有式
得: 将
代入 : 类似地,当
: 其他情况:
7. 代码简易实现
1 |
|
在鸢尾花数据集上进行测试
1 |
|
8. 参考资料
- 机器学习 - 周志华
- 统计学习方法 - 李航
- Post title:支持向量机原理简介
- Post author:Kotori Y
- Create time:2022-08-26 08:27
- Update time:2022-08-30 19:12
- Post link:https://blog.iamkotori.com/2022/08/26/支持向量机原理简介/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.