zoukankan      html  css  js  c++  java
  • SVM中的间隔最大化

    参考链接:

    1.https://blog.csdn.net/TaiJi1985/article/details/75087742

    2.李航《统计学习方法》7.1节 线性可分支持向量机与硬间隔最大化

    3.https://zhuanlan.zhihu.com/p/45444502,第三部分 手推SVM

     

    本文目标:理解SVM的原始目标,即间隔最大化,并将其表示为约束最优化问题的转换道理。

    背景知识:假设已经知道了分离平面的参数w和b,函数间隔γ',几何间隔γ,不懂的可以参考书本及其它。

           为了将线性可分的数据集彻底分开,并分得最好,SVM的原始目标是找到一个平面(用w,b表示,二维数据中是一条直线,如下图所示),使得该平面与正负两类样本的最近样本点的距离最大化。简单的说,就是任给一个平面w,b,总有一个样本点离它的距离最近(点到平面的距离,可以用来表示),过该样本点作平行于分割平面的平面,两个平面形成分隔带。我们的目标是比较各种平面(无数个),找出一个平面使得“分隔带最胖”。那么如何来表述“分隔带最胖”呢?

    (引自参考链接1)

           对于平面w,b来说,假设距离平面最近的点是,又由于该平面w,b可以将所有样本点正确分类,即满足,因此我们可以将上述最近点到平面w,b的距离改写为,其中取值为+1或-1。因此我们的目标就是最大化,注意该式子中已经是离超平面w,b最近点了,称为γ超平面w,b关于训练数据集T的几何间隔

           因此我们的原始问题:求得一个几何间隔最大的分离超平面,可以表示为下述约束最优化问题

     

    重要问题一:为何会出现第二行中的约束条件?

           有了这N个约束条件,好像w,b的可选范围小了很多,跟一开始单纯的最大化几何间隔的任意选w,b有所背离啊?等等,这儿需要注意的是,一开始我们目标是最大化几何间隔,这个几何间隔其实是所有样本点的几何间隔中最小值,而所有样本点的几何间隔有可能是正数(被正确划分),也有可能是负数(被错分)。但是我们一开始讨论最大化几何间隔的时候已经默认平面w,b把训练集T中的所有样本点都正确分类了,只有这样我们才会要求“分隔带最胖”啊,如果有错分的,那分隔带越胖就越不好了。因此满足将所有样本点都正确分类的w,b本来就没多少(限制在一定的范围内了,虽然还是有无数种可能),所以原本我们就要求w,b满足,而且还得要求如下,

    ,以保证之前是离超平面w,b最近点的设定

    重要问题二能否对约束最优化问题进行简化?因为目前来看被优化的目标函数γ跟w,b和都有关系,有点不简洁。

            解决思路是,对于任意的平面w,b,其实都有无数组参数λw,λbλ不为0都表示该平面。因此我每次选到一个w,b,就相应的知道了最近点(最近点其实是依赖于w,b的,称为支持向量,个人理解也可以称作支持样本点),我都缩放一下w,b,使得函数间隔γ'=1,即:

    。注意到,缩放w,b前后,其所代表的平面是同一个超平面;而且缩放w,b对于目标函数γ毫无影响,因为其分子分母都是缩放相同的倍数;再者,约束条件的不等号两边都是同时缩放相同的倍数,也无影响。因此,如果我们采用枚举法来求解上述最优化问题(为直观理解,其实是枚举不完的),每次我们随机考察一个平面(w,b),我们都缩放为(w',b')=(λw,λb),使得函数间隔γ'=1,那么我们依旧在考察同一个平面,依旧能算出和缩放前一样的目标函数γ值,依旧符合同样的约束条件。这么处理(特定缩放)有何好处呢?通过这样的处理,我们把约束最优化问题可以转化为如下形式:

     

           如此形式,简洁明了多了。再者我们可以将max变为min,最大化与最小化是等价的,就得到了如下线性可分支持向量机学习的最优化问题:

    PS:

           为加深上述重要问题二的理解,我们可以举一个例子来验证它。

           假设有A,B两种w,b的方案,A平面的支持向量(最近点),B平面的支持向量,我们来比较A,B方案的优劣。

         1)首先在原始目标函数下,得到两个平面的γ如下:

       我们假设那么我们换种思路来比较A方案与B方案,看看结果是否一致。

       2)令注意到在给定平面A的情况下这是一个数(其实就是平面A关于训练集T的函数间隔)。

         我们令缩放为,则

       同理,对于平面B,我们可以将缩放为,则

         现在我们通过比较来确定哪个方案更好,是A还是B?

           所以我们发现结果是一致的,A优于B,而且目标函数值也与原目标函数值一致。至此,我们验证了准确性,直观感受了w,b缩放前后目标函数值的不变性。

     

    学习是熵减的过程,终身学习应当是每个人去做到的。
  • 相关阅读:
    jackson 枚举 enum json 解析类型 返回数字 或者自定义文字 How To Serialize Enums as JSON Objects with Jackson
    Antd Pro V5 中ProTable 自定义查询参数和返回值
    ES6/Antd 代码阅读记录
    es 在数据量很大的情况下(数十亿级别)如何提高查询效率啊?
    Antd Hooks
    使用.Net Core开发WPF App系列教程(其它 、保存控件内容为图片)
    使用.Net Core开发WPF App系列教程( 三、与.Net Framework的区别)
    使用.Net Core开发WPF App系列教程( 四、WPF中的XAML)
    使用.Net Core开发WPF App系列教程( 二、在Visual Studio 2019中创建.Net Core WPF工程)
    使用.Net Core开发WPF App系列教程( 一、.Net Core和WPF介绍)
  • 原文地址:https://www.cnblogs.com/alesvel/p/9882312.html
Copyright © 2011-2022 走看看