支持向量机
一、算法原理
从几何角度,对于线性可分数据集,支持向量机就是找距离正负样本都最远的超平面,相比于感知机其解是唯一的,且不偏不倚,泛化性能更好。
二、超平面
1.n维空间的超平面 其中
:
(1)超平面方程不唯一
(2)法向量和位移项
确定一个唯一超平面
(3)法向量垂直于超平面(缩放
时,若缩放倍数为负数会改变法向量方向)
(4)法向量指向的那一半空间为正空间,另一半为负空间
(5)任意点到超平面的距离公式为
2.【证明】:对应于任意一点,设其在超平面
上的投影点为
,则
,且向量
与法向量
平行,所以有
三、几何间隔
对于给定的数据集和超平面
,定义数据集
中的任意一个样本点
关于超平面的几何间隔为
正确分类时:,几何间隔此时也等价于点到超平面的距离
未正确分类时:
对于给定的数据集和超平面
,定义数据集
关于超平面的几何间隔为:
数据集中所有样本点的几何间隔最小值
四、支持向量机
1.模型:
给定向性可分数据集,支持向量机模型希望求得数据集
关于超平面的几何间隔
达到最大的那个超平面,然后套上一个
函数实现分类功能
所以其本质和感知机一样,仍然是在求一个超平面。
但几何间隔最大的超平面就一定是前面所说的那个“距离正负样本都最远的超平面”吗?
是的,原因如下:
(1)当超平面没有正确划分正负样本时:几何间隔最小的为误分类点,因此
(2)当超平面正确划分超平面时:,且越靠近中央
越大
2.策略:
给定线性可分数据集,设
中几何间隔最小的样本为
,那么支持向量机赵超平面的过程可以转化为以下带约束条件的优化问题:
假设该问题的最优解为,那么
也是最优解,且超平面也不变,因此还需对
做一定限制才能使得上述优化问题有可解的唯一解。不妨令
,
因为对特定的来说,能使得
的
有且仅有一个。
因此上述优化问题进一步转化为:
进一步恒等变换得:
此优化问题为含不等式约束的优化问题,且为凸优化问题,因此可以直接用很多专门求解凸优化问题的方法求解该问题。
支持向量机通常采用拉格朗日对偶来求解。
3.拉格朗日对偶:
对于一般的约束优化问题:
![](https://img-blog.csdnimg.cn/4d24af7a9b1d4354bc0e0c09cd14a378.png)
若目标函数是凸函数,约束集合是凸集,则称上述优化问题为凸优化问题。
特别地,是凸函数,
是线性函数时,约束集合为凸集,该优化问题为凸优化问题。显然,支持向量机的目标函数
是关于
的凸函数,不等式约束
也是关于
的凸函数,因此支持向量机是一个凸优化问题。
设图3.1中的优化问题的定义域为,可行集为
,显然
是
的子集,最优值为
。由拉格朗日函数的定义可知上述优化问题的拉格朗日函数为:
其中,
为拉格朗日乘子向量。
定义上述优化问题的拉格朗日对偶函数(注意其自变量不包含
)为
关于
的下确界,即
对偶函数 有如下重要性质:
(1)无论上述优化问题是否为凸优化问题,其对偶函数恒为凹函数
(2)当时,
构成了上述优化问题最优值
的下界,也即
【证明(2)】:
设是优化问题的可行点,那么当
时
这是因为左边第一项非正而第二项恒为0。
据此不等式可推得:
所以,当 时,
恒成立。
定义在满足这个约束条件下求对偶函数最大值的优化问题为拉格朗日对偶问题
(原优化问题称为主问题)
设该优化问题的最优值为,显然
,此时称为“弱对偶性”成立,若
,则称为“强对偶性”成立。通过这种绕了一圈的方式,我们找到了一种求得
的方法。
(1)挡住问题满足某些充分条件时,强对偶性成立。常见充分条件有条件:“若主问题 是凸优化问题,且可行集
中存在一点能使得所有不等式约束的不等号成立,则强对偶性 成立。”支持向量机显然满足
条件。
(2)无论主问题是否为凸优化问题,对偶问题恒为凸优化问题,因为对偶函数恒为凹 函数(加个负号即可转为凸函数),约束条件
恒为凸集。
设一阶连续偏导,
分别为主问题和对偶问题的最优解,若强对偶性成立,则
一定能够满足如下5个条件:
以上5个条件也称为KKT条件。
主问题:
拉格朗日函数:
若将合并为
,显然上式是关于
的凸函数,直接求一阶导令其等于0,然后带入可得到最小值,即拉格朗日对偶函数。
下面再给出另一种推导方式:
由于是关于
的凸函数,关于
的线性函数,所以当
的系数不为0时下确界为
,当
的系数为0时,下确界就有其他部分来确定,所以
的下确界(对偶函数)为:
对偶函数:
再根据强对偶性成立推得最优解必须满足如下KKT条件
为什么支持向量机通常采用拉格朗日对偶求解呢?
(1)无论主问题是何种优化问题,对偶问题恒为凸优化问题 ,因此更容易求解(尽管支持向 量机的主问题本就是凸优化问题),而且原始问题的时间复杂度和特征维数呈正比(因为 未知量是)而对偶问题和数据量成正比(因为未知量是
),当特征维数远高于数据量 时拉格朗日对偶更高效。
(2)对偶问题能很自然地引入核函数,进而推广到非线性分类问题(最主要的原因)