对于支持向量机,我们首先要关注的几个点就是间隔超平面支持向量,再深入的话就是对偶问题拉格朗日对偶问题,凸优化,和 KKT条件,我们先从基本的间隔,超平面,支持向量说起。

1.SVM基础模型

给定训练集D={(x1,y1),(x2,y2)...(xn,yn)},yi∈{-1,1},例如下面图中的点,蓝线左上方的6个点对应1类,右下方的6个点对应-1类,基于数据分类的思想,如果我们想把两类数据分开,显然蓝线不是唯一的选择,我们有无数条直线可以选择将两类数据点分开,这些划分数据的直线我们统称为划分超平面,但是这么多划分超平面,我们的目标是要寻找最优的划分超平面

直观上看,我们应该找两类样本间最“正”的划分超平面,就像图中蓝线所示,因为该超平面对训练样本的局部扰动“抗干扰性”最好,也就是说,这个划分超平面所产生的分类效果是最好的,对未见的例子的泛化能力也最强。

在样本空间中,超平面可以通过线性方程来描述:

其中w=(w1,w2,w3...,wd)为法向量,决定了超平面的方向,b为位移项(截距项),决定了超平面与原点之间的距离,显然,划分超平面可被法向量w和位移b决定,下面将该平面记为(w,b),则样本中任意x到超平面(w,b)的距离为:

假设超平面能将样本正确分类,即对于(xi,yi)∈ D,若yi=+1,则,

yi=-1,则.

这里我们令:

                                  (式1.1)

即距离超平面正向距离大于1判定为1类别,距离超平面负向距离大于1的判定为-1类别。如上图所示,标记红圈的四个点使等式成立,他们也被称为“支撑向量”(support vector),两个异类支持向量到超平面的距离之和:

称为“间隔”.

支持向量机的目标就是找到具有“最大间隔”的划分超平面,也就是要找满足(式1.1)中的w和b,使得距离γ最大,即:

s.t.   

为了最大化间隔,仅需最大化,等价于最小化,所以上式可改写为:

s.t.                           (式1.2)

这就是SVM最基础的模型。

2.拉格朗日乘子法与对偶问题

我们希望求解式(式1.2)得到最大间隔划分超平面对应的模型:

其中w,b是模型参数,这里我们使用拉格朗日乘子法得到其对偶问题,从而高效的求出结果,下面就看一下什么是拉格朗日乘子法和对偶问题。

1)lagrange乘子法

拉格朗日乘子法是一种寻找多元函数在一组约束下的极值的方法,通过引入拉格朗日乘子,可将有d个变量与k个约束条件的优化问题转换为具有d+k个变量的无约束优化问题。

考虑一个优化问题,假设x为d维,欲寻找x的某个取值,是目标函数f(x)最小且满足g(x)=0的约束,从几何角度看,该问题的目标是在由方程g(x)=0,确定的d-1维曲面上(因为g(x)=0的约束,在d-1个数据确定后,可以通过函数得到最后一个数据,所以是d-1维,类似于概率统计里的自由度)寻找使目标函数f(x)最小化的点,此时不难得出结论:

·对于约束曲面上的任意点x,该点的梯度正交于约束曲面

·对于最优点,目标函数在该点的梯度正交于约束曲面

由此可知,在最优点,梯度的方向必相同或相反,即存在λ≠0使得:

                        (式2.1)

λ称为拉格朗日乘子,定义拉格朗日函数:

                          (式2.2)

对(式2.2)函数求导即得到(式2.1),于是原约束问题可转化为对拉格朗日函数L(x,λ)的无约束问题。

2)KKT条件

拉格朗日乘子法的几何意义即在等式g(x)=0或在不等式约束g(x)≤0下最小化目标函数f(x),红色曲线表示g(x)=0构成的曲面,阴影部分的紫色即为g(x)<0的部分.

情况1 g(x)<0 :

g(x)<0时,对f(x)求极值相当于闭区间求极值,最值点即为极值点,令λ=0,直接对f求梯度即可得到极值。

情况2 g(x) = 0 :

g(x) = 0时,说明极值点在边界取到,即g(x)<0内的点值都大于边界,梯度的定义是向函数值增加最快的方向,所以f的梯度与g的梯度相反,从而存在常数λ>0,使得:

综合情况1和情况2,我们得到KKT条件:

通俗意义理解KKT条件的话就是目标函数在约束条件下取得极值的充要条件,也就是目标函数在约束条件下取得极值时对应的x,λ必须满足KKT条件,反之亦然。

3)多约束问题推广

将上述做法推广到m个等式约束和n个不等式约束,且可行域非空的优化问题。

s.t.                 

引入拉格朗日乘子λ=(λ1,λ2,...,λm).T , u=(u1,u2,...,un).T, 相应的拉格让日函数为:

由不等式约束引入KKT条件(j=1,2,...,n):

一个优化问题可以从两个角度考察,即主问题和对偶问题,对于优化问题而言,常通过将拉格朗日乘子L(x,λ,u)求导并令为0,来获得对偶函数的表达形式。下面就看一下支持向量机如何通过拉格朗日乘子法转化为对偶问题,从而求解最优超平面。

3.支持向量机的对偶问题解决

先看一下支持向量机的目标函数与约束函数:

s.t.   

对每条约束添加拉格朗日乘子αi≥0,则该问题的拉格朗日函数可写为:

其中α=(α1,α2,...,αm),令L(w,b,α)对w和b求偏导为0可得(此处涉及到矩阵求导):

将上式带入拉格让日函数中w和b消去:

从而得到对偶问题:

s.t    .

解出α后,通过

即可得到w,b的求解通过任一支持向量即可求出,因为在支持向量处,满足,现在我们已经求出w,xi,yi也已知,所以也可以顺利求出b,这样参数w,b全部求出,我们的最优超平面也就被w和b所限定。根据 上文多约束推广的KKT条件,推出支持向量机优化问题的KKT条件:

4.对偶问题与KKT条件推导

拉格朗日成乘数法主要解决约束优化问题,通过引入拉格朗日乘子,将n个变量,k个约束的问题转化为n+k个变量的无约束问题

基本形态:

z = f(x,y) 在满足 g(x,y)=0 的条件下,可转化为F(x,y,λ) = f(x,y) + g φ(x,y)

KKT:

KKT条件即在满足一定规则下,一个非线性规划问题能有最优解的必要和充分条。上面通过图像上的梯度直观了解了KKT条件,下面通过对偶问题的推导得到KKT的条件:

其中 

proof:

由已知条件可得

所以去掉一个小于等于0的项目可得(☆)

                                                                      

两边同时加min可得(☆☆)

接下来计算对偶问题,这里将L(x,u)展开可得

先计算后面一项

∴ 对min ug(x) 取max时最大只能取到0 此时 u=0 或 g(x)=0(☆☆☆)

∴ 对偶问题的后一项即为0 可以省略,又有:

这里因为f(x) 为关于x的函数,所以与u无关,所以可以省略掉max符号,可得:

结合(☆☆)处的公式可得:

即:

∴ 我们称max min L(x,u) 为 min max L(x,u)的对偶问题,这表明在一定条件下(KKT条件),原问题与对偶问题与min f(x)的解相同,且在最优解x*处,u=0 或者 g(x)=0,这里可以结合上文中图片解释,会有更好的理解。

将x*带入(☆)式:

又:

可得:

即:

∴ x*也是拉格朗日问题 L(x,u) 的极值点,这也说明引入拉格朗日乘子的可行性。

总结:

通俗来讲,对偶问题就是使求解更加高效且目标函数值不变,通过先消去w,b,得到关于α的函数,然后单独计算 α,通过得到的α反求w,b,最后获得超平面的参数,相比于先对α的不等式约束进行计算,对偶的方式使得计算更加便捷。另外KKT条件就是在约束下求得目标函数极值时αi满足的条件,只有满足了kkt条件,才算是满足了目标函数和约束函数,因此之后介绍的计算迭代算法也是基于KKT条件,通过不断修改不满足KKT条件的α,使其满足KKT条件,从而求出目标函数的最优值。下篇文章将主要推导一种计算w和b的高效算法-SMO算法,看看实际中如何通过对偶问题公式推出α,从而由α推出w和b.本文主要参考西瓜书,有问题欢迎大家交流~

SVM支持向量机-拉格朗日乘子与对偶问题(1)相关推荐

  1. SVM中拉格朗日乘子法、KKT条件、对偶问题详解

    SVM中拉格朗日乘子法.KKT条件.对偶问题详解 创作目的 1.SVM回顾 2.拉格朗日乘子法 3.KKT条件 4.对偶问题 强对偶性证明 总结 创作目的 我是机器学习初学者,目前正在上机器学习课,老 ...

  2. 砥志研思SVM(二) 拉格朗日乘子法与KKT条件

    [1]最优化问题中的对偶性理论 [2]拉格朗日乘子法(上) [3]拉格朗日乘子法(下)

  3. 【线性分类器】(四)万字长文解释拉格朗日乘子与支持向量机

    [线性分类器](一)线性判别 [线性判别器](二)"深度学习"的鼻祖--感知器 [线性分类器](三)线性分类器的松弛求解: LEMS 算法,H-K 算法 文章目录 拉格朗日乘子与支 ...

  4. 拉格朗日乘子法及浅谈Svm

    拉格朗日乘子法是干啥的 简单点来说给你一个z=ƒ(x,y),求这个函数的极值点(x0,y0),但是我有个约束条件,这个约束条件是φ(x,y)=0.就是说你找到的极值点必须同时满足φ(x0,y0)=0. ...

  5. 机器学习--支持向量机(二)拉格朗日乘子法详解

    上节我们从线性回归模型出发详细阐述了支持向量的来源,以及为什么需要寻找支持向量,如何找到这决策函数等问题,最后问题转化为下面的求最大值问题: 先说明一下分类就是如果:          则被分为    ...

  6. SVM支持向量机通俗导论(理解SVM的三层境界)

    神文 转自july:http://blog.csdn.net/v_july_v/article/details/7624837 支持向量机通俗导论(理解SVM的三层境界) 作者:July .致谢:pl ...

  7. 惊呼——SVM支持向量机三重境界!

    转载自:原文 前言 动笔写这个支持向量机(support vector machine)是费了不少劲和困难的,原因很简单,一者这个东西本身就并不好懂,要深入学习和研究下去需花费不少时间和精力,二者这个 ...

  8. 支持向量机(svm)学习(最优超平面、线性可分、线性不可分、松弛因子、拉格朗日乘子法、核函数、对偶

    文章目录 简介 原理 内容框架 详细学习 最优超平面 支持向量 线性可分 定义 最优化问题 拉格朗日乘子法 强对偶性 线性不可分(部分) 软间隔 线性不可分(完全) 核函数 核函数的作用 常见核函数 ...

  9. 解密SVM系列(一):关于拉格朗日乘子法和KKT条件

    转载 原地址https://blog.csdn.net/on2way/article/details/47729419 写在之前 支持向量机(SVM),一个神秘而众知的名字,在其出来就受到了莫大的追捧 ...

最新文章

  1. 喜闻乐见的const int *p、int* const p、const int* const p
  2. 两个无序单链表,排序后合并成一个有序链表
  3. mysql lock scope_scope_lock模式详解
  4. idea首次创建新模块的详细操作
  5. [React] 尚硅谷 -- 学习笔记(五)
  6. Android前后端交互细节--Json转化为对象的原理
  7. 从 4 个月到 7 天:Netflix 开源自家框架 Metaflow,性能像坐上了火箭
  8. AnnotationUtils
  9. OracleERP-采购管理
  10. wap2010计算机考点,2010年全国计算机二级Access上机考试考点总结
  11. linux网卡ens160显示不出来,修改Centos7的网卡名称ens160、eno192改为eth0、eth1
  12. YYC松鼠聚合直播系统添加图片上传视频提示网络错误的问题解决方案
  13. lisp 阿基米德螺旋_用CAD如何画阿基米德螺旋线
  14. excel表突然不会自动计算机,怎么实现EXCEL表格中自动记录当前时间而不是日期,并且不会更新变动...
  15. Watering Grass UUV 1038 贪心
  16. GG 数据初始化装载 说明 与 示例
  17. 【社区周会】2021-03-23 内容概要
  18. 腾讯云域名与个人树莓派设备的动态域名解析
  19. 谈谈对MVVM的理解?
  20. vertx编程需注意的点

热门文章

  1. DJ3-3 进程调度
  2. proxifier 出现错误代码10060处理
  3. TransactionDefinition
  4. 编译:一个 C 程序的艺术之旅
  5. 利用vlan交换机(网管交换机)打trunk实现单线复用
  6. 双色球中奖概率(彩市有风险,需谨慎投注!)
  7. 潜在狄利克雷分配(LDA)(latent Dirichlet allocation)
  8. 硬件安全: 动态信息流跟踪
  9. 研发管理系列课程--2022年深圳产品平台与CBB技术管理
  10. 实用解析dmp文件内容