SVM总结

    xiaoxiao2025-07-27  12

    SVM简介:

    一、SVM定义:二分类模型,特征空间上间距最大的线性分类器;目标是间距最大化,可转化为凸二次优化问题。二、给定一些数据点,可分为两类,SVM目标找到一个超平面线性划分这两个类别,超平面可方程表示为: 

                               x+b=0

    三、分类决策函数

                            f(x)=sign(x+b)

     

    四、函数间距与几何间距(通过wTx+b与y的预测是否一致来表示是否分正确)

              4.1函数间距:

                  

           (函数间距表示存在问题:成比例改变w,b,函数间距也会成比例变化,为此,引出了几何间距对w进行约束)

             4.2几何间距:

                             

                                     

     

              几何间隔就是函数间隔除以||w||

              4.3几何间距较函数间距更加适合的原因:

              对一个数据点进行分类,当超平面离数据点的“间隔”越大,分类的确信度(confidence)也越大。所以,为了使得分类的确信度尽量高,需要让所选择的超平面能够最大化这个“间隔”值。函数间隔不适合用来最大化间隔值,因为在超平面固定以后,可以等比例地缩放w的长度和b的值,这样可以使得的值任意大,亦即函数间隔可以在超平面保持不变的情况下被取得任意大。但几何间隔因为除上||w||了,使得在缩放wb的时候几何间隔的值是不会改变的,它只随着超平面的变动而变动,因此,这是更加合适的一个间隔。

    五、优化目标

           如下图所示,中间的实线x+b=0是要求解的最优超平面,其到两条虚线(间隔边界)的距离相等,这个距离便是几何间隔,两条虚线之间的距离等于2,而虚线上的点则是支持向量。由于这些支持向量刚好在边界上,所以它们满足y(x+b)=1,而对于所有不是支持向量的点,则显然有y(x+b)>1。 

         在分类正确的情况下,间距最大化

              

        考虑到函数间距与几何间距的关系,上式等价于

                 

          为了方便推导和优化,令=1,上式表示为

                

    这是一个典型的凸二次优化问题,可以通过与原问题等价的对偶问题来求解该问题。凸优化问题描述如下:

                       

    对偶问题往往更容易求解;可以自然的引入核函数,进而推广到非线性分类问题。

     

    六、线性svm算法描述

                             

    七、转化为对偶问题求解SVM

         7.1定义拉格朗日函数

                            

         7.2 KTT条件(统计学习方法附录C)

                           

            将原始问题转化为极大极小问题

                             

                          

                          

                               

           7.3 SVM求解

                                 

                              

    可转化为:

                       

                      

    7.4线性可分对偶算法描述

                       

                      

    八、软间距svm

                   

                 

                   

                 

           九、核函数

           9.1引入核函数的原因

           在线性不可分的情况下,支持向量机首先在低维空间中完成计算,然后通过核函数将输入空间映射到高维特征空间,最终在高维特征空间中构造出最优分离超平面,从而把平面上本身不好分的非线性数据分开。

           9.2核函数的算法

                 

     

          9.3常见的核函数

          定义:f(x1,x2)=<x1,x2>=(x1)(x2),(x1)表示原来的样本扩维后的坐标。

          线性核函数:

          K<x1,x2>=<x1,x2>

        多项式核函数:     

         K<x1,x2>=

        高斯核:

        K(x1,x2)=

       拉普拉斯核函数:

        K(x1,x2)=

       sigmod核函数:

       K(x1,x2)=

    十、tensorflow代码实现svm见git

       https://github.com/frostjsy/my_study/blob/master/ml/svm/svm.py

    参考:1、李航《统计学习方法》

    2、https://blog.csdn.net/alwaystry/article/details/60957096

     

    最新回复(0)