精华内容
下载资源
问答
  • 简单介绍: ...我们的方法是把目标函数和约束所有融入一个新的函数,为了使问题变得易于处理,我们的方法是把目标函数和约束所有融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最长处。即拉格朗...

    简单介绍:

    1、在之前我们把要寻找最优的切割超平面的问题转化为带有一系列不等式约束的优化问题。这个最优化问题被称作原问题。

    我们不会直接解它,而是把它转化为对偶问题进行解决。

    2、为了使问题变得易于处理。我们的方法是把目标函数和约束所有融入一个新的函数,为了使问题变得易于处理,我们的方法是把目标函数和约束所有融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最长处。即拉格朗日函数,再通过这个函数来寻找最长处。

    3、约束条件能够分成不等式约束条件和等式约束条件,仅仅有等式约束条件的问题我们在高等数学课程中已经学习过了,其解决方法是直接将等式约束增加原问题构造出拉格朗日函数,然后求导就可以。如今考虑更加一般性的问题:带不等式约束和等式约束的极值问题怎样构造拉格朗日函数求解。


    学习拉格朗日对偶原理重要的是理解构造所得的原始问题和原函数的等价性。以及原始问题和对偶问题解得等价性。

    回顾一下之前得到的目标函数

    要求解这个式子。我们能够通过求解对偶问题得到最优解。这就是线性可分条件下支持向量机的对偶算法,这样做的长处在于:一者对偶问题往往更easy求解;二者能够自然的引入核函数,进而推广到非线性分类问题。

    1、我们下看以下的一个式子

    clip_image001[9]

    上面是要求解的目标函数及其条件。

    我们能够得到拉格朗日公式为

    clip_image004[6]

    在这里被称为拉格朗日算子

    然后分别对w和求偏导,使得偏导数等于0,然后解出


    以下我们将要产生一个既有等式又有不等式条件限制的式子。我们能够叫做原始优化问题,这里简介下拉格朗日对偶的原理。例如以下式子:

    clip_image007[6]

    上述式子有两个条件(等式条件和不等式条件)

    由此我们定义一般化的拉格朗日公式

    clip_image008[6]

    这里的都是拉格朗日算子。不要忘了我们求解的是最小值。

    设例如以下等式:

    clip_image015[6]

    这里的P代表primal。

    我们设例如以下约束条件(primal constraints):



    假设条件不所有满足的话。我们总能够调整使最大值出现正无穷,即会出现以下情况:


    因此我们能够得出例如以下式子:

    clip_image024[6]

    这样我们原来要求的min f(w)能够转换成求了。

    clip_image027[6]

    同一时候我们设

    clip_image030[6]

    clip_image031[10]将问题转化为先求拉格朗日关于的最小值,这个时候就把看做常量。之后再求最大值。

    例如以下:

    clip_image034[6]

    这个问题就是原问题的对偶问题。相对于原问题仅仅是更换了min和max的顺序。而一般更换顺序的结果是Max Min(X) <= Min Max(X)。

    然而在这里两者相等。由此我们能够设例如以下:

    clip_image037[6]

    所以在一定的条件下我们能够得到:


    因此我们能够解决原问题的对偶问题,可是我们还要看看条件是什么。

    如果f和g都是凸函数,h是仿射的(仿射的含义:存在ai, bi,使得)。而且还要满足存在w使得全部的i都有

    有了以上的如果,那么一定会存在使得是原问题的解。是对偶问题的解。同一时候也满足

    clip_image047[6]另外,还满足Karush-Kuhn-Tucker( KKT condition)。例如以下式子:

    clip_image048[6]

    所以假设满足了KKT条件,那么他们就是原问题和对偶问题的解。

    我们从式子和式子能够看出假设那么

    这个也就说明时。w处于可行域的边界上。这时才是起作用的约束。

    而其它位于可行域内部)点都是不起作用的约束,当中也就是的时候。这个KKT双重补足条件会用来解释支持向量和SMO的收敛測试。


    转载于:https://www.cnblogs.com/jzdwajue/p/6790339.html

    展开全文
  • 方法简化了在线学习过程中Lagrange乘子的求解过程,利用训练数据集滑动时间窗口的移动来控制新样本的加入和旧样本的移除,通过线性运算完成Lagrange乘子的更新,进而完成预测模型的在线更新。测试结果表明,相对已...
  • Liner Support Vector Machine1.1 SVM引出1.2 SVM中的margin计算1.3 margin计算公式的简化1.4 SVM一般求解方法1.5 非线性SVM2.Dual Support Vector Machine2.1 Dual SVM引出2.2 Lagrange Function 拉格朗日函数2.3 ...

    1. Liner Support Vector Machine

    1.1 SVM引出

    SVM是一种分类器。现在有两种类别(如下图),我们要找到一条直线,将两个不同的类别区分开。图中存在许多满足条件的直线,我们该选哪条最合适呢?
    这里写图片描述
    直观上来说,我们有几种考虑因素:①能容忍更多噪声,②模型更健壮,不会过拟合。
    这个问题可以等价于:选择一条直线,判断该直线到最近的点的距离究竟是远还是近。我们希望这条直线更"fat"(如上图最后一条直线),也就是直线到最近的点的距离越远越好。

    1.2 SVM中的margin计算

    定义分类线有多胖,也就是看距离分类线最近的点与分类线的距离,我们把它用margin表示。
    整体来说,我们的目标就是找到这样的分类线并满足下列条件:

    • 分类正确。能把所有正负类分开。即ynωTxn&gt;0y_n\omega^Tx_n&gt;0
    • margin最大化
      这里写图片描述

    有了上述条件,那么如何计算点到分类线的距离呢?

    为了便于计算,做一个小小的改动,将ω(ω0,ω1,,ωd)\omega(\omega_0,\omega_1,…,\omega_d)中的ω0\omega_0拿出,替换为b。同时省去x0x_0项。假设函数hypothesis就变成了h(x)=sign(ωTx+b)h(x)=sign(\omega^Tx+b)

    那么,点到分类平面的距离公式为:(推导见视频)
    distance(x,b,w)=ωTω(xx)=1ωωTx+bdistance(x,b,w)=|\frac{\omega^T}{||\omega||}(x-x&#x27;)|=\frac{1}{||\omega||}|\omega^Tx+b|

    具体的求距离步骤:
    ①写出hyperplane ω1x1+ω2x2+...+ωdxd+b=0\omega_1x1+\omega_2x2+...+\omega_dxd+b=0的形式
    ②求ω=ω12+ω22+...+ωd2||\omega||=\sqrt{\omega_1^2+\omega_2^2+...+\omega_d^2}
    ③将距hyperplane最近的点代入ωTx=b\omega^Tx=b
    ④求③绝对值,代入距离公式计算最终结果

    1.3 margin计算公式的简化

    为了简化计算,做一个放缩,令距离分类面最近的点满足yn(wTxn+b)=1y_n(w^Tx_n+b)=1。那么我们所要求的margin就变成了:
    margin(b,w)=1wmargin(b,w)=\frac{1}{||w||}

    目标形式简化为:
    这里写图片描述
    另外,最大化问题max1wmax\frac{1}{||w||}可转换为最小化问题min12ωTωmin\frac{1}{2}\omega^T\omega
    放松条件(放松条件对我们毫无影响,见视频1.3 16:00),最终形式为:
    在这里插入图片描述

    1.4 SVM一般求解方法

    现在,SVM的标准问题为:
    在这里插入图片描述
    这是一个典型的二次规划问题,即Quadratic Programming(QP)。将SVM与标准二次规划问题的参数一一对应起来,就可以将参数输入一些软件(如matlab)自带的二次规划的库函数求解。
    这里写图片描述
    那么,线性SVM算法可以总结为三步:
    ①计算对应的二次规划参数Q、p、A、c
    ②根据二次规划库函数,计算b,ωb, \omega
    ③将b,ωb, \omega代入gSVMg_{SVM},得到最佳分类面。

    1.5 非线性SVM

    如果是非线性的,例如包含x的高阶项,那么可以使用在《机器学习基石》课程中介绍的特征转换的方法,先作zn=Φ(xn)z_n=\Phi(x_n)的特征变换,从非线性的x域映射到线性的z域空间,再利用Linear Hard-Margin SVM Algorithm求解即可。

    PS:使用SVM得到large-margin,减少了有效的VC Dimension,限制了模型复杂度;另一方面,使用特征转换,目的是让模型更复杂,减少EinE_in。所以,非线性SVM是把这两者的目的结合起来,平衡这两者的关系。

    2.Dual Support Vector Machine

    2.1 Dual SVM引出

    在1.5节中,对于非线性SVM,可以使用非线性变换将变量从x域转换到z域中,再使用线性SVM解决即可。
    然而,特征转换下,设求解QP问题在z域中的维度为为d^+1\hat d +1,如果模型越复杂,则d^+1\hat d +1越大,相应求解这个QP问题也变得很困难。当d^\hat d无限大的时候,问题将会变得难以求解,那么有没有什么办法可以解决这个问题呢?一种方法就是使SVM的求解过程不依赖d^\hat d,这就是我们本节课所要讨论的主要内容。
    把问题转化为对偶问题,同样是二次规划,只不过变量个数编程N个,有N+1个限制条件。这种对偶SVM的好处就是问题只跟N有关,与d^\hat d无关,这样就不存在当d^\hat d无限大难以求解的情况。

    2.2 Lagrange Function 拉格朗日函数

    如何把问题转化为对偶问题?
    首先,把SVM的条件问题转换为非条件为题。对于SVM问题,使用拉格朗日乘子法,令朗格朗日因子为αn\alpha_n,构造一个函数:

    L(b,w,α)=12wTw+n=1Nαn(1yn(wTzn+b))L(b,w,\alpha)=\frac12w^Tw+\sum_{n=1}^N\alpha_n(1-y_n(w^Tz_n+b))
    该函数称为拉格朗日函数。

    2.3 把SVM构造成非条件问题

    下面,利用拉格朗日函数,把SVM构造成一个非条件问题。
    这里写图片描述
    该最小化问题中包含了最大化问题,怎么解释呢?首先我们规定拉格朗日因子αn0\alpha_n\geq0,根据SVM的限定条件可得:(1yn(wTzn+b))0(1-y_n(w^Tz_n+b))\leq0,如果没有达到最优解,即有不满足(1yn(wTzn+b))0(1-y_n(w^Tz_n+b))\leq0的情况,因为αn0\alpha_n\geq0,那么必然有nαn(1yn(wTzn+b))0\sum_n\alpha_n(1-y_n(w^Tz_n+b))\geq0。对于这种大于零的情况,其最大值是无解的。如果对于所有的点,均满足(1yn(wTzn+b))0(1-y_n(w^Tz_n+b))\leq0,那么必然有nαn(1yn(wTzn+b))0\sum_n\alpha_n(1-y_n(w^Tz_n+b))\leq0,则当nαn(1yn(wTzn+b))=0\sum_n\alpha_n(1-y_n(w^Tz_n+b))=0时,其有最大值,最大值就是我们SVM的目标:12wTw\frac12w^Tw。因此,这种转化为非条件的SVM构造函数的形式是可行的。

    2.4 Lagrange Dual SVM

    现在,我们已经将SVM问题转化为与拉格朗日因子αn\alpha_n有关的最大最小值形式。已知αn0\alpha_n\geq0,那么对于任何固定的α\alpha&#x27;,且αn0\alpha_n&#x27;\geq0,一定有如下不等式成立:

    这里写图片描述

    对上述不等式右边取最大值,不等式同样成立:

    这里写图片描述

    上述不等式表明,我们对SVM的min和max做了对调,满足这样的关系,这叫做Lagrange dual problem。不等式右边是SVM问题的下界,我们接下来的目的就是求出这个下界。

    已知\geq是一种弱对偶关系,在二次规划QP问题中,如果满足以下三个条件:

    • 函数是凸的(convex primal)

    • 函数有解(feasible primal)

    • 条件是线性的(linear constraints)

    那么,上述不等式关系就变成强对偶关系,\geq变成=,即一定存在满足条件的解(b,w,α)(b,w,\alpha),使等式左边和右边都成立,SVM的解就转化为右边的形式。

    经过推导,SVM对偶问题的解已经转化为无条件形式:

    这里写图片描述

    其中,上式括号里面的是对拉格朗日函数L(b,w,α)L(b,w,\alpha)计算最小值。那么根据梯度下降算法思想:最小值位置满足梯度为零。首先,令L(b,w,α)L(b,w,\alpha)对参数b的梯度为零:

    L(b,w,α)b=0=n=1Nαnyn\frac{\partial L(b,w,\alpha)}{\partial b}=0=-\sum_{n=1}^N\alpha_ny_n

    也就是说,最优解一定满足n=1Nαnyn=0\sum_{n=1}^N\alpha_ny_n=0。那么,我们把这个条件代入计算max条件中(与αn0\alpha_n\geq0同为条件),并进行化简:

    这里写图片描述

    这样,SVM表达式消去了b,问题化简了一些。然后,再根据最小值思想,令L(b,w,α)L(b,w,\alpha)对参数w的梯度为零:

    L(b,w,αw=0=wn=1Nαnynzn\frac{\partial L(b,w,\alpha}{\partial w}=0=w-\sum_{n=1}^N\alpha_ny_nz_n

    即得到:

    w=n=1Nαnynznw=\sum_{n=1}^N\alpha_ny_nz_n

    也就是说,最优解一定满足w=n=1Nαnynznw=\sum_{n=1}^N\alpha_ny_nz_n。那么,同样我们把这个条件代入并进行化简:

    这里写图片描述

    这样,SVM表达式消去了w,问题更加简化了。这时候的条件有3个:

    • all αn0\alpha_n\geq0

    • n=1Nαnyn=0\sum_{n=1}^N\alpha_ny_n=0

    • w=n=1Nαnynznw=\sum_{n=1}^N\alpha_ny_nz_n

    SVM简化为只有αn\alpha_n的最佳化问题,即计算满足上述三个条件下,函数12n=1Nαnynzn2+n=1Nαn-\frac12||\sum_{n=1}^N\alpha_ny_nz_n||^2+\sum_{n=1}^N\alpha_n最小值时对应的αn\alpha_n是多少。

    总结一下,SVM最佳化形式转化为只与αn\alpha_n有关:

    这里写图片描述

    其中,满足最佳化的条件称之为Karush-Kuhn-Tucker(KKT):

    这里写图片描述

    在下一部分中,我们将利用KKT条件来计算最优化问题中的α\alpha,进而得到b和w。

    2.6 解对偶SVM

    上面我们已经得到了dual SVM的简化版了,接下来,我们继续对它进行一些优化。首先,将max问题转化为min问题,再做一些条件整理和推导,得到:

    这里写图片描述

    显然,这是一个convex的QP问题,且有N个变量αn\alpha_n,限制条件有N+1个。则根据上一节课讲的QP解法,找到Q,p,A,c对应的值,用软件工具包进行求解即可。

    这里写图片描述

    求解过程很清晰,但是值得注意的是,qn,m=ynymznTzmq_{n,m}=y_ny_mz^T_nz_m,大部分值是非零的,称为dense。当N很大的时候,例如N=30000,那么对应的QDQ_D的计算量将会很大,存储空间也很大。所以一般情况下,对dual SVM问题的矩阵QDQ_D,需要使用一些特殊的方法,这部分内容就不再赘述了。

    这里写图片描述

    得到αn\alpha_n之后,再根据之前的KKT条件,就可以计算出w和b了。首先利用条件w=αnynznw=\sum\alpha_ny_nz_n得到w,然后利用条件αn(1yn(wTzn+b))=0\alpha_n(1-y_n(w^Tz_n+b))=0,取任一αn0\alpha_n\neq0αn\alpha_n>0的点,得到1yn(wTzn+b)=01-y_n(w^Tz_n+b)=0,进而求得b=ynwTznb=y_n-w^Tz_n

    这里写图片描述

    值得注意的是,计算b值,αn\alpha_n>0时,有yn(wTzn+b)=1y_n(w^Tz_n+b)=1成立。yn(wTzn+b)=1y_n(w^Tz_n+b)=1正好表示的是该点在SVM分类线上,即fat boundary。也就是说,满足αn\alpha_n>0的点一定落在fat boundary上,这些点就是Support Vector。这是一个非常有趣的特性。

    展开全文
  • svm模型初步理解

    2020-10-12 19:35:06
    拉格朗日乘法(Lagrange multiplier)是一种在最优化的问题中寻找多元函数在其变量受到一个或多个条件的相等约束时的求局部极值的方法。这种方法可以将一个有 n 个变量和 k 个约束条件的最优化问

    什么是SVM模型
    支持向量机,因其英文名为support vector machine,故一般简称SVM,通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

    KKT(Karush-Kuhn-Tucker)条件
    拉格朗日乘法(Lagrange multiplier)是一种在最优化的问题中寻找多元函数在其变量受到一个或多个条件的相等约束时的求局部极值的方法。这种方法可以将一个有 n 个变量和 k 个约束条件的最优化问题转换为一个解有 n+k 个变量的方程组的解的问题。KKT条件(Karush-Kuhn-Tucker Conditions),它是在满足一些有规则的条件下,一个非线性规划问题能有最优化解法的一个必要和充分条件。
    kkt定理:
    在这里插入图片描述
    拉格朗日函数的对偶问题
    在这里插入图片描述
    比如在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    核函数
    在这里插入图片描述
    使用拉格朗日对偶推导参数w和b
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 拉格朗日乘法介绍 拉格朗日乘数法(Lagrange Multiplier Method)在数学最优问题中,是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。1.1 等式约束已知 其中 满足 ,求满足条件的 最小值。如图所示,...

    一. 拉格朗日乘法介绍

    拉格朗日乘数法(Lagrange Multiplier Method)在数学最优问题中,是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法

    1.1 等式约束

    已知

    其中
    满足
    ,求满足条件的
    最小值。

    55a26c3f6697b00f00481d7c3fb04b87.png

    如图所示,最小值在两个曲线的相切位置,则它们的梯度平行,则意味着

    就是拉格朗日乘子。则上例子有
    ,这三个方程组可求出满足条件的最小值。上例中,针对等式约束拉格朗日函数为
    ,对
    求偏导为0,是一样的效果。当有多个等式约定时,则对应有多个拉格朗日乘子。

    1.2 不等式约束

    s.t
    。这类不等式约束条件的求最小值,可分为如下两种情况:

    0ae204bd93df511bf67bf6a989d286a9.png

    第一种情况函数

    的极小值落在函数
    可行区域内,相当于不等式约束条件无效。则此时极小值满足的条件:
    ;
    ; 引入拉格朗日乘子
    后,满足条件:
    ;
    ;

    第二种情况函数

    的极小值没落在
    可行区域内,最小时值处梯度依然平行,但是方向相反,所以此时极小值满足条件:
    ;
    ;

    汇总总两种情况,加上来原等式的条件,不等式的全约束条件满足为:

    ;
    ;
    ;
    。把
    ,得出

    1.3 KKT条件

    当约束条件包含等式和不等式,求解最小值问题:

    s.t
    ,

    引入拉格朗日乘子

    使设
    ,满足如下条件(KKT条件):

    ;
    ;
    ;
    ;

    1.4 regularity条件

    不满足KKT条件的一定不是最优解,满足KKT条件不一定是最优解,还需要满足

    线性无关的解才是最优解,

    1.5拉格朗日对偶函数:

    拉格朗日函数

    转换为把
    当作常数,关于
    取最小值得到的函数为
    ,inf 表示下确界。从而得到只是与
    有关和
    无关一个新函数。原问题是求最小化
    ,显然会有
    。假设
    是满足原问题约束条件下的最优解,则:
    (这个公式详细推导我也没看明白)。所以得
    是原问题最优解的下界,
    导出拉格朗日对偶问题:

    通俗理解:对于

    会有 ,

    ==>
    ==>

    二. SVM算法公式推导

    (1)支持向量机概念

    支持向量机(Support Vector Machine,SVM)主要是将特征空间通过非线性变换的方式映射到一个高纬的特征空间,并在这个高纬空间中找出最优线性分界超平面的一种方法。简单来说,SVM的主要原理就是找出间隔最大的超平面作为分类边界。关于超平面在百度百科中有非常明确的定义,我这里通俗解释就是:超平面就是比当前所在的环境空间低一个纬度的子空间。如下图所示,直线A、B、C均属于超平面。

    3ed7c1f12824885769c3474d7228bf93.png
    图 1

    上述图1直线的方程表示为

    。那么推广到n维空,
    则超平面可表示为
    (3.1) 令
    不全为0,
    则公式可表示为
    (3.2)。所以超平面的应用一般用于划分类别,分布在超平面的一侧所有的数据属于某个类别,分布在另一侧的所有数据属于另一个类别。如上图所示,就算是能正确划分类别的超平面也有无数多个,到底怎样的超平面才算是最优超平面,就引入了间隔的概念。

    (2)间隔函数、几何间隔

    仍以二维平面为例,设H为分类线(也可以成为超平面),

    分别为过各分类中离分类线最近的样本且平行于分类线的直线,它们之间的距离叫做
    分类间隔。所谓的最优分类线就是要求分类线不但能将两类正确分开,而且使得分类间隔最大。

    4aded9dff593a1eb901bd1a97614197c.png
    图 2

    初中课本学过点到直线的距离公式为

    ,那么我们可以这样理解在
    超平面
    确定的情况下,
    能够相对的表示点
    到超平面的距离(函数间隔)。如图2所示点分布在超平面的两侧,因此可以用与超平面
    的符号(是否大于0)与类标记
    的符号是否一至,表示分类是否正确。取
    为1或-1,若
    则判断
    为1,否则为 -1。因此可用量
    来判断分类的正确性,并且值越大分类结果可信度越大。

    接下来我们引入另一个很重要的概念定义,函数间隔,对于给定的训练数据集T和超平面(w, b),定义超平面(w, b)关于样本点(

    )的函数间隔为:

    超平面(w,b)会有很多个,但是在关于训练集T的函数间隔最小的超平面(w,b)只有唯一值,定义最小函数间隔

    。(
    可理解为需要找的支持向量)

    因为超平面(w,b)为

    ,w, b 同时变成2w, 2b等式依然还成立,但是最小函数间隔则会增大2倍。于是
    引入几何间隔的概念,定义几何间隔为
    ,
    为上述定义的最小函数间隔,

    (3)最优超平面

    根据上述分析,最优超平面就是就是满足最小函数间隔最大的超平面,就是求:

    ;
    就是关于超平面(w,b)的最小函数间隔。
    的取值并不影响最优化问题的解,为简单设
    ;并且原函数是求最大值,则可以转化为
    ,再次转化下则得到,

    拉格朗日乘法公式转换得:

    (非常重要的一个公式)。对w、b分别求偏导:
    ;
    。 把这组式子代入
    (其中
    )得:

    原始问题求:

    根据拉格朗日对偶问题转换为
    ,把最优化问题转化为对应的对偶问题,得:

    s.t

    可以通过SMO算法求出

    ,然后可以求出对应的
    。最终可以得到决策分类函数为:

    ; sgn()为符号函数,返回的是整型。

    (4)合页损失函数

    线性支持向量机学习还有另外一种解释,就是最小化一下目标函数:

    目标第一项:

    为合页损失函数。其数学表达式为:

    表示预测输出。当
    时,损失值:

    所以单样本点位于超平面合支持向量之间时,分类依然正确,但是合页损失函数的损失值为

    为松弛变量)。

    三. 线性不可分支持向量机、非线性支持向量机、核函数

    (1)线性不可分支持向量机

    3d7e3cd540cf205745f3086ca9086043.png
    图 3

    如果所示

    旁边依然一个干扰项,超平面无法完全的把两类分开,此时我们把这种情况,称为线性不可分,在线性不可分的情况下约束条件
    将很难满足,因此引入一个松弛变量
    (
    ),使得约束条件为:
    。从而原始问题转化为如下公式:

    s.t

    最终换算得出:

    s.t

    ; 可以看出引入松弛变量,最终转为了对于拉格朗日乘子
    值的限制。

    (2)非线性支持向量机

    8f2855d1eaf445641ee8fefc41be7d98.png
    图 4

    像如上图4所示,根本无法用一根直线完全区分开来,只能用非线性曲线将它们正确区分,这种分类问题就是非线性分类。一般的做法是进行空间纬度转化,然后变成线性可分。例如图4可以转化成如下:

    99f6d4c5aaea603489ff3e0c872201db.png
    图 5

    将二维空间,映射到三维空间中,这样就能找到一个超平面对样本点进行线性分割。假设通过映射

    后,原始的训练样本集
    变成了
    ,则原始的优化问题转为:
    s.t

    对偶函数问题转化为:

    s.t
    。原先的
    变成了
    ,而整个正好可以采用合适的核函数简化运算。

    (3)核函数

    在计算特征空间中的内积

    时,可以采用满足Mercer定理的核函数 :
    。这个定理有点复杂,这里只列举一些常用核函数如下:

    线性核函数:

    多项式核函数:

    径向基核函数(RBF):

    代表向量作差之后各分量的平方和的开根号;
    为径向基核的参数。也叫高斯核函数,因为可以看出另一种核函数:

    Sigmoid核函数:

    ;
    为核函数参数。

    四. 多分类支持向量机

    可以将整个多分类支持向量机分为多个两分类支持向量机来处理,从而实现多分类。例如有三个类别A、B、C。

    (1)以A所对应的向量作为正集,B、C所对应的向量作为负集,此时得到一个决策函数

    (2)以B所对应的向量作为正集,A、C所对应的向量作为负集,此时得到一个决策函数

    (3)以C所对应的向量作为正集,A、B所对应的向量作为负集,此时得到一个决策函数

    (4)若有一个未知类别的测试数据集x,将其分别代入这3各决策函数并求出函数值,假设得到的

    最大,则判断x属于B类。

    此分类方法叫一对多(One-vs-Rest)方法,主要原理是将每一类样本与其它k-1类样本进行分类,这样就可以形成k个分类支持向量机,最后进行多分类时,得到最大值的那一类便是该样本数据的分类。这个方法简单、有效,但每次训练时,都使用全部样本,当训练样本规模变大时,训练速度会急剧下降。

    还有一种分类方法叫一对一(One vs One ),主要原理是通过在不同类别的样本之间两两进行分类训练,形成k(k-1)/2个支持向量机。当对样本数据实行分类时,通过对其在每两个类别之间分类,进行k(k-1)/2次分类,每次分类结果的类别记1分,获得分类最多的类别就是最终该样本的类别。例如三个列表A、B、C,根据三个类别所对应的特征向量及其类别取值,采用一对一方法做如下安排:

    (1)以A所对应的向量作为正集,B对对应的向量作为负集,得到分类函数

    (2)以A所对应的向量作为正集,C对对应的向量作为负集,得到分类函数

    (3)以B所对应的向量作为正集,C对对应的向量作为负集,得到分类函数

    (4)若有一个未知类别测试数据集x,将其分别代入这三个决策函数并求出函数值,假设在

    判断为A类,
    判断都为C类,则x判断就为C类。

    在sklearn.svm 包的SCV方法中,参数decison_function_shape='ovr',一对多分类、'ovo'一对一分类,后面再详叙。

    五. 支持向量机python代码实现

    上面讲了那么多如下python代码都已经封装好了,首先要学会的就是先做一个懂原理的调参员。

    from sklearn.svm import SVC
    
    SVC(C=1.0, cache_size=200,class_weight=None,coef0=0.0,
    decision_function_shape='ovr', degree=3, gamma='auto', kennel='linear',
    max_iter=-1, probability=False, random_state=None, shrink-ing=True,
    tol=0.001, verbose=False)
    

    C: 松弛变量或惩罚因子,C越大,希望松弛变量接近0,即对误分类的惩罚增大,但泛化能力弱。C值越小,对误分类的惩罚越小,容许出错,将它们当成噪声点,泛化能力强。默认C=1.0。

    kernel: 核函数;默认是rbf(上面提到的径向基核函数)、linear 线性核函数、ploy 多项式核函数、sigmoid Sigmoid核函数

    degree: 多项式poly函数的纬度,默认是3。

    gamma: 'rbf'、 'poly' 、'sigmoid'的核函数参数。默认是’auto’,则会选择1/n_features。

    coef0: 核函数的常数项。对于'poly'、'sigmoid'核函有用。

    这里面的每个参数都对应了上面一个知识点。demo代码地址:

    https://github.com/zx3305/tennis/tree/master/svmgithub.com
    展开全文
  • 拉格朗日乘法介绍 拉格朗日乘数法(Lagrange Multiplier Method)在数学最优问题中,是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。1.1 等式约束已知 其中 满足 ,求满足条件的 最小值。如图所示,...
  • 一.SMO算法的原理SMO算法和以往的一些SVM改进算法一样,是把整个二次规划问题分解为很多较易处理的小问题...对SVM来说,一次至少要同时对两个样本进行优化(就是优化它们对应的Lagrange乘子),这是因为等式约束的存在
  • SVM入门(2)--对偶

    2017-08-30 23:22:18
    此外,这个问题有它的特殊结构,通过 Lagrange Duality 变换到对偶变量 (dual variable) 的优化问题之后,可以找到一种更加有效的方法来进行求解。这种方法比直接使用通用的 QP 优化包进行优化要高效得多。 那么,...
  • 在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去...
  • 手把手教你实现SVM算法(二)

    万次阅读 2013-06-14 18:09:52
    一.SMO算法的原理 SMO算法和以往的一些SVM改进算法一样,是把整个二次规划问题分解为很多较易处理的小问题,所...对SVM来说,一次至少要同时对两个样本进行优化(就是优化它们对应的Lagrange乘子),这是因为等式约
  • SVM算法原理(2)

    2017-05-15 00:06:15
    拉格朗日对偶(Lagrange duality) 先来看看这样一个问题 这样一个在约束条件下求极限的问题,我们在高数上是学过的,但是高数里我们接触的比较多的是不带等号的,比如: 这种情况下怎么求大家都会,现在来...
  • SVM——(四)目标函数求解

    千次阅读 2017-11-18 15:37:37
    在之前的两篇文章中[1][2]分别用两种方法介绍了如何求得目标优化函数,这篇文章就来介绍如何用拉格朗日对偶(Lagrange duality)问题以及SMO算法求解这一目标函数,最终得到参数。本文主要分为如下部分: 1.构造广义...
  • 在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去...
  • 在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去...
  •  在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件...
  • 拉格朗日乘子法(lagrange multipier) 即带有等式约束的优化问题,公式如下: 之后建立拉格朗日函数: λ即为拉格朗日乘子。之后将该函数分别对x,y,λ求偏导即可。现在我们试图阐明该方法的原理。 举...
  • 拉格朗日乘子法和KKT条件 ...在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果...
  • lssvm多分类模板, 先说LSSVM分类,LSSVM和SVM的区别就在于,LSSVM把原方法的不等式约束变为等式约束,从而大大方便了Lagrange乘子alpha的求解,原问题是QP问题,而在LSSVM中则是一个解线性方程组的问题
  • 针对直接多类分类方法,...在算法中,重构了优化问题及其约束条件,以及Lagrange公式,并进行了推导。通过在标准数据集上的几个实验,对这些算法进行了比较分析。实验结果表明提出的算法可以得到比较理想的分类精度。
  • 拉格朗日乘子法(Lagrange Multiplier)  之前在高中就有一直听到拉格朗日,拉格朗日是一个很牛逼哄哄的大佬。在学习SVM的时候,居然也见到了他的身影。让我们了解一下拉格朗日乘子法的具体内容。  在学习过程中,...
  • LSSVM和SVM的区别就在于,LSSVM把原方法的不等式约束变为等式约束,从而大大方便了Lagrange乘子alpha的求解,原问题是QP问题,而在LSSVM中则是一个解线性方程组的问题。 min⁡w,b,eJ(w,e)=12wTw+12γ∑i=1Nek2\min_...
  • Topics: Optimal Margin Classifier, Lagrange Duality, Karush-Kuhn-Tucker (KKT) Conditions, SVM Dual, The Concept of Kernels 主题:最优间隔分类,拉格朗日对偶,KKT条件,SVM对偶,核的概念 Lecture 8 顺序...
  • lagrange multipliers拉格朗日乘数法是解决支持向量机margin最大值方法 在数学最优问题中,拉格朗日乘数法(以数学家约瑟夫·路易斯·拉格朗日命名)是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。...

空空如也

空空如也

1 2
收藏数 26
精华内容 10
关键字:

lagrange方法svm