机器学习---SVM目标函数求解,SMO算法

这篇具有很好参考价值的文章主要介绍了机器学习---SVM目标函数求解,SMO算法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 线性可分支持向量机

1.1 定义输入数据

假设给定⼀个特征空间上的训练集为:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

其中,(x , y )称为样本点。 x 为第i个实例(样本)。

y 为x 的标记: 当y = 1时,x 为正例;当y = −1时,x 为负例

正负用(-1,1)表示的原因:最大的作用就是标记,你也可以⽤(2,-3)来标记。只是为了⽅便,y

/y = y ∗ y 的过程中刚好可以相等,便于之后的计算。)

1.2 最大间隔

给定了上⾯提出的线性可分训练数据集,通过间隔最大化得到分离超平面为机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

相应的分类决策函数为:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

以上决策函数就称为线性可分⽀持向量机。 Φ(x)是某个确定的特征空间转换函数,它的作⽤是将x

映射到更高的维度,它有⼀个以后我们经常会见到的专有称号"核函数"。

        比如我们看到的特征有2个: x1, x2,组成最先见到的线性函数可以是w1x1 + w2x2。但也许这

两个特征并不能很好地描述数据,于是我们进行维度的转化,变成了 w1x1 + w2x2 + w3x1x2+

w4x^2 + w5x^2。于是我们多了三个特征。⽽这个就是笼统地描述x的映射的。 最简单直接的就

是:Φ(x) = x。

       我们要去求出这样⼀个超平面y(x),它能够最优地分离两个集合。 其实也就是我们要去求⼀组

参数(w,b),使其构建的超平面函数能够最优地分离两个集合。

如下就是⼀个最优超平面:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

1.3 推到目标函数

 超平面表达式:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法为了方便我们让:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

则在样本空间中,划分超平面可通过如下线性方程来描述:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

其中,机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法 为法向量,决定了超平面的方向;

          b为位移项,决定了超平面和原点之间的距离。

显然,划分超平面可被法向量w和位移b确定,我们把其记为(w,b)。

样本空间中任意点x到超平面(w,b)的距离可写成:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

假设超平面(w, b)能将训练样本正确分类,即对于(x , y ) ∈ D。

令:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

如图所示,距离超平面最近的几个训练样本点使上式等号成立,他们被称为“支持向量"。

两个异类支持向量到超平面的距离之和为:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

欲找到具有最⼤间隔的划分超平面,也就是要找到能满足下式中约束的参数w和b,使得γ最大。 

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

显然,为了最⼤化间隔,仅需要最大化:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法,这等价于最小化机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

于是上式可以重写为:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

PS:||W||是向量与矩阵的范数。

1.4 目标函数的求解

因为目标函数带有⼀个约束条件,所以我们可以用拉格朗日乘子法求解。

拉格朗日乘子法 (Lagrange multipliers)是⼀种寻找多元函数在⼀组约束下的极值的方法。

通过引入拉格朗日乘子,可将有 d 个变量与 k 个约束条件的最优化问题转化为具有 d + k 个变量的

无约束优化问题求解。

经过朗格朗日乘子法,我们可以把目标函数转换为:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

其中,要想求得极小值,上式后半部分: 

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

走到这⼀步,这个目标函数还是不能开始求解,现在我们的问题是极小极大值问题 。

我们要将其转换为对偶问题,变成极⼤极小值问题:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

⾸先我们对原目标函数的w和b分别求导:

            原函数为:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

            对w求偏导:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

            对b求偏导:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

然后将以上w和b的求导函数重新代⼊原目标函数的w和b中,得到的就是原函数的对偶函数:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

于是现在要求的是这个函数的极大值max(a),写成公式就是: 

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

好了,现在我们只需要对上式求出极⼤值α,然后将α代⼊w求偏导的那个公式:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

         从而求出w。将w代⼊超平面的表达式,计算b值;现在的w,b就是我们要寻找的最优超平面的参数。 

2. 线性不可分支持向量机

2.1 线性不可分的情况

我们可以为分错的点加上一点惩罚,对一个分错的点的惩罚函数就是这个点到其正确位置的距离:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

        C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚,当C很大的时候,分错的点

就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能

由此得到的模型也会不太正确 。

软支持向量机求解:

构造拉格朗日公式:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

求偏导数:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

转为对偶函数求解。

实际上在处理大型问题时,由于存储和计算两方面的要求,这些算法往往会失效。 

2.2 坐标上升法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

        固定除 αi 之外的所有参数,这时W可看作只是关于 αi 的函数,那么直接对 αi 求导优化即

可。可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最

优,那么坐标上升法会是一个很高效的求极值方法。

固定以外的所有参数,那么将不再是变量(可以由其他值推出),因为问题中规定了

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

因此,我们最少一次需要选取两个参数做优化,比如αi和αj,此时可以由和其他参数表示出来。 

3. SMO算法

3.1 SVM算法特点

        SVM有如下主要几个特点:(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替

向高维空间的非线性映射;(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想

SVM方法的核心;(3)支持向量是SVM的训练结果,SVM分类决策中起决定作用的是支持向量。

因此,模型需要存储空间小,算法鲁棒性强;(4)无序任何前提假设,不涉及概率测度。

        SVM有如下主要几个缺点:(1) SVM算法对大规模训练样本难以实施由于SVM是借助二次规

划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时

该矩阵的存储和计算将耗费大量的机器内存和运算时间。针对以上问题的主要改进有有J.Platt

SMO算法、T.JoachimsSVMC.J.C.Burges等的PCGC、张学工的CSVM以及O.L.Mangasarian

等的SOR算法;(2) 用SVM解决多分类问题存在困难经典的支持向量机算法只给出了二类分类的算

法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组

合来解决。主要有一对多组合模式、一对一组合模式和SVM决策树;再就是通过构造多个分类器

的组合来解决。主要原理是克服SVM固有的缺点,结合其他算法的优势,解决多类问题的分类精

度。如:与粗集理论结合,形成一种优势互补的多类问题的组合分类器。

3.2 SMO算法

        SMO算法由Microsoft ResearchJohn C. Platt1998年提出,并成为最快的二次规划优化算

法,特别针对线性SVM和数据稀疏时性能更优。第一步选取一对参数,选取方法使用启发式方法

(Maximal violating pair)。第二步,固定除被选取的参数之外的其他参数,确定W极值。

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

        假设我们选取了初始值满足了问题中的约束条件。接下来,我们固定其余参数,这样W就是

和的函数。并且和满足条件: 机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

由于其余参数都是已知固定,因此为了方便,可将等式右边标记成实数值。

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法 机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

进而:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

目标函数:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

其中:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

求偏导:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

带入w, v:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

求得:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

最终参数的解为:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

3.3 参数取值

当a1和a2异号时,也就是一个为1,一个为-1时,他们可以表示成一条直线,斜率为1。如下图:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

横轴是a2,纵轴是a1,a1和a2既要在矩形方框内,也要在直线上,因此

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

同理,当y1和y2同号时:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

参数计算:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

b的求解:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法在界内,则机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法,代入上式得:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

两边同乘以y1,得:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

       机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法在界内,则

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法在界内,则情况1和情况2的b值相等,任取一个;都不在界内,则 机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法   取值为

情况1和情况2之间的任意值。   

3.4 算法终止条件

       一个自然的想法是那些违反KKT最严重的点,他们对间距贡献最大,因此可以通过该启发规则

来完成调整参数的选取。(并且此种启发规则计算量小)

①停止条件1(满足KTT条件)

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

KTT条件:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法 并设:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

代入得:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法左移:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

分别乘以yi

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

统一得到:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

等价于:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

如果对于:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法可以判断:机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法②停止条件2

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

③停止条件3

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

       应该指出,检验停机准则的精度要求对算法的执行时间影响很大。过高的要求会非常浪费时

间,却不一定会改进决策函数。所以在实际应用中,我们要精心选择停机准则.

此外,上面停机准则的讨论也会给我们改进算法和提高算法的效率提供一些启发,比如在迭代过程

中可以特别注意那些违背停机准则“最严重”的训练点。

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

其他的求解方法:

选块算法: 

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

分解算法:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

工作集的选取:

机器学习---SVM目标函数求解,SMO算法,机器学习,机器学习,支持向量机,算法

 文章来源地址https://www.toymoban.com/news/detail-745209.html

到了这里,关于机器学习---SVM目标函数求解,SMO算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器学习:Python中如何使用支持向量机(SVM)算法

    (简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类(异常值检测)以及回归分析。 其具有以下特征: (1)SVM可以表示为凸优化问题,因此可以利用已知的

    2024年02月04日
    浏览(56)
  • 传统机器学习(七)支持向量机(1)超平面、SVM硬间隔、软间隔模型和损失函数

    1.1.1 超平面公式 我们对“平面”概念的理解,一般是定义在三维空间中的,如下: 假设M和M0为平面上的两点,n为该平面的法向量,那么,通过下图可以容易推导出三维空间中的平面方程: A x + B y + C z + D = 0 Ax + By+Cz+D=0 A x + B y + C z + D = 0 我们把A、B、C写作w,把x、y、z写作x,

    2023年04月27日
    浏览(59)
  • 机器学习——SMO算法推导与实践

    明天再说,啊。。。。感觉天空明朗了很多,即使现在已经很晚了 还是要打开柯南,看看电视,等待天气预报所说的台风天吧! 一时之间,忽然失去了用markdown语法写下推导过程的勇气。。。以上只是自己在线性可分的情况下,推导的smo算法但实际书本上给出的smo算法,是增

    2024年02月14日
    浏览(38)
  • 机器学习(七):梯度下降解决分类问题——perceptron感知机算法与SVM支持向量机算法进行二维点分类

    实验2 感知机算法与支持向量机算法 一、预备知识 1.感知机算法 二、实验目的 掌握感知机算法的原理及设计; 掌握利用感知机算法解决分类问题。 三、实验内容 设计感知机算法求解, 设计SVM算法求解(可调用函数库),请找出支持向量和决策超平面。 四、操作方法和实验

    2023年04月26日
    浏览(89)
  • 机器学习-支持向量机SVM

    在本练习中,我们将使用支持向量机(SVM)来构建垃圾邮件分类器。 我们将从一些简单的2D数据集开始使用SVM来查看它们的工作原理。 然后,我们将对一组原始电子邮件进行一些预处理工作,并使用SVM在处理的电子邮件上构建分类器,以确定它们是否为垃圾邮件。 我们要做

    2024年02月12日
    浏览(54)
  • SVM(支持向量机)-机器学习

    支持向量机(Support Vector Machine,SVM) 是一种用于分类和回归分析的监督学习算法 。它属于机器学习中的一类强大而灵活的模型,广泛应用于模式识别、图像分类、自然语言处理等领域。 基本原理: SVM的基本原理是通过找到能够有效分隔不同类别的超平面来进行分类。在二维

    2024年02月03日
    浏览(52)
  • 机器学习——支持向量机SVM

    支持向量机(SVM)是一种二类分类模型,其基本模型是在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,间隔最大使它有别于感知机,支持向量机也可通过核技巧使它成为非线性分类器。支持向量机的学习策略是间隔最大化,可将其转化为一个求解凸二次

    2024年01月17日
    浏览(56)
  • 【机器学习】SVM支持向量机模型

     本站原创文章,转载请说明来自 《老饼讲解-机器学习》 ml.bbbdata.com 目录 一. SVM的目标和思想    1.1 SVM硬间隔模型的原始目的 1.2 SVM的直接目标 1.3 什么是支持向量  二. SVM的支持平面的表示方式 2.1 支持面表示方式的初步思路 2.2 初步思路的缺陷与改进 2.3 支持面的最终表示

    2023年04月23日
    浏览(204)
  • 机器学习(六)支持向量机(SVM)

    目录 1.间隔与支持向量 1.1线性可分 1.2支持向量 1.3 最大间隔超平面 2.对偶问题 2.1拉格朗日乘子法 2.2 SMO算法 2.3SMO算法代码实现 3.核函数 4. SVM实例(手写体数字识别) 5.实验总结 支持向量机(SVM) 是有监督学习中最有影响力的机器学习算法之一,一般用于解决二分类问题(

    2024年02月09日
    浏览(56)
  • 【机器学习】支持向量机SVM入门

    相较于之前学习的线性回归和神经网络,支持向量机(Supprot Vector Machine,简称SVM)在拟合复杂的非线性方程的时候拥有更出色的能力,该算法也是十分经典的算法之一。接下来我们需要学习这种算法 首先我们回顾逻辑回归中的经典假设函数,如下图: 对于任意一个实例 (

    2024年02月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包