支持向量机(2)

来源:互联网 发布:mysql 创建覆盖索引 编辑:程序博客网 时间:2024/06/09 16:07

第一节已经介绍了直接求解线性可分支持向量机的方法,但求解过程往往复杂。所以我们可以转换思路:将该问题作为原始问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的解。这样做的好处:

  • 求解更加容易
  • 可以引入核函数,方便推广到非线性分类问题

对偶问题

对偶问题求解步骤:

  1. 根据原始问题,构造拉格朗日函数:

    L(w,b,α)=12||w||2+i=1Nαi(1yi(wxi+b))=12||w||2i=1Nαiyi(wxi+b)+i=1Nαi

  2. 原始问题为极小极大问题,对偶问题为极大极小问题。即:

    maxαminw,bL(w,b,α)
    先求L(w,b,α)w,b的极小,再求minL(w,b,α)α的极大。依次为:

    • 先求L(w,b,α)w,b的极小
      wL(w,b,α)=wi=1Nαiyixi=0
      bL(w,b,α)=i=1Nαiyi=0
      将两个等式结果代入L(w,b,α),就得到了minL(w,b,α)。即:
      minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxi)xj+b)+i=1Nαi=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
    • 再求minL(w,b,α)α的极大,即是对偶问题:
      maxα 12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαii=1Nαiyi=0αi0i=1,2,,N

      也等价于
      minα 12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαii=1Nαiyi=0αi0i=1,2,,N
  3. 由上一步求解对偶问题,可以得到对偶问题的解α=(α1,α2,,αN)。且此原始问题和对偶问题符合转换的条件,通过KKT条件可以由α求得原始问题的解w,b
    KKT条件:

    wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0αi(yi(wxi+b)1)=0yi(wxi+b)10αi0i=1,2,,N

    则得到w=Ni=1αiyixi,又因为一定存在αi>0(若均等于0,则w=0不是原始问题可行解),则对于αi>0,有yi(wxi+b)1=0,则b=yiwxi=yiNj=1αjyj(xixj)
    因此得到了分离超平面Ni=1αiyi(xxi)+b=0,相应的分类器为f(x)=sign(Ni=1αiyi(xxi)+b)
    也就是说,之前对于未知样本首先根据w和b做一次线性运算,然后看求的结果是大于0还是小于0,来判断正例还是负例。现在通过αi,我们不需要求出w,只需将未知样本和训练数据中的所有样本做内积和即可。另外,我们从KKT条件中得到,只有支持向量的αi>0,其他情况αi=0。因此,我们只需求未知样本和支持向量的内积然后运算即可。

0 0