zoukankan      html  css  js  c++  java
  • 支持向量机(一)

           支持向量机(Support Vector Machines SVM)是一种二分类模型,它的目标是在特征空间中寻找对于所有样本距离最大的超平面。与感知机不同的是,在线性可分的情况下,SVM可以得到唯一的解。假设训练集样本为:(T= {(x_{1},y_{1}),(x_{2},y_{2}), ... ,(x_{N},y_{N}) }),其中(x_{i} in mathbb R^{n})表示样本的属性,(y_{i} in { +1, -1})表示样本的标签,(i=1,2,...,N)。设SVM所求的超平面为(w cdot x + b = 0) 其中(w in mathbb R^{n})(b in mathbb R),定义某个样本点((x_{i}, y_{i}))到超平面(w cdot x + b = 0)的距离为:

    [d_{i} = frac{y_{i}(w cdot x_{i} + b)}{parallel w parallel} ]

    令$d = min d_{i} $, (i=1,2,...,N),则SVM的目标函数为:

    [egin{cases} \ max qquad d \\\ \ s.t. qquad frac{y_{i}(w cdot x_{i} + b)}{parallel w parallel} geq d qquad i=1,2,...,N end{cases}]

    令$ d = frac{hat d} {parallel w parallel}$,则上式可化为:

    [egin{cases} \ max qquad frac{hat d} {parallel w parallel} \\\ \ s.t. qquad y_{i}(w cdot x_{i} + b) geq hat d qquad i=1,2,...,N end{cases}]

           由于超平面(w cdot x + b = 0)可以对其参数进行任意大小的缩放,即对于任意的标量(lambda),都有(lambda(w cdot x)+ lambda b = 0,hat d)为一个标量,它的大小对于最终的参数求解并无影响,因此可以令(hat d = 1)。并且(max frac{1}{parallel w parallel})等价于(min frac{1}{2}parallel w parallel^{2})。因此上式等价为:

    [egin{cases} \ min qquad frac{1} {2}parallel wparallel^{2} \\\ \ s.t. qquad y_{i}(w cdot x_{i} + b) geq 1 qquad i=1,2,...,N end{cases} qquad (1)]

           接下来可以通过拉格朗日对偶性,求解该问题的对偶问题,从而得到原始问题的最优解。引入拉格朗日因子(lambda _ {i} geq 0, i=1,2,...,N),则拉格朗日函数为:

    [L(w,b,lambda) = frac{1} {2}parallel wparallel^{2} + sum_{i=1}^{N} lambda _ {i}(1-y_{i}(w cdot x_{i} + b)) qquad (2) ]

    由于(lambda _ {i} ( 1-y_{i}(w cdot x_{i} + b)) leq 0, i=1,2,...,N),因此

    [frac{1} {2}parallel w parallel^{2} geq L(w,b,lambda),等号成立的条件为:sum_{i=1}^{N} lambda _ {i}(1-y_{i}(w cdot x_{i} + b)) = 0 qquad (3) ]

    所以(1)可以等价为:

    [minlimits_{w,b} maxlimits_{lambda} L(w,b,lambda) qquad (4) ]

    根据拉格朗日对偶性,上述等式的对偶问题是极大极小问题:

    [maxlimits_{lambda} minlimits_{w,b} L(w,b,lambda) qquad (5) ]

    对于上式,先求解(minlimits_{w,b} L(w,b,lambda)).首先对其关于(w)(b)分别求偏导,并令其为0:

    [frac{partial L}{partial w} = w - sum_{i=1}^{N} lambda_{i}y_{i}x_{i}=0 qquad frac{partial L}{partial b} = - sum_{i=1}^{N}lambda_{i}y_{i}=0 ]

    则:

    [w = sum_{i=1}^{N} lambda_{i}y_{i}x_{i} qquad sum_{i=1}^{N}lambda_{i}y_{i}=0 qquad (6) ]

    将上述结果带入到拉格朗日函数可得:

    [L(w,b,lambda) = - frac{1}{2} sum_{i=1}^{N}sum_{j=1}^{N}lambda_{i}lambda_{j}y_{i}y_{j}(x_{i} cdot x_{j}) + sum_{i=1}^{N} lambda _{i} qquad (7) ]

    则(5)可以化为:

    [egin{cases} \ max qquad - frac{1}{2} sum_{i=1}^{N}sum_{j=1}^{N}lambda_{i}lambda_{j}y_{i}y_{j}(x_{i} cdot x_{j}) + sum_{i=1}^{N} lambda _{i} \\ \ s.t.qquad sum_{i=1}^{N}lambda_{i}y_{i}=0 ,qquadlambda_{i} geq 0 qquad i=1,2,...,N end{cases} qquad (8)]

           通过上式可以求出原始问题的对偶优化问题,求解该问题可以借用序列最小化算法(Sequential minimal optimization SMO)。使用对偶问题求解带来的一大好处是:在求解中只使用了原始样本属性的内积形式(x_{i} cdot x_{j}),这为之后引入核函数提供了很大的便利。

           另外考虑(3)中的等号成立的条件,由此可知:

    [egin{cases} \ 当 y_{i}(w cdot x_{i} + b) > 1 时,lambda_{i} = 0\\ \ 当 y_{i}(w cdot x_{i} + b) = 1 时,lambda_{i} geq 0 end{cases} qquad (9)]

    因此只有样本(i)满足:(y_{i}(w cdot x_{i} + b) = 1)时,该样本对于最终的结果才会有影响。这些样本处于边界位置,被称为 支持向量

           通过(8)可以解出(lambda_{i}(i=1,2,...,N))的值,然后将其带入(6)中,可以解出参数(w)的解。另外当(lambda_{j} > 0)时,对应的样本点为支持向量,该点满足条件:(y_{j}(w cdot x_{j} + b) = 1)。将参数(w)的解带入该条件中,可以得出参数(b)的解。因此最终的解形式为:

    [egin{cases} \ w = sum_{i=1}^{N} lambda_{i}y_{i}x_{i}\\ \ b = y_{j} - sum_{i=1}^{N} lambda_{i}y_{i}(x_{i} cdot x_{j}) qquad lambda_{j} > 0 end{cases} qquad (10)]


    1.参考文档:

           [1]. 统计学习方法              李航 著

  • 相关阅读:
    Running ASP.NET Applications in Debian and Ubuntu using XSP and Mono
    .net extjs 封装
    ext direct spring
    install ubuntu tweak on ubuntu lts 10.04,this software is created by zhouding
    redis cookbook
    aptana eclipse plugin install on sts
    ubuntu open folderpath on terminal
    ubuntu install pae for the 32bit system 4g limited issue
    EXT Designer 正式版延长使用脚本
    用 Vagrant 快速建立開發環境
  • 原文地址:https://www.cnblogs.com/alants/p/10552334.html
Copyright © 2011-2022 走看看