在上篇文章《Support Vector Machine(1):线性可分集的决策边界》中,我们最后得到,求SVM最佳Margin的问题,转化为了如下形式:

到这一步后,我个人又花了很长的时间去查阅资料,因为数学较差的原因,理解起来相当慢,不过探索的乐趣也就在于不断的打破瓶颈向前,OK继续。上述的问题等价于:

而后我们引入广义拉格朗日函数,利用拉格朗日对偶性来求解此问题。首先明确一下,我们做这些工作的目的是,消去约束条件,为了好求解问题。广义拉格朗日函数为:

上式分为两部分,拉格朗日前辈的思路是,让后一项达到最大值,然后固定住,则问题等价于求前一项的最小值。既然我们想要消去条件(第二项),那么就要证明条件是没用的。也就是说,无论给不给出,这个条件都会成立,那必然就可以舍弃!所以说来,我们考虑,这个世界上只存在两种可能:

  

首先,我们考虑<1的情况,即不满足原问题的条件,则广义拉格朗日函数的第二项,其最大值会趋于无穷,那么我们没法求该式子的最小值,这个条件也就会被放弃!而在大于等于一的情况下,函数的第二项会趋向于0,也就是说,当我们求整个公式的最小值时,会天然的选择满足条件的一侧,从而将原问题转化为:

然后我们考虑下一个问题,对偶。刚才,我们先把着眼点放在第二项上,将其最大化,然后再将第一项最小化从而转化了原问题。那么,如果我们再看一下这个公式:如果将alpha视为常量(取为alpha'),然后将w和b作为变量来最小化这个函数,可知第二项小于等于第一次我们推导的公式。为什么,因为刚才我们把第二项做了max,而现在却是取为alpha',max>=any。也即:

现在确定了w和b,我们再将alpha'来做变换,取最大值,可知:

由此得到拉格朗日对偶问题(Lagrange Dual Problem)。

在一般条件下,,但在某些特殊情况下,二者却是等价的,这种情况叫做强对偶。而我们求解SVM的最佳边界,就要用强对偶下的KKT(Karush–Kuhn–Tucker conditions)条件来完成。KKT条件如下:

在第三个条件中,我们如果回想,g(w)是什么?可以依稀记得:

也就是说,此处令alpha>0即g(w)=0的解,是在我们的margin(s)上的,即它们就是support vectors

求解步骤:

1、固定住alpha,对w和b分别求偏导数,让其等于0:

带回之前的L,得到:

推导过程如下:

一定要注意x是转置的。为什么a和y不转置?因为a是常数呀,y呢?y是分类呀,-1或者1,所以无需转置。则问题转化为:

利用SMO继续求解的过程,请见:SMO算法

---------------------------------------------------------------------------------------------------------------------------------------

声明几点:

1、要特别感谢这篇文章:简易解说拉格朗日对偶(Lagrange duality),特别喜欢这种平易近人的数学讲解。

2、支持向量机通俗导论写的相当详尽,个人拜读了不下20遍,依然在继续学习中。

3、李航老师的《统计学习方法》中,也讲的很透彻。

我是个看到类似‘拉格朗日’这种字眼就害怕的人,拜谢前人的智慧和分享精神。

Support Vector Machine(2):Lagrange Duality求解线性可分SVM的最佳边界的更多相关文章

  1. Support Vector Machine(1):线性可分集的决策边界

    与Logistuc Regression相比,SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化.比较容易理解 ...

  2. 支持向量机(Support Vector Machine,SVM)—— 线性SVM

      支持向量机(Support Vector Machine,简称 SVM)于 1995 年正式发表,由于其在文本分类任务中的卓越性能,很快就成为机器学习的主流技术.尽管现在 Deep Learnin ...

  3. A glimpse of Support Vector Machine

    支持向量机(support vector machine, 以下简称svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本篇希望在正篇提供一个svm的简明阐述,附录则提 ...

  4. 机器学习之支持向量机(Support Vector Machine)

    转载请注明出处:http://www.cnblogs.com/Peyton-Li/ 支持向量机 支持向量机(support vector machines,SVMs)是一种二类分类模型.它的基本模型是 ...

  5. 支持向量机 support vector machine

    SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习. ...

  6. 支持向量机SVM(Support Vector Machine)

    支持向量机(Support Vector Machine)是一种监督式的机器学习方法(supervised machine learning),一般用于二类问题(binary classificati ...

  7. 5. support vector machine

    1. 了解SVM 1. Logistic regression回顾 Logistic regression目的是从特征中学习出一个0/1二分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的 ...

  8. 机器学习算法 --- SVM (Support Vector Machine)

    一.SVM的简介 SVM(Support Vector Machine,中文名:支持向量机),是一种非常常用的机器学习分类算法,也是在传统机器学习(在以神经网络为主的深度学习出现以前)中一种非常牛X的 ...

  9. 机器学习技法总结(一):支持向量机(linear support vector machine,dual support vector machine)

    第一阶段技法: large margin (the relationship between large marin and regularization), hard-SVM,soft-SVM,du ...

随机推荐

  1. 音频视频的播放的进度调整(以.net为例)

    Background:对于音视频在线播放,一些小应用是靠nginx处理访问视频.音频文件的请求,对外应用的一般会托管至各种云上使用相关的服务.前者存在巨大的安全隐患,后者会有一定的成本.有的时候还是需 ...

  2. 在Centos7.6使用kubeadm部署k8s 1.14.3

    K8s不是一个软件,而是一堆软件的集合,由于这堆软件各自独立,因此可能k8s安装过程很容易出现问题 K8s部署有多种方式,本文使用kubeadm部署,从易操作性和可控性来说属于中等的方式 环境:cen ...

  3. ASP.NET @URL帮助类

    原文: https://www.cnblogs.com/bobo-show/p/5746389.html    https://www.cnblogs.com/zhuji/p/7698057.html ...

  4. C#将MD5后的字符串转为字符数据,随机大小写

    一如下代码 public static string GenerateCode(Guid id, DateTime endTime, string Type) { string str = id + ...

  5. 阿里开源框架-JarsLink-【JAVA的模块化开发框架】

    JarsLink (原名Titan) 是一个基于JAVA的模块化开发框架,它提供在运行时动态加载模块(一个JAR包).卸载模块和模块间调用的API. 需求背景 应用拆分的多或少都有问题.多则维护成本高 ...

  6. 微信小程序之全局储存

    全局变量app.globalData 本地缓存wx.setStorageSync(KEY,DATA)wx.getStorageSync(KEY)wx.getStorageInfoSyncwx.remo ...

  7. linux NFS 的安装准备

    关闭 iptables 和 selinux [root@allentuns ~]# service iptables stop [root@allentuns ~]# chkconfig iptabl ...

  8. mysql清空表数据并重置自增ID

    mysql清空表数据并重置自增ID: ## 查看mysql> select * from work_order_company;mysql> show create table work_ ...

  9. python面向对象--反射机制

    class Black: feture="ugly" def __init__(self,name,addr): self.addr=addr self.name=name def ...

  10. bzoj5016 & loj2254 [Snoi2017]一个简单的询问 莫队

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=5016 https://loj.ac/problem/2254 题解 原式是这样的 \[ \su ...