推荐阅读:对偶问题,KKT条件

关键词:最大间隔;支持向量;对偶问题;KKT条件;SMO算法

6.1 间隔与支持向量

关键词:最大间隔;支持向量
支持向量机(Support Vector Machine,SVM)是常见的二分类器,与逻辑回归不同,SVM 寻找的是使得间隔最大的那一个超平面作为分类器。间隔是什么意思?就是两个异类支持向量(Support Vector)到超平面的距离之和。什么是支持向量呢?就是距离超平面最近的那几个训练样本。如下图,圈出来的那三个样本就是支持向量。 间隔就是两条虚线的距离。

超平面可用线性方程:wTx+bw^{T}x+b 来表示,如图中红色的线,w即超平面的法向量,空间中任意一点x到超平面的距离为r=∣∣wTx+b∣∣∥w∥r=\frac{\left | w^{T}x+b \right |}{\left \| w \right \|} ,两个异类支持向量到超平面的距离之和为:r=2∥w∥r=\frac{2}{\left \| w \right \|}
那么我们的目标方程是什么呢?我们的目标就是最大化间隔r=2∥w∥r=\frac{2}{\left \| w \right \|} ,并且还要分类正确,假设正样本标签为yi=+1y_{i}=+1 ,负样本标签为yi=−1y_{i}=-1 ,那么我们的目标方程如下:
等价于:

这个公式就称之为 支持向量机的基本型

6.2 对偶问题

关键词:对偶问题;KKT条件;SMO算法

SVM的基本型是一个凸二次规划(convex quadratic programming)问题,可直接求解,但是可以使用拉格朗日乘子法可得到其“对偶问题”(dual problem),对偶问题更方便于求解,其形式如下:

怎么使用拉格朗日乘子法将原问题转换到其对偶问题的呢? 首先,对原问题的约束(也就是对每个训练样本所产生的约束)添加拉格朗日乘子 αi⩾0\alpha _{i}\geqslant 0,则原问题的拉格朗日函数可写为:
L(w,b,α)=12∥w∥2+∑mi=1αi(1−yi(wTx+b))L(w,b,\alpha )=\frac{1}{2}\left \|w \right \|^{2}+\sum_{i=1}^{m}\alpha_{i}(1-y_{i}(w^{T}x+b))
再对w和b分别求偏导,再置0可得: ∂L∂w=w−∑mi=1αiyixi=0⇒w=∑mi=1αiyixi \frac{\partial L}{\partial w}=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}=0 \Rightarrow w =\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}
∂L∂b=−∑mi=1αiyi=0⇒∑mi=1αiyi=0 \frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i} =0 \Rightarrow \sum_{i=1}^{m}\alpha_{i}y_{i} =0
,将这两个式子带入L(w,b,α)=12∥w∥2+∑mi=1αi(1−yi(wTx+b))L(w,b,\alpha )=\frac{1}{2}\left \|w \right \|^{2}+\sum_{i=1}^{m}\alpha_{i}(1-y_{i}(w^{T}x+b)), 即可得到:

关键词:KKT条件。
KKT(Karush-Kuhn-Tucker)条件是一种方法,什么方法呢?就是处理含有不等式约束的优化问题的方法。对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。
对于含有不等式约束的优化问题, 把所有的不等式约束、等式约束和目标函数全部写为一个式子L(a, b, x)= f(x) + a*g(x)+b*h(x)。其中,h(x)为等式约束,g(x)为不等数约束,KKT条件是说最优值必须满足以下条件:
1. L(a, b, x)对x求导为零;
2. h(x) =0;
3. a*g(x) = 0;
求取这三个等式之后就能得到候选最优值。其中第三个式子非常有趣,因为g(x)<=0,如果要满足这个等式,必须a=0或者g(x)=0. 这是SVM的很多重要性质的来源,如支持向量的概念。
(根据自己思路总结一下,仅做参考。求解SVM基本型不太方便,于是乎求解其对偶问题,对偶问题是一个不等式约束问题,求不等式约束问题采用KKT条件,KKT条件中有一个条件很有意思,就是 a*g(x)=0,要么拉格朗日乘子为0,要么g(x)=0,g(x)=0,表示样本是支持向量,也就是只有支持向量才使得g(x)=0,而a=0的样本就不需要了)
解这个对偶问题的一个著名方法是SMO算法
推荐博客,理解拉格朗日乘子法和KKT条件(http://blog.csdn.net/xianlingmao/article/details/7919597)

【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件相关推荐

  1. 西瓜书《支持向量机SVM》 原始形式推导+拉格朗日乘数法的SVM形式+SVM对偶形式推导+SMO算法推导

  2. 机器学习中的算法-支持向量机(SVM)基础

    机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...

  3. 机器学习西瓜书(周志华)第七章 贝叶斯分类器

    第七章 贝叶斯分类器 1. 贝叶斯决策论 1.1 先验分布 1.2 后验分布 1.3 似然估计 1.4 四大概率在贝叶斯分类中指代含义 1. 朴素贝叶斯 7. 课后练习参考答案 1. 贝叶斯决策论 贝 ...

  4. 机器学习西瓜书-1-2章

    学习目标: 概览机器学习西瓜书 1.2章 学习内容: 第一章 绪论 1.1 基本术语 1.2 假设空间 1.3 归纳偏好 1.4 发展历程 第二章 模型评估与选择 2.1 经验误差与过拟合 2.2 评 ...

  5. python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍

    python机器学习库sklearn之支持向量机svm介绍tcB太阳2平台注册|网站分类目录 python数据挖掘系列教程tcB太阳2平台注册|网站分类目录 这里只讲述sklearn中如何使用svm算 ...

  6. 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归

    本文为周志华机器学习西瓜书第三章课后习题3.3答案,编程实现对率回归,数据集为书本第89页的数据 使用tensorflow实现过程 # coding=utf-8 import tensorflow a ...

  7. 小白学机器学习西瓜书-第三章对数几率回归

    小白学机器学习西瓜书-第三章对数几率回归 3.3 对数几率回归 3.3.1 对数几率函数 3.3.1 估计参数 上一部分我们介绍了线性回归,包括简单的二元回归和多元回归,这两个主要解决的是拟合预测的问 ...

  8. 机器学习西瓜书南瓜书 神经网络

    机器学习西瓜书&南瓜书 神经网络 1. 神经元模型 神经网络:由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实事件物体所做出的交互反应. 神经网络最基本的成分 ...

  9. 机器学习-西瓜书、南瓜书第六章

    支持向量机 支持向量机(Support Vector Machine),简称SVM,是一种经典的二分类模型,属于监督学习算法. 一.间隔与支持向量 支持向量机的目标是确定一个对样本的分类结果最鲁棒的线 ...

  10. 机器学习西瓜书笔记:软间隔和支持向量回归SVR

    1.首先由SVM问题(最大间隔超平面模型):所有样本都可以正确分类的最优化问题,引入软间隔SVM(允许分类错误)的最优化问题,即需要添加损失函数(样本不满足约束的程度,或者说分类错误的程度),然后最优 ...

最新文章

  1. 2pc oracle dba_2pc_pending,dba_2pc_pending视图中的信息不清除会对以后有影响吗?如何根本解决问题?...
  2. nodejs安装到d盘怎么使用npm_NodeJS、NPM安装配置步骤
  3. linux设置登录次多过多锁定时间
  4. pkpm板按弹性计算还是塑性_PKPM中的S\R验算显红原因分析
  5. linux 安装 maven 、解决:bash: mvn: command not found
  6. 学生信息管理信息系统--添加用户
  7. storm的数据源编程单元Spout学习整理
  8. 人脸识别腾讯安排上了!孩子不能再任意冒用家长身份信息
  9. python爬虫框架教程_python爬虫框架有哪些
  10. mysql操作 begin 命令_MySQL基础操作
  11. kdj线指标详解与案例探究
  12. 【fiddler手机抓包不能上网问题解决】
  13. netty内存-PoolSubpage分析
  14. selenium 操作 IE11--无法开启新窗口
  15. 安装SqlServer 2008 R2时出现程序兼容性问题
  16. Android第三方库收藏汇总
  17. python读取bin文件,转成16进制通信协议
  18. 程序设计与算法三~C++面向对象程序设计~北大郭炜MOOC学习笔记~第三章:类和对象进阶(新标准C++程序设计)
  19. BZOJ4455 / UOJ185 小星星 —— 树形dp + 容斥
  20. 护卫神mysql域名连接_护卫神·主机大师WEB管理端绑定自己的域名_护卫神

热门文章

  1. 【Android】eclipse 时常报错java.lang.object cannot be resolved-解决
  2. MS-SQL中创建索引
  3. 遍历XML文挡树的两种算法
  4. WebMaster如何处理网站内容重复?
  5. P2639 [USACO09OCT]Bessie的体重问题 【背包问题】
  6. 计划排布方式--甘特图
  7. 操作系统--进程管理1--单个CPU情况
  8. 从 RequireJs 源码剖析脚本加载原理
  9. 2014025675 《嵌入式系统程序设计》第七周学习总结
  10. Postman怎么用?