码迷,mamicode.com
首页 > 其他好文 > 详细

支持向量机

时间:2018-04-30 12:01:19      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:das   ase   决定   拉格朗日对偶   pcm   针对   9.png   bsp   不同的   

来源:http://www.hankcs.com/ml/support-vector-machine.html

一、概述

支持向量机(support vector machines,SVM)是一种二类分类模型。

支持向量机的学习算法是求解凸二次规划的最优化算法。

 分类:

线性可分支持向量机(linear support vector machine in linearly separable case)

线性支持向量机(linear support vector machine)

非线性支持向量机(non-linear support vector machine)。

 

假设输入空间与特征空间为两个不同的空间。输入空间为欧氏空间或离散集合,特征空间为欧氏空间或希尔伯特空间。

线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应,并将输入空间中的输入映射为特征空间中的特征向量。

非线性支持向量机利用一个从输入空间到特 征空间的非线性映射将输入映射为特征向量。

由输入空间转换到特征空间,支持向量机的学习是在特征空间进行的。

 

给定一个特征空间上的训练数据集,xi为第i个特征向量,也称为实例,yi为xi的类标记,正负时分别称xi为正例或负例,学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。

 

二、线性可分支持向量机

当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。

 

支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。

 

最大间隔算法

线性可分支持向量机学习算法——最大间隔法

技术分享图片

 

支持向量

支持向量是使约束条件式技术分享图片等号成立的点

在H1和H2上的点就是支持向量。

技术分享图片

H1和H2平行,并且没有实例点落在它们中间。在H1和H2之间形成一条长带,分离超平面与它们平行且位于它们中央。

长带的宽度,即H1和H2之间的距离称为间隔(margin)。间隔等于技术分享图片

H1和H2称为间隔边界。

支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。

 

 对偶算法

提出:

为了求解线性可分支持向量机的最优化问题

技术分享图片,将它作为原始最优化问题,应用拉格朗日对偶性通过求解对偶问题得到原始问题的最优解。

思路:

给定的线性可分训练数据集,可以首先求对偶问题

技术分享图片的解再利用式技术分享图片和式技术分享图片求得原始问题的解技术分享图片;从而得到分离超平面及分类决策函数。

 算法:

(1)构造并求解约束最优化问题

技术分享图片

求得最优解技术分享图片

(2)计算

技术分享图片

并选择技术分享图片的一个正分量技术分享图片,计算

技术分享图片

(3)求得分离超平面

技术分享图片

分类决策函数:

技术分享图片

 

 三、线性支持向量机

 

修改硬间隔最大化,成为软间隔最大化, 扩展到线性不可分问题。

假设训练数据集不是线性可分的。训练数据中有一些特异点,将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。

对每个样本点技术分享图片引进一个松池变量技术分享图片,使函数间隔加上松弛变量大于等于1。

约束条件变为

技术分享图片

 

定义

对于给定的线性不可分的训练数据集,通过求解凸二次规划问题

技术分享图片

得到的分离超平面为

技术分享图片

及相应的分类决策函数

技术分享图片

称为线性支持向量机。

 

 线性支持向量机算法

(1)选择惩罚参数C>0,构造并求解凸二次规划问题

技术分享图片

求得最优解技术分享图片

(2)计算技术分享图片

选择技术分享图片的一个分量技术分享图片适合条件技术分享图片,计算

技术分享图片

(3)求得分离超平面

技术分享图片

分类决策函数:

技术分享图片

注:b的解并不唯一,实际计算时可以取在所有符合条件的样本点上的平均值

 

支持向量

在线性不可分的情况下,将对偶问题

技术分享图片的解技术分享图片中对应于技术分享图片的样本点的实例技术分享图片,称为支持向量(软间隔的支持向量)。

 

 四、非线性支持向量机

思想

 对于非线性问题,进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。

在对偶问题的目标函数技术分享图片中的内积技术分享图片用核函数技术分享图片来代替

对偶问题的目标函数成为 

技术分享图片

分类决策函数中的内积也用核函数代替,分类决策函数式成为

技术分享图片

 

定义

从非线性分类训练集,通过核函数与软间隔最大化,或凸二次规划,学习得到的分类决策函数 

技术分享图片

称为非线性支持向量,技术分享图片正定核函数

 

 算法

选取适当的核函数技术分享图片和适当的参数C,构造并求解最优化问题

 

五、序列最小最优化SMO

序列最小最优化(sequential minimal optimisation,SMO)算法

SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。

SMO算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。

基本思路

如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。

否则,选择两个变量,固定其他变量,针对这两个变量构建一个二次规划问题。

子问题有两个变量,一个是违反KKT条件最严重的那一个,另一个由约束条件自动确定。

由于等式约束技术分享图片,子问題的两个变量中只有一个是自由变量。

 

两个变量二次规划的求解方法

假设选择的两个变量是技术分享图片技术分享图片,其他变量技术分享图片是固定的。

于是SMO的最优化问题

技术分享图片

的子问题可以写成:

技术分享图片

技术分享图片

其中,技术分享图片技术分享图片是常数。

公式解:

 最优化问题

技术分享图片

沿着约束方向未经剪辑时的解是

技术分享图片

其中,

技术分享图片

技术分享图片是输入空间到特征空间的映射,技术分享图片由式

技术分享图片给出。

 

变量的选择

SMO称选择第1个变量的过程为外层循环。外层循环在训练样本中选取违反KKT条件最严重的样本点。

首先遍历所有满足条件技术分享图片的样本点,即在间隔边界上的支持向量点,如果这些样本点都满足KKT条件,则遍历整个训练集。

SMO称选择第2个变量的过程为内层循环。选择技术分享图片,使其对应的技术分享图片最大。

 

每次完成两个变量的优化后,都要重新计算阈值技术分享图片

如果技术分享图片同时满足条件技术分享图片,那么技术分享图片。如果技术分享图片是0或者C,那么技术分享图片技术分享图片以及它们之间的数都是符合KKT条件的阈值,这时选择它们的中点作为技术分享图片

更新对应的技术分享图片值:

技术分享图片

SMO算法

(1)取初始值技术分享图片

(2)选取优化变量技术分享图片,解析求解两个变量的最优化问题

技术分享图片

求得最优解技术分享图片,更新技术分享图片技术分享图片

(3)若在精度技术分享图片范围内满足停机条件

技术分享图片

其中,

技术分享图片

则转(4>;否则令技术分享图片,转(2);

(4)取技术分享图片

 

支持向量机

标签:das   ase   决定   拉格朗日对偶   pcm   针对   9.png   bsp   不同的   

原文地址:https://www.cnblogs.com/wander-clouds/p/8744004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!