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


    基本型

    用一个超平面去分割空间中的点,任意点x到超平面的距离可表示为:

    [r = frac{| extbf{w}^T extbf{x}+b|}{|| extbf w||} ]

    为了把正负样本分开,引入两个支持平面,使正负样本在两个支持平面两侧,定义线性映射后的表达式为

    [egin{cases} extbf{w}^T extbf{x}+b geq +1, & & y=+1 \ extbf{w}^T extbf{x}+b leq -1, & & y=-1 \ end{cases} o y( extbf{w}^T extbf{x}+b)geq1 ]

    表达式中,两支持平面之间的距离为

    [gamma = frac{2}{|| extbf{w}||} ]

    这样就能得到支持向量机的基本型

    [max limits_{ extbf{w},b} frac{2}{|| extbf{w}||} o min limits_{ extbf{w},b} frac 12 {|| extbf{w}||}^2 \ s.t. y_i( extbf{w}^T extbf{x}_i+b) geq 1 , i= 1,2,...m ]


    拉格朗日乘子法-不等式约束

    给定如下不等式,并使用拉格朗日乘子

    [min limits_{x} f(x), s. t. g(x) leq0 \ ]

    现在考虑

    • 如果解在 g(x)=0 边界上,那么约束有效果
    • 如果解在 g(x)<0 内部,那么这个约束没有任何作用
    • f(x) 梯度与 g(x) 梯度是反向

    因此,如论如何,都有

    [lambda g(x)=0, lambda geq 0 ]

    于是可用等式约束的方法

    [L = f(x)+lambda g(x) ]


    对偶问题

    使用拉格朗日乘子法,得到

    [L = frac 12 {|| extbf{w}||}^2 +sum_{i=1}^m alpha_i(1-y_i( extbf{w}^T extbf{x}_i+b))\ frac{partial L}{partial extbf{w}} = 0 o extbf{w}=sum_{i=1}^malpha_iy_i extbf{x}_i \ frac{partial L}{partial b} = 0 o sum_{i=1}^malpha_iy_i = 0 ]

    消去参数w和b,转换成对偶问题

    [max limits_{alpha} sum_{i=1}^malpha_i-frac 12 sum_{i=1}^msum_{j=1}^malpha_ialpha_jy_iy_j extbf{x}_i^T extbf{x}_j\ s.t. sum_{i=1}^malpha_iy_i = 0 \ f( extbf{x}) = extbf{w}^T extbf{x}+b= sum_{i=1}^malpha_iy_i extbf{x}_i^T extbf{x}+b\ ]

    需要满足的条件(KKT)

    [egin{cases} alpha_i geq 0 \ y_i f(x_i)-1 geq 0 \ alpha_i(y_if(x_i)-1)=0 end{cases} ]


    SMO优化

    可以选择一个a_i然后固定其它并优化a_i,但是由于约束条件限制,因此每次选择a_i和a_j固定其它并优化它们。

    • 选择违背KKT的条件最大的为第一个变量(如果全部满足条件即收敛)
    • 选择与第一个变量差别最大的为第二个变量

    由约束条件可消去一个变量

    [alpha_iy_i+alpha_jy_j=-sum_{k eq i,j} alpha_ky_k, alpha_{i,j} geq0 ]


    确定偏移项

    对于任意支持向量,满足

    [y_i( extbf{w}^T extbf{x}_i+b)=1 ]

    因此,用所有支持向量的平均情况计算偏移

    [b=frac 1{|S|}sum_{sin S}(frac 1{y_s}-sum_{iin S}alpha_iy_i extbf{x}^T_i extbf{x}_s) ]


    软间隔

    由于无法保证所用要本满足约束

    [y_i( extbf{w}^T extbf{x}_i+b) geq1 ]

    因此会使用一个单调递减且恒非负的映射函数l(x)加到损失函数中

    [min limits_{ extbf{w},b} frac 12 {|| extbf{w}||}^2 o min limits_{ extbf{w},b} frac 12 {|| extbf{w}||}^2 +Csum_{i=1}^ml(y_i( extbf{w}^T extbf{x}_i+b)-1), Cgeq0 ]

    当C为无限大时,迫使样本满足约束,否则允许一些不满足约束,一般l(x)取hinge损失

    [min limits_{ extbf{w},b} frac 12 {|| extbf{w}||}^2 +Csum_{i=1}^mmax(0, 1-y_i( extbf{w}^T extbf{x}_i+b)), Cgeq0 ]

    如果引入松弛变量,则又可以表示为以下形式

    [min limits_{ extbf{w},b,xi} frac 12 {|| extbf{w}||}^2 +Csum_{i=1}^mxi_i \ s.t. y_i( extbf{w}^T extbf{x}_i+b) geq1-xi_i, xi_igeq0 ]

    每一个样本对应一个松弛变量,应用拉格朗日乘子

    [L = frac 12 {|| extbf{w}||}^2+Csum_{i=1}^mxi_i +sum_{i=1}^m alpha_i(1-xi_i-y_i( extbf{w}^T extbf{x}_i+b))- sum_{i=1}^mmu_ixi_i \ frac{partial L}{partial extbf{w}} = 0 o extbf{w}=sum_{i=1}^malpha_iy_i extbf{x}_i \ frac{partial L}{partial b} = 0 o sum_{i=1}^malpha_iy_i = 0 \ frac{partial L}{partial xi_i} = 0 o C = alpha_i+mu_i ]

    转化成对偶问题

    [max limits_{alpha} sum_{i=1}^malpha_i-frac 12 sum_{i=1}^msum_{j=1}^malpha_ialpha_jy_iy_j extbf{x}_i^T extbf{x}_j\ s.t. sum_{i=1}^malpha_iy_i = 0, 0leq alpha_ileq C \ f( extbf{x}) = extbf{w}^T extbf{x}+b= sum_{i=1}^malpha_iy_i extbf{x}_i^T extbf{x}+b\ ]

    软间隔KKT条件

    [egin{cases} alpha_i geq 0, mu_i geq0 \ y_i f(x_i)-1+xi_i geq 0 \ alpha_i(y_if(x_i)-1+xi_i)=0 \ xi_igeq0, mu_ixi_i=0 end{cases} ]


    核函数

    为了解决非线性分类问题,使用核函数映射样本空间

    [max limits_{alpha} sum_{i=1}^malpha_i-frac 12 sum_{i=1}^msum_{j=1}^malpha_ialpha_jy_iy_jphi( extbf{x}_i)^Tphi( extbf{x}_j)\ s.t. sum_{i=1}^malpha_iy_i = 0, 0leq alpha_ileq C \ ]

    其中核函数有

    [phi(x_i)^Tphi(x_j) = k(x_i, x_j) = egin{cases} x_i^Tx_j, 线性核 \ (x_i^Tx_j)^d, 多项式核 \ e^{-frac{||x_i-x_j||^2}{2sigma^2}}, 高斯核 \ e^{-frac{||x_i-x_j||}{sigma}}, 拉普拉斯核 \ end{cases} ]

  • 相关阅读:
    关于串联匹配电阻其作用:
    上下拉电阻
    RS232
    常用硬件介绍
    VGA
    JTAG
    [生活]-理财入门
    [Camera] color shading的产生
    [camere] AWB老算法
    Python基础语法知识
  • 原文地址:https://www.cnblogs.com/xytpai/p/12849293.html
Copyright © 2011-2022 走看看