• SVM旅程


    今天开始学习SVM

    1.1  SVM的基本原理

           SVM方法是从线性可分情况下的最优分类面(Optimal Hyperplane)提出的。考虑图1所示的二维两类线性可分情况,图中实心点和空心点分别表示两类的训练样本,H为把两类没有错误地分开的分类线,H1、H2分别为过各类样本中离分类线最近的点且平行于分类线的直线,H1和H2之间的距离叫做两类的分类空隙或分类间隔(margin)。所谓最优分类线就是要求分类线不但能将两类无错误地分开,而且要使两类的分类空隙最大。前者是保证经验风险最小(为0),而通过后面的讨论可以看到,使分类空隙最大实际上就是使推广性的界中的置信范围最小,从而使真实风险最小。推广到高维空间,最优分类线就成为最优分类面。

         设线性可分样本集(xi,yi), i = 1, ......n, y belong{+1, -1} 是类别标号,d维空间中线性判别函数的一般形式为:

                             g(x) = w·x + b      (1)

    分类面方程为:

                             w·x + b = 0      (2)

        我们将判别函数进行归一化,使俩类所有样本都满足|g(x)|≥ 1,即使离分类面最近的样本的|g(x)|≥ 1,这样分类间隔就等于2/||w||,因此,使间隔最大等价于使||w||(或||w||2)最小;而要求分类线对所在样本正确分类,就是要求它满足

                            yi[(w·xi) + b] - 1 ≥ 0, i = 1, 2,...,n.     (3)

        因此,满足上述条件且使||w||2最小的分类面就是最优分类面。过俩类样本中离分类面最近的点且平等于最优分类面的超平面H1,H2上的训练集就是使(3)式中使等号成立的那些样本,它们叫做支持向量(Support Vectors)。因为它们支持了最优分类面,如图1中用圆圈标出的点所示。

        下面我们看如何求最优分类面,根据上面的讨论就是使:

                            Φ(w) = 1/2||w||2 = 1/2(w·w)     (4)

        的值最小。为此,可以定义如下的Lagrange函数:

                            L(w,b,a) = 1/2(w·w) - ∑ai{yi[w·xi) + b] - 1}    i = 1,...,n    (5)

    其中,ai > 0为Lagrange系数, 我们的问题是对w和b求Lagrange函数的极小值。

             把式(5)分别对w和b求偏微分,并令它们等于0, 就可以把原问题转化为如下这种较简单的对偶问题:在约束条件

                            ∑yi·ai = 0    i = 1,...,n    (6a)

                            ai ≥ 0         i = 1,...,n    (6b)

    之下对ai求解下列函数的最大值:

                            Q(a) = ∑ai - 1/2∑ai·aj·yi·yj·(xi·xj)    i = 1,...,n; j = 1,...,n    (7)

    若ai* 为最优解,则:

                            w= ∑ai*·yi·xi         i = 1,...,n    (8)

    即最优分类面的权系数向量是训练样本向量的线性组合。     

        这是一个不等式约束下的二次函数极值问题,存在唯一解,且根据Kü hn-Tucker条件,这个优化问题的解须满足

                            ai·(yi·(w·xi + b) - 1) = 0           i = 1,...,n

        因此,对多数样本ai*将为零,取值不为零的ai*对应于使式(3)等号成立的样本即支持向量。

        求解上述问题后得到的最优分类函数是

                            ƒ(x) = sgn{(w*·x) + b*} = sgn{∑ai*·yi(xi·x) + b*}    (10)

        其中,sgn()为符号函数。由于非支持向量对应的ai均为0,因此式中的求和实际上只对支持向量进行。而 b* 是分类的域值,可以由任意一个支持向量用式(3)求得(因为支持向量满足其中的等式),或通过俩类中任意一对支持向量取中值求得。

    以上都是抄自某篇Paper的,比较不容易懂,起码现在我还是不懂SVM的工作原理,为弄懂这个还顺便学了一个拉格郎日了。。。

  • 相关阅读:
    ADB 多设备中指定设备的启动
    vuex 绑定表单,多个输入框的解决办法
    vue 自动触发点击事件
    js 打印dom的所有属性
    邮件分享
    table表格 td设置固定宽度
    Echarts--Y坐标标题显示不全
    ExtJS5.0 菜鸟的第一天
    字体设置
    短信验证码+倒计时
  • 原文地址:https://www.cnblogs.com/juefan/p/3090433.html
Copyright © 2020-2023  润新知