支持向量机(SVM)
二类分类模型。它的基本模型是定义在特征空间上的最大间隔的线性分类器,间隔最大使它有别于感知机。
支持向量机还包括核技巧,这使它成为实质上的非线性分类器。
支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。
支持向量机的学习算法是求解凸二次规划的最优算法。
分类:
- 线性可分支持向量机
硬间隔最大化 - 线性支持向量机
训练数据近似线性可分时,通过软间隔最大化 - 非线性支持向量机
当训练数据线性不可分是,通过使用核技巧及软间隔最大化
当输入空间为欧氏空间或离散集合、特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积;
通过使用核函数可以学习非线性支持向量机,等价于隐式地在高维的特征空间中学习线性支持向量机,这样的方法称为核技巧
核方法是比支持向量机更为一般的机器学习方法。
一、线性可分支持向量机与硬间隔最大化
1、线性可分支持向量机
二分类问题:
输入空间:欧氏空间或离散集合
特征空间:欧氏空间或希尔伯特空间
线性可分支持向量机、线性支持向量机:假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。
非线性支持向量机:利用一个从输入空间到特征空间的非线性映射将输入映射为特征向量
支持向量机的学习是在特征空间进行的
假设特征空间上的训练数据集
![](https://img.haomeiwen.com/i8816575/b69f4f7abc058c2f.png)
正例,负例
学习目标:找到分类超平面
线性可分支持向量机:
![](https://img.haomeiwen.com/i8816575/238aa9ca9642987f.png)
![](https://img.haomeiwen.com/i8816575/734c110f087e178f.png)
2、函数间隔和几何间隔
(1)函数间隔
点到分离超平面的远近|w·x+b|:表示分类预测的确信程度
w·x+b的符号与类标记y的符号是否一致:表示分类是否正确
所以,可用量y(w·x+b)表示分类的正确性和确信度。
![](https://img.haomeiwen.com/i8816575/ea7f0ec3758d05dc.png)
(2)几何间隔
当成比例改变w和b,例如将他们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。说明,可以对分离超平面的法向量w加某些约束,如规范化,||w||=1,使得间隔是确定的。这是函数间隔成为几何间隔
![](https://img.haomeiwen.com/i8816575/29eef2d26b9b3d6d.png)
![](https://img.haomeiwen.com/i8816575/4b03b4191720ed34.png)
3、间隔最大化
(1)最大间隔分离超平面
![](https://img.haomeiwen.com/i8816575/a54c67ea88c9e1e8.png)
考虑几何间隔和函数间隔的关系,改写
![](https://img.haomeiwen.com/i8816575/ccd1c2a7fc43ed15.png)
考虑:
![](https://img.haomeiwen.com/i8816575/f3e772d58312561d.png)
线性可分支持向量机学习的最优化问题(这是一个凸二次规划问题)
![](https://img.haomeiwen.com/i8816575/10f309017333c1f8.png)
凸优化问题是指约束最优化问题
![](https://img.haomeiwen.com/i8816575/4ad44baf7d30a560.png)
线性可分支持向量机学习算法---最大间隔法
![](https://img.haomeiwen.com/i8816575/0bddfb52988a746a.png)
(2)最大间隔分离超平面的存在唯一性
![](https://img.haomeiwen.com/i8816575/75c5b08c0d44d290.png)
(3)支持向量机和间隔边界
在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量
支持向量是使约束条件式等号成立的点,即
![](https://img.haomeiwen.com/i8816575/a1a69822ddae3d0a.png)
![](https://img.haomeiwen.com/i8816575/85b597a63a2cacb6.png)
4、学习的对偶算法
对于线性可分支持向量机的优化问题,原始问题:
![](https://img.haomeiwen.com/i8816575/22146cb62948783a.png)
应用拉格朗日对偶性,通过求解对偶问题,得到原始问题的解。
优点:对偶问题往往容易解;引入核函数,推广到非线性分类问题。
定义拉格朗日函数
![](https://img.haomeiwen.com/i8816575/da380ad970dcba12.png)
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
![](https://img.haomeiwen.com/i8816575/8520786e7e378d74.png)
得到对偶问题的解:
先求L(w,b,α)对w,b的极小值,再求对α的极大
![](https://img.haomeiwen.com/i8816575/178dbc84bd2ba5a4.png)
![](https://img.haomeiwen.com/i8816575/d67a5f0a9f06b0f4.png)
定理:
![](https://img.haomeiwen.com/i8816575/2e1fe49b6075e8bc.png)
由定理可知,分离超平面可以写成
![](https://img.haomeiwen.com/i8816575/029f5fed433230d3.png)
分类决策函数可以写成
![](https://img.haomeiwen.com/i8816575/a99e3d368c4df71f.png)
称为线性可分支持向量机的对偶形式
线性可分支持向量机学习算法
![](https://img.haomeiwen.com/i8816575/7d8ac6abd3f51a2e.png)
支持向量:
![](https://img.haomeiwen.com/i8816575/823e397f55ca5781.png)
二、线性支持向量机与软间隔最大化
1、线性支持向量机
训练数据中有些特异点,不能满足函数间隔大于等于1的约束条件。
解决方法:
![](https://img.haomeiwen.com/i8816575/7d0df1e25d86bf2b.png)
使得函数结果加上松弛变量大于等于1,约束条件变为:
![](https://img.haomeiwen.com/i8816575/686363ce35a3af7d.png)
目标函数变为:
![](https://img.haomeiwen.com/i8816575/7d695e214517acad.png)
C>0为惩罚参数
线性不可分的线性支持向量机的学习问题:
![](https://img.haomeiwen.com/i8816575/80d1b02fa500b54c.png)
线性支持向量机的定义
![](https://img.haomeiwen.com/i8816575/4e3552bea76e2804.png)
2、学习的对偶算法
![](https://img.haomeiwen.com/i8816575/dd2fac470cccc798.png)
对偶问题是拉格朗日函数的极大极小问题
![](https://img.haomeiwen.com/i8816575/faeae55bf5e18d40.png)
![](https://img.haomeiwen.com/i8816575/750536a4410a4262.png)
定理:
![](https://img.haomeiwen.com/i8816575/524c42f42a694202.png)
线性支持向量机学习算法
![](https://img.haomeiwen.com/i8816575/0711a2dcee0c30a3.png)
3、支持向量
![](https://img.haomeiwen.com/i8816575/913c484df2dcec6f.png)
4、合页损失函数
线性支持向量机学习还有另外一种解释,就是最小化以下目标函数:
![](https://img.haomeiwen.com/i8816575/ccf3f8842de2985d.png)
目标函数第一项是经验损失或者经验风险,函数
![](https://img.haomeiwen.com/i8816575/7cbe393a3564397f.png)
称为合页损失函数。
![](https://img.haomeiwen.com/i8816575/951e96a12c0599a0.png)
定理:线性支持向量机原始最优化问题
![](https://img.haomeiwen.com/i8816575/d04f0321d138c76c.png)
![](https://img.haomeiwen.com/i8816575/9dd5ba914d826f3c.png)
三、非线性支持向量机与核函数
1、核技巧
(1)非线性分类问题
非线性可分问题
![](https://img.haomeiwen.com/i8816575/ad366efafe9713f3.png)
通过非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。
![](https://img.haomeiwen.com/i8816575/6169fcbc56077a49.png)
用线性分类方法求解非线性分类问题分两步:
- 首先使用一个变换将原空间的数据映射到新空间;
- 然后在新空间里用线性分类学习方法从训练数据中学习分类模型。
核技巧就属于这样的方法
** 核技巧应用到支持向量机基本想法**:
![](https://img.haomeiwen.com/i8816575/7fbb4484759f91f6.png)
(2)核函数的定义
![](https://img.haomeiwen.com/i8816575/42fca54e6e5ee501.png)
核技巧的想法:
![](https://img.haomeiwen.com/i8816575/b25f0d3e6b1064d0.png)
(3)核技巧在支持向量机中的应用
注意到:
线性支持向量机对偶问题中,无论是目标函数还是决策函数都只涉及输入实例和实例之间的内积
![](https://img.haomeiwen.com/i8816575/557af948f793e4ab.png)
2、正定核
问题:
![](https://img.haomeiwen.com/i8816575/5e0652c192601911.png)
![](https://img.haomeiwen.com/i8816575/45db64ab5bf126bc.png)
(1)定义映射,构成向量空间S
![](https://img.haomeiwen.com/i8816575/2ca821ef0af93d31.png)
(2)在S上定义内积,使其成为内积空间
![](https://img.haomeiwen.com/i8816575/2a4980553b183abc.png)
(3)将内积空间S完备化为希尔伯特空间
![](https://img.haomeiwen.com/i8816575/2f968bfa96498a93.png)
(4)正定核的充要条件
![](https://img.haomeiwen.com/i8816575/44e73836e4b6abdd.png)
正定核的等价定义:
![](https://img.haomeiwen.com/i8816575/9955860dc4cb5057.png)
3、常用核函数
![](https://img.haomeiwen.com/i8816575/f5d715501888905d.png)
![](https://img.haomeiwen.com/i8816575/3202dacc78c6fe62.png)
4、非线性支持向量机学习算法
![](https://img.haomeiwen.com/i8816575/9416dfb6fa186d38.png)
![](https://img.haomeiwen.com/i8816575/15bd512b65aa2190.png)
四、序列最小最优化算法SMO
SMO解如下凸二次规划的对偶问题
![](https://img.haomeiwen.com/i8816575/6ad1926bd27c8f42.png)
启发式算法,基本思路:
![](https://img.haomeiwen.com/i8816575/47cfeeca3bbaf90a.png)
SMO算法包括两个部分:
- 求解两个变量二层规划的解析方法
- 选择变量的启发式方法
1、两个变量二次规划的求解方法
![](https://img.haomeiwen.com/i8816575/4e5e0e19612a9cca.png)
![](https://img.haomeiwen.com/i8816575/34ce78b69cd3e406.png)
![](https://img.haomeiwen.com/i8816575/008af36eae56a28e.png)
求解过程:
![](https://img.haomeiwen.com/i8816575/12553dc467ef2930.png)
![](https://img.haomeiwen.com/i8816575/d55e7c252a1707c3.png)
2、变量的选择方法
SMO算法在每个子问题选择两个变量优化,其中至少一个变量是违反KKT条件的
(1)第一个变量的选择:外循环
![](https://img.haomeiwen.com/i8816575/ad3ea05d284961d7.png)
(2)第二个变量的选择:内循环
![](https://img.haomeiwen.com/i8816575/cbb7632ab6975783.png)
(3)计算阈值b和差值Ei
每次完成两个变量的优化后,重新计算阈值b和差值Ei
![](https://img.haomeiwen.com/i8816575/4e318b7c08106df7.png)
3、SMO算法
![](https://img.haomeiwen.com/i8816575/1b3b6700062b44de.png)
网友评论