支持向量机
支持向量机(SVM)
支持向量机是一种用于分类的算法。如果数据是线性可分的,只需要将直线放置在让点距离平面距离最大的位置,寻找这个最大间隔的过程叫做最优化;如果数据不是线性可分的,需要用核函数改变维度,用超平面做分类……
线性 SVM
如图,数据显然是线性可分的,这些将它们分类的直线称为 决策面,每个决策面对应一个线性分类器。但是将它们分开的直线显然不止一条。目前
图中虚线的位置由决策面的方向和距离决策面最近的几个样本位置决定,虚线穿过的样本点称为 支持向量,中间的部分是分类间隔。具有最大间隔的决策面就是 SVM 要找的最优解。
数学建模
- 目标函数:希望使得什么指标最好,即分类间隔
- 优化对象:可以改变的影响因素,即决策面
优化对象(决策面)
在二维空间中,一条直线可以表示为
设其中
此时的
目标函数(分类间隔)
分类间隔的大小是支持向量的样本点到决策面距离的二倍,二维平面中,点到直线的距离公式是
推广到多维
分类间隔
约束条件
- 判断决策面将样本点正确分类
- 选出支持向量上的点
图中有两类点,分别对它们做标记,蓝色的标记为
如果超平面能对上图样本点正确分类,则有
再提高一点要求,决策面处于分类间隔的中间,则
所有标签为
两边同除
其中
并且,支持向量满足
于是最大化
最终最优化问题的建模为
最优化问题
Lagrange 乘数法
Lagrange 乘数法
- 等式约束优化问题
令
,函数 称为 函数, 为 乘子
其中
和 均为优化变量。
- 不等式约束优化问题
上一部分得出的优化问题的约束条件是一个不等式,现在需要引入 松弛变量,将其转化为等式约束条件,同时松弛变量也是一个优化变量。
原优化问题
设
并得到
联立必要条件的方程得
当
即不等式约束优化问题的 KKT 条件。
目标
$$
其中
其中
此时最优化问题转化为
对偶性
最大的里面挑出个最小的比最小的里面的最大的大~
当等号成立时满足 强对偶关系,
SVM 最优化流程
目标函数与约束条件:
强对偶性转化:
对参数求偏导
得到
代入到目标函数
此时最优化问题为
SMO 算法
由
,选择 和 ,设 ,其中 ,由此得出
此时,相当于将问题转化为只有一个约束条件
再由
分类决策函数为
对于验证集的点,带入决策函数即可得到其分类。
未完待续……

