线性可分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{ ...
随机推荐
- [NOIP模拟测试11] 题解
A.string 和河北的一道省选题很像.考场上写的暴力桶排,正解其实就是优化一下这个思路. 开线段树维护字符串中每个字母出现的次数.对于每条询问,区间查询.区间赋值维护即可. 另外,本题卡常严重,正 ...
- (转)即时通讯IM OpenFire源码学习之三:在Eclipse中构建源码
转:http://blog.csdn.net/huwenfeng_2011/article/details/43412617 源码搭建 下载地址: 地址:http://www.igniterealti ...
- php 常用加密函数
md5()md5()默认情况下以 32 字符十六进制数字形式返回散列值,它接受两个参数,第一个为要加密的字符串,第二个为raw_output的布尔值,默认为false,如果设置为true,md5()则 ...
- 解决ajax跨域问题【5种解决方案】
什么是跨域问题?跨域问题来源于JavaScript的"同源策略",即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问.也就是说JavaScript只能访问和操作自己域下的 ...
- CentOS 安装MySQL(rpm)提示错误Header V3 DSA/SHA1 Signature
提示错误:Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies 错误原因:这是由于yum安装了 ...
- 统计HDFS 上字节数据统计
class HDFSWordCount { def main (args: Array[String]) { if (args.length > 0){ for (line <- Sour ...
- 7-MySQL-Ubuntu-操作数据表的基本操作(二)
修改数据表的结构 (1)向数据表中添加新的字段 alter table 表名 add 字段名 类型及约束; (2)修改字段的属性(字段的数据类型和约束) 注:modify不能修改字段名,只能修改字段 ...
- Asp.net Core + Log4net + ELK 搭建日志中心
原文:Asp.net Core + Log4net + ELK 搭建日志中心 Docker中一键安装ELK 对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasti ...
- sql 左连接与右连接
假设有A,B两个表. 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID ...
- SOLID设计原则
SOLID设计原则 Single Responsibility Principle单一职责原则 单一职责原则(SRP)表明一个类有且只有一个职责. 一个类就像容器一样,它能添加任意数量的属性.方法等. ...