在网上找了许多关于线性可分SVM化简的过程,但似乎都不是很详细,所以凭借自己的理解去详解了一下。

线性可分SVM的目标是求得一个超平面(其实就是求w和b),在其在对目标样本的划分正确的基础上,使得到该超平面最近的样本的几何间隔最远。写成线性规划问题即为

其中γ为最近点到超平面的几何间隔,特别的间隔γ^=||w||×几何间隔γ(间隔γ^与几何间隔γ是两种不同的概念),那么我们就可以将约束和条件改写为

 

而γ^是通过将离超平面最近的样本点代入超平面得到的,即γ^=yi(wxi+b),而对于xi是离超平面最近的一个已知的样本,所以我们可以通过调整w和b来使得y^为一个任意正实数(特别注意不为0,因为对于样本我们是已经得到了结果yi,但是如果y^为0,则与结果yi矛盾),而对于任意的已经确定的w和b我们便可以得到一个确定的γ^的值。即之前的式子γ^=yi(wxi+b),只不过此时,γ^变为了一个确定的值,两边同时除以γ^便得到了1=yi(wxi+b)/y^。而这里γ^=yi(wxi+b)与1=yi(wxi+b)/y^是等价的,因为就像高中所学的直线方程6X+8Y+4=0与3X+4Y+2=0是等价的一样,所以对于任意的正实数γ^都可以划成形如1=yi(wxi+b)/y^的式子。再优化得到1=yi(wxi/γ^+b/γ^)。之前提到了xi是离超平面最近的一个已知的样本,所以对于任意的已知样本带入yi(wx/γ^+b/γ^)都将大于1。而在这里我们用新的w和b代替w/γ^和b/γ^(这里要搞清楚w和b才是变量,γ^是根据变量得到的,而由于对于任意γ^,我们都能在其为1的条件下找到与其不为1时的w和b等价的w和b(当然其他实数也可以),即在γ^=1时就包含了所有可能的解集,所以我们不关心在没替换前γ^是一个多大的一个确定的正实数,这里用新的w和b代替w/γ^和b/γ^其实就相当于使用了一个新的γ^(此时γ^=1),如果你还是不能理解为什么γ^是一个定值,下面一段会从正向解释),所以相对应之前的约束变为了yi(wxi+b)-1>=0,目标函数γ^/||w||我们变为了1/||w||,因为新的w比原来小了一个正实数γ^倍,很简单的分式等价关系,在分母缩小n倍后分子也缩小n倍,则结果不变。

网上还有一种想法是直接确定γ^(离超平面最近样本的间隔)为1或其他正实数,这也是可行的,因为之前有讲到γ^取多少其实不影响结果,但我觉得可能很多人还是理解不了这里的y^为什么是可以是一个定值。我之前提到确定的w和b以及样本xi可以唯一确定γ^,但是反过来如果确定了一个γ和一个样本xi是否能够唯一确定w和b呢?当然显示是不能。还是拿直线方程举例子,如果已知一个点(2,3)带入ax+by+c结果为1,那么2a+3b+c=1结果有多少个呢?显然是无数个{a,b,c}的解集,所以并不能通过确定的γ^来求解确定的w和b。我之前也提到了对于任意确定的w和b算得的γ^式子可以化成1,相反,对于任意确定的在γ^=1的前提下算得的w和b我们通过放大他们的系数可以得到任意的正实数,拿回之前的2a+3b+c=1,其中的一个解集为a=3,b=-2,c=1。将a,b,c都放大两倍变为a=6,b=-4,c=2则得到结果γ^为2,以此类推,对于任意使得γ^为某一正实数的w和b我们都能在γ^=1时找到另一组w和b与之等价,而y^的取值会随着w和b成相同倍数的增加,这里我们的目标函数恰好是γ^/||w||,所以是否将γ^放大成另一个实数并不重要,因为倍数都被约了(这是隐式的,所以目标函数和约束在写出来的时候还是存在差异的,只是结果一样)。所以我们只关心在y^在为一个正实数时,找到那么一个w使得目标函数最大,为了方便起见才取γ^为1,说了这么多其实就是想说明其实γ^取多少并不影响目标结果(影响w的取值是一定的,因为他改变了约束)。

对于求1/||w||最大即为||w||2*1/2最小这两者关系太简单了所以就不多说了,因为都相当于满足约束下求||w||最小。

综上便有了下面这样一个改写了的式子

以上便是博主个人对于化简过程的理解,如有错误或者自己的想法欢迎交流。

(°ー°〃)

线性可分SVM中线性规划问题的化简的更多相关文章

  1. Support Vector Machine(2):Lagrange Duality求解线性可分SVM的最佳边界

    在上篇文章<Support Vector Machine(1):线性可分集的决策边界>中,我们最后得到,求SVM最佳Margin的问题,转化为了如下形式: 到这一步后,我个人又花了很长的时 ...

  2. opencv3.1线性可分svm例子及函数分析

    https://www.cnblogs.com/qinguoyi/p/7272218.html //摘自:http://docs.opencv.org/2.4/doc/tutorials/ml/int ...

  3. 线性可分SVM完全推导过程

  4. 线性可分支持向量机--SVM(1)

    线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...

  5. SVM清晰讲解——线性可分问题

    转载作者:liangdas 引言: 1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于 ...

  6. SVM明确的解释1__ 线性可分问题

    笔者:liangdas 出处:简单点儿,通俗点儿,机器学习    http://blog.csdn.net/liangdas/article/details/44251469 引言: 1995年Cor ...

  7. svm 之 线性可分支持向量机

    定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...

  8. 线性可分支持向量机与软间隔最大化--SVM(2)

    线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...

  9. 统计学习:线性可分支持向量机(SVM)

    模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...

随机推荐

  1. 二分法查找--Python

    二分查找算法,最常规的应用就是在一个有序数组中找特定的数.一般分为四步走: 1. 判定条件为low小于high,low=0, high=size-1 2. mid=(low+high) / 2 3. ...

  2. 框架-.NET:Spring.Net

    ylbtech-框架-Spring.Net:Spring.Net Spring.NET为建立企业级应用提供了一套轻量级的解决方案.通过Spring.NET,我们可以用统一且透明的方式来配置应用程序.S ...

  3. 用 Flask 来写个轻博客 (1) — 创建项目

    目录 目录 前言 扩展阅读 部署开发环境 创建 Github 项目 前言 一步一步的实现一个 Flask 轻博客项目启动,最新的代码会上传到 Github. 扩展阅读 欢迎使用 Flask - vir ...

  4. TFS 中如何将项目加入已有的源代码管理器中?

    Visual Studio 的某解决方案已经加入 Team Foundation Server,现在再将已经存在的项目加入到解决方案中,可是签入时,并没有把新加入的项目签入,怎么办呢? 在团队资源管理 ...

  5. asp.net core网关Ocelot的简单介绍& Ocelot集成Identity认证

    文章简介  Ocelot网关简介 Ocelot集成Idnetity认证处理 Ocelot网关简介 Ocelot是一个基于netcore实现的API网关,本质是一组按特定顺序排列的中间件.Ocelot内 ...

  6. centos_mysql踩坑

    1 mysql安装 a: #wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm b:rpm -ivh mysq ...

  7. java中Date日期类型的大小比较

    方法一:java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小 String beginTime = "2018-07-28 ...

  8. Unity3D中画拉选框(绘制多选框)

    问题分析: 需要根据鼠标事件,摁下鼠标开始绘制选择框,抬起鼠标结束绘制. 实现思路: 该需求是屏幕画线,Unity内置了GL类  封装了OpenGL,可以通过GL类来实现一些简单的画图操作,这里也是使 ...

  9. gulp+sass+react前端开发,环境搭建

    由于前端技术的发展与市场需求的提高,前端开发已经不仅仅是写几个页面那么简单.如何有效的开发.管理一个越来越庞大.越来越复杂的前端项目,成为互联网团队必须要面对的难题. 各种js库.ui库曾经火极一时. ...

  10. Mnesia动态添加节点杂记

    FAQ List: 1. 如果动态的添加一个节点到Mnesia cluster中 2. 如何动态的从mnesia cluster中删除一个节点 3. 在一个节点上演示将当前已有的表格分片fragmen ...