在学习SVM(Support Vector Machine) 支持向量机时,对于线性可分的分类样本求出的分类函数为:

其中,分类超平面可以表示为:

式中N代表特征空间的维数。

带约束凸优化问题的一般形式为:

其中,f(w)为需要求解的目标函数,g(x) 和 h(x) 为约束条件,这里满足f(w)和gi(w)为Rn上处处可微的凸函数,也为仿射函数(即型为Ax+b的形式,A、x属于Rn),因此,上述的第一个式子可以看作目标函数,为二次型,而第二个式子可以看作它的约束条件,即次求解过程可以转化为求解凸二次优化问题。

这里插播一条求解凸优化的好处,就是局部最优解与全局最优解是相等的,这时候如果要用梯度下降法(Gradient Descend)之类的算法就不用担心会陷入局部极值。

求解上述的二次凸优化问题需要引入拉格朗日乘子(Lagrangian Multiplier) 和 KKT 条件。

先说拉格朗日乘子,可以参见维基百科给出的解释http://en.wikipedia.org/wiki/Lagrange_multipliers。对于等式的约束问题:

即求解目标函数

其中λ≠0 。参照下图(来自wiki原图),红色为g(x,y)=c的等高线,蓝色虚线为f(x,y)的等高线,箭头指向梯度下降的方向即f(x,y)的减小方向,与切线的法线方向平行,试想需要找满足约束条件的f(x,y)的最小值,需要在蓝色曲线与红色曲线相交或相切的点上寻找,如果是交点,则必然存在一点或多点比使f(x,y)满足约束条件更小的点,也就是下图中如果找外围蓝色曲线与红色曲线的交点,则必然存在f(x,y)=d1上的点比该点更小,因此,需要找到的点就是蓝色曲线与红色曲线的切点。而在切点处,法线的方向是平行的,只需要参数来调整大小和方向,因此对x,y求导求出切点的法线,λ用来调整等式使其相等,对λ求偏导引入等式条件,即

再说 KKT 条件

KKT 条件为非线性规划求最优解问题提供了必要条件,wiki上也有说明 http://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions。

KKT 的一般性描述为

也可以转换为求解目标函数的极大值

这里引入拉格朗日乘子连接目标函数与约束条件得到拉格朗日函数

这篇文章只是个人的理解,有什么问题欢迎大家留言一起交流。

SVM系列之拉格朗日对偶的更多相关文章

  1. SVM小白教程(2):拉格朗日对偶

    在上一篇文章中,我们推导出了 SVM 的目标函数: \[ \underset{(\mathbf{w},b)}{\operatorname{min}} ||\mathbf{w}|| \\ \operat ...

  2. 拉格朗日对偶(Lagrange duality)

    拉格朗日对偶(Lagrange duality) 存在等式约束的极值问题求法,比如下面的最优化问题:              目标函数是f(w),下面是等式约束.通常解法是引入拉格朗日算子,这里使用 ...

  3. 解密SVM系列(二):SVM的理论基础(转载)

    解密SVM系列(二):SVM的理论基础     原文博主讲解地太好了  收藏下 解密SVM系列(三):SMO算法原理与实战求解 支持向量机通俗导论(理解SVM的三层境界) 上节我们探讨了关于拉格朗日乘 ...

  4. 简易解说拉格朗日对偶(Lagrange duality)(转载)

    引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...

  5. 简易解说拉格朗日对偶(Lagrange duality)

    引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...

  6. 简易解说拉格朗日对偶(Lagrange duality)(转载)

    转载自https://www.cnblogs.com/90zeng/p/Lagrange_duality.html,本人觉得讲的非常好! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微 ...

  7. 文本分类学习 (九)SVM入门之拉格朗日和KKT条件

    上一篇说到SVM需要求出一个最小的||w|| 以得到最大的几何间隔. 求一个最小的||w|| 我们通常使用 来代替||w||,我们去求解 ||w||2 的最小值.然后在这里我们还忽略了一个条件,那就是 ...

  8. SVM基本思想和对偶推导笔记-记录毕业论文1

    快毕业啦~~记得上一篇论文利用JointBoost+CRF做手绘草图的分割项目在3月份完结后,6月份去实习,9月份也没怎么认真找工作就立刻回来赶论文(由于分割项目与人合作难以写入毕业论文),从9月到1 ...

  9. 解密SVM系列(二):SVM的理论基础

    上节我们探讨了关于拉格朗日乘子和KKT条件.这为后面SVM求解奠定基础,本节希望通俗的细说一下原理部分. 一个简单的二分类问题例如以下图: 我们希望找到一个决策面使得两类分开.这个决策面一般表示就是W ...

随机推荐

  1. 关于编译Android源码

    NO.1(适用于全编) (1)source build/envsetup.sh (2)lunch (3)make -j(x) NO.2(适用于编模块) (1)source build/envsetup ...

  2. python3.5-day5_迭代器_生成器_装饰器_模块

    笔者QQ 360212316 迭代器&生成器 生成器: 一个函数调用返回一个迭代器,那这个函数叫做生成器,如果函数中包含yield语法,那么这个函数就会变成生成器 生成器的特点: 1.生成器必 ...

  3. Net分布式系统之一:系统整体框架介绍

    一.设计目的 从事.Net平台开发系统已有8年多了,一直思考搭建.Net分布式系统架构.基于window平台搭建的大型分布式系统不多,之前了解过myspace.stackoverflow等大型网站.搭 ...

  4. Flex 对象克隆

    package widget.EnvPlot{ public class copyObject extends Object    {        public function copyObjec ...

  5. 第8章 BOM

    8.1 window对象 window有双重的角色,既可以通过JavaScript访问浏览器窗口的接口,又是ECMAScript规定的Global对象. 全局作用域中声明的变量.函数都会变成windo ...

  6. 大毕设-matlab-AM调制解调

    博主大毕设关于数字下变频(DDC)的CUDA实现,预计工期比较长,所以留下一些文字记录. 主要分为两部分工作,Matlab仿真部分和CUDA实现. 由于很久没有仿真了,所以先用一个简单的AM调制仿真练 ...

  7. c语言中三个点的解释 : variadic

    3.6 Variadic Macros A macro can be declared to accept a variable number of arguments much as a funct ...

  8. IntelliJ设置鼠标悬浮提示和修改快捷键

    IntelliJ设置鼠标悬浮提示和修改快捷键 设置鼠标悬浮提示 修改快捷键 进入设置菜单 删除原来的快捷键(注:你可以选择保留原来的快捷键,同时使用两个快捷键) Good Luck

  9. modelsim搭建uvm环境及实例

    Modelsim SE-64 10.2c 自带编译好的uvm-1.1d 脚本new_run.do set UVM_DPI_HOME C:/modeltech64_10.2c/uvm-1.1d/win6 ...

  10. HTML页面弹出自定义对话框带遮蔽罩(使用JavaScript)

    转载:http://blog.sina.com.cn/s/blog_610f47c50100ohe4.html 原理其实很简单:首先绘制弹出的自定义对话框,将其使用display:none隐藏,因为设 ...