线性可分SVM中线性规划问题的化简
在网上找了许多关于线性可分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中线性规划问题的化简的更多相关文章
- Support Vector Machine(2):Lagrange Duality求解线性可分SVM的最佳边界
		
在上篇文章<Support Vector Machine(1):线性可分集的决策边界>中,我们最后得到,求SVM最佳Margin的问题,转化为了如下形式: 到这一步后,我个人又花了很长的时 ...
 - opencv3.1线性可分svm例子及函数分析
		
https://www.cnblogs.com/qinguoyi/p/7272218.html //摘自:http://docs.opencv.org/2.4/doc/tutorials/ml/int ...
 - 线性可分SVM完全推导过程
 - 线性可分支持向量机--SVM(1)
		
线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...
 - SVM清晰讲解——线性可分问题
		
转载作者:liangdas 引言: 1995年Cortes和Vapnik于首先提出了支持向量机(Support Vector Machine),由于其能够适应小样本的分类,分类速度快等特点,性能不差于 ...
 - SVM明确的解释1__
线性可分问题
		
笔者:liangdas 出处:简单点儿,通俗点儿,机器学习 http://blog.csdn.net/liangdas/article/details/44251469 引言: 1995年Cor ...
 - svm 之 线性可分支持向量机
		
定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...
 - 线性可分支持向量机与软间隔最大化--SVM(2)
		
线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...
 - 统计学习:线性可分支持向量机(SVM)
		
模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...
 
随机推荐
- xshell突出显示集
			
xshell突出显示集(参考mobaxterm,直接拷贝过来不行,应该是xshell对正则表达式的支持不够好): Underline: \b(http(s)?://[A-Za-z0-9_./& ...
 - next()nextLine()以及nextInt()的区别及用法【转载】
			
next().nextLine().nextInt()作为scanner内置的方法,常常让人傻傻分不清楚,今天在这里记下他们的区别以及以此区别为出发点的用法:他们的区别在于对于空格的处理方式不同,以及 ...
 - ThinkPHP5验证码不显示的原因及解决方法
			
其实很久之前刚学习tp5框架的时候就遇到了这个问题,解决完后一直没再出过问题,今天用以前的框架做新项目时又碰到了这个问题,这里记录一下 问题原因: 1.TP5本就存在这个bug 2.数据库连接不正常( ...
 - Django-ORM初识
			
Django之ORM基础 一.ORM简介: ORM概念: 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术 ...
 - Pregel Worker
 - 标准 IO fprintf 与 sprintf 函数使用
			
函数原型 fprintf int fprintf(FILE *stream, const char *format, ...); 把数据写到流中 int sprintf(char *str, con ...
 - 微服务(Microservices)和服务网格(Service Mesh)的架构概念
			
注:文章内容为摘录性文字,自己阅读的一些笔记,方便日后查看. 微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技 ...
 - Python自学:第五章 动手试一试 4-3
			
# -*- coding: GBK -*- numbers = ['] for number in numbers: print(number) 输出为: 1 2 3 4 5 6 7 8 9 10 1 ...
 - cehsi
			
weibo https://oapi.dingtalk.com/robot/send?access_token=8c9ef96c99925383347c5f9f733ad6b8579c3f8ad072 ...
 - smarty基础总结
			
前提: 1. 部署smarty模板目录: 2. 编写Smarty类的子类,定制好template_dir.compile_dir.config_dir.cache_dir.left_delimiter ...