zoukankan      html  css  js  c++  java
  • 初识机器学习_07 线性可分SVM与硬间隔最大化

      线性可分SVM:

        定义:给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到分离超平面:w*.x+b*=0(计算出w*,b*的值)以及相应的分类决策函数 : f(x)=sign(w*.x+b*)  成为线性可分支持向量机。

        

        目标函数:最大化间隔(几何间隔)

            函数间隔与几何间隔:

        

        

              几何间隔:即点到面的距离。显然,函数间隔与几个间隔只相差||w||倍。

               于是有问题模型:

          

              由于函数间隔的值并不影响整个问题的求解,我们令函数间隔等于1,又问题max{1/||w||}与min{||w||^2/2}等价,于是问题改写为:

              由此,线性可分SVM问题就转化为一个凸二次规划问题

          凸二次规划问题的求解:

              ①:直接求解

              ②:为了简化求解过程,通过求解对偶问题求原始问题的最优解,同时,可以引入核函数,进而推广到非线性分类问题。

          学习的对偶算法:

              构建拉格朗日函数,引入拉格朗日乘子(ref:《统计学习方法》.李航(p225,附录C))于是有:

     

              由拉格朗日对偶性,原问题的对偶问题是极大极小问题:对a求极大,对w,b求极小。

              首先求L(w,b,a)的对w,b极小值,分别对w,b求偏导并令其等于零。有:

              带入拉格朗日函数,有:

              再对a求极大值:

                        max 

              可以转化为其对偶问题:

              于是可以解出a向量的值,又原问题满足KKT的条件,所有w*,b*可以由a表示出来:

              于是,线性可分SVM的解为:

                       分离超平面:

              最终我们可以写出,线性可分解SVM算法:

              

  • 相关阅读:
    redhat 5 中文乱码
    生成树
    交换机端口模式
    链路聚合
    AP注册
    信息收集
    Python 25 Django跨域请求
    Python 24 Django之csrf中间件
    Python 23 Django基础
    Python 21 Flask(三)第三方组件
  • 原文地址:https://www.cnblogs.com/govin/p/3689182.html
Copyright © 2011-2022 走看看