• 支持向量机(一)


           支持向量机(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]. 统计学习方法              李航 著

  • 相关阅读:
    CSwinform程序分页
    C#跨线程访问控件
    CS程序发布版本后提示自动升级功能
    winform控件的二次开发
    JavaNetty拆包粘包(二)
    JavaNetty(一)
    JavaAIO编程
    javaNIO编程
    Java中bio编程
    如何使用CryptoJS配合Java进行AES加密和解密
  • 原文地址:https://www.cnblogs.com/alants/p/10552334.html
Copyright © 2020-2023  润新知