支持向量机(一)----总述(点到平面的距离,Lagrange函数,Lagrange对偶)
概述:在对支持向量机的学习和使用过程中,遇到了许许多多的问题,通过查阅各种资料,也是逐一攻克了遇到的问题。感悟颇多,写此博文的目的是想以一个学习者的身份从一个刚接触支持向量机的角度去记录模型推到过程中的种种困惑以及理解过程,以帮助更多人的更省时的了解和学习支持向量机;
本文主要记录和解决的问题:
说明:每个问题所标的星级表示此问题的理解对后边推导过程的影响程度,也就是说理解不到位会使得自己越看越糊涂(仅供参考)
1.我自己学习和推到支持向量机的过程路线
2.三维空间中点到直线的距离的计算,以及分离超平面的方程(5颗星)
3.Lagrange乘子法的原理(5颗星)
4.对偶算法原理(5颗星)
下边就上述的每一个问题进行整理
1. 下图是我对支持向量机的整个知识体系所涉及到的相应的知识的一个整理,图中同时也描述了各支持向量机之间的关系。
2. 三维空间中点到直线的距离的计算
2.1 点到平面的距离
2.2 分离超平面方程
3. Lagrange乘子法原理
Lagrange乘子法的作用主要是用来解决条件极值问题的一种方法;
条件极值的概念:对自变量除定义域限制外,还有其他条件限制。举例:例如求f(x,y)在条件g(x,y)= 0下的条件极值,称f(x,y)为目标函数,方程g(x,y)=0为约束条件,变量x,y为决策变量;
如下图所示,假设g(x,y)=0的图像如下图所示,f(x,y)的等高线沿着x方向增大,有图示做直观分析,由A点到B点f(x,y)的值逐渐减小,由B点到C点f(x,y)的值逐渐增大。很显然在B点时f(x,y)取得了最小值,分析一下B点处g(x,y)=0所表示的曲线和f(x,y)等高线的关系。在B点处g(x,y)=0所表示的曲线和f(x,y)在B处的等高线必然是相切的。为了理解这样相切的关系,我们可以假设一只蚂蚁正在验证g(x,y)=0所表示的曲线的A处爬向C处,假如在B点f(x,y)的等高线穿过了B点,则到B点时蚂蚁还未爬到白色曲线的最底端,也就说明继续往底部爬最能找到别的等高线与曲线最低点相切。既然相切,那说明在B出等高线和g(x,y)所表示的曲线有公共切线,所以如下图f(x,y)在B点(假设B点的左边为(x0,y0))的法向量nf 和g(x,y)=0在B处的法向量共线(方向可能相同也可能不同),而曲线在B点处的梯度向量即为法向量,由此就可知他们的梯度向量共线。由此便可得到如下方程:
透过求解上述方程组,我们就可以求解出条件极值问题的极值点,下边我们构造一个与上述问题等价的函数
其在取得极值的条件为
,和上述(1)(2)(3)完全等价,经过上述的构造和处理,就将一个条件极值问题转化成了一般极值问题
4. 对偶算法原理
4.0 概述
为什么要引入对偶算法?
可以这样理解,我们要求解一个问题,比如说要求解一个函数的极值,假如这个问题自身简单并且容易求解,我们就直接求解便可,可是现在我们遇到了一个无法直接求解或者直接求解会非常麻烦,我们就有采用变换形式,构造等一系列的手段使得我们要求解的问题变得简单并且易于求解。而对偶算法就是我们面对一个比较复杂并且难以求解的问题时的一种解决该问题的方法或者说手段,具体思路概述如下图:现我们要求解4.1中的条件极值问题,我们构造出4.2中的Lagrange函数将条件极值问题转换成为非条件极值问题,观察形式以后我们还是觉得求解复杂,这边有了4.3中的对偶函数,我们可以通过求解对偶函数来得到原问题的解。这便是我们求解问题的一种思路。这样我们总会将一个复杂问题逐渐简化直到能够求解。具体介绍见入下各段落。
4.1 初始问题
标准形式的优化问题,数学表达如下:
上述问题中的中自变量
,而其定义域D为满足m个不等式约束和p个等式约束的x构成的集合的交集,并且假设此优化问题的最优值为
4.2 将初始问题转化成为Lagrange函数求极值
上式就是求解在满足条件和条件
时的
的极小值,注意上式与问题3的不同点,约束条件既有等式约束,也有不等式约束,并且数量并不唯一。在问题3的描述中我们已经知道我们可以将条件极值问题等价的转换成为一个Lagrange函数求极值的问题。那么对于上述优化问题的求解我们同样可以构建出如下的拉格朗日函数求极值的问题
注意这里的不等式约束有m个,等式约束有p个,为第i个不等式约束对应的Lagrange乘子
为第i个等式约束对应的Lagrange乘子;
4.3 引入Lagrange函数的对偶函数
现在我们的目标就是求解函数的极值点
,近而就可以求出上述问题的极小值
(前提为上述问题存在极小值),如果我们徒手计算的话,显然通过求导我们要列出一个含有居多方程的方程组,而我们也知道利用梯度下降法让计算机帮助我们求导,可是梯度下降法也是有局限性的,对于没有条件限制的极值问题,它不失为一种好的办法。
有一种解决办法它的思想是这样的:假如我们能够找到一个函数,这个函数如果满足其极大值是我们要求解的目标函数的极小值(并且这个函数的极大值求解起来比我们求解原问题更方便快捷)我们的问题就得解了,这便引入了Lagrange函数的对偶函数,即为Lagrange函数关于x取得的最小值,即对有:
对于上述4.2中的Lagrange函数如果其关于x无极小值(即无下确界),则上述对偶函数的取值就为。这里我们假设我们的Lagrange函数关于x存在极小值点(即下确界);回顾一下我们的初衷,我们是为了方便求解Lagrange函数的极小值而引入Lagrange对偶函数并通过求解Larange对偶函数的极大值来得到Lagrange函数的极小值的。那我们就必须对Lagrange对偶函数即
做限制使得
的极大值正好是Lagrange函数的极小值;要使得
恒成立,就需
,为什么呢?我们由4.1中优化问题定义式知
,
,故若
,
的后两项之和必然小于等于0,所以此时
是恒成立的。而等号成立的条件为
后两项之和正好为0,即
;
对的补充说明:这里我们可能要提问,我们并不需要每一个lambda都大于零啊,我们只需要保证
整体小于0就可,也就是说在众多的lambda中我们可以允许有一部分lambda是大于0,显然这样想并没有错,而在这里我们要求每一个
,只是做了更为严格的要求,并不会对我们原问题的结果产生影响。
4.4 对偶函数的解与初始问题的解完全等价的条件(即KKT条件)
再次回顾我们求解4.1中初始问题的思路:如下图所示我们是在通过不断的转化将一个原本求解复杂的问题逐步转换成为一个相对容易求解的问题,在这个过程中我们考虑满足什么样的条件才能使得最终Lagrange对偶函数的极大值即为我们原问题的极小值
设对偶函数取得极大值的点为(λ*,ν*),设原问题(4.1)取得极小值的点为(x*,f0(x*))
上述式(1)等号成立的条件为:4.2中的Lagrange函数对关于x求偏导方程为0的解为x*,即:
上述式(2)等号成立的条件为:
我们在4.3中已经得出结论,故式4成立等价于下述式5:
综上所述,要使得原问题的极小值(最优值)恰好是对偶函数的极大值则需满足下述条件即KKT条件:
支持向量机(一)----总述(点到平面的距离,Lagrange函数,Lagrange对偶)的更多相关文章
- hdu 1174:爆头(计算几何,三维叉积求点到线的距离)
爆头 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submissi ...
- Java的多线程机制系列:(一)总述及基础概念
前言 这一系列多线程的文章,一方面是个人对Java现有的多线程机制的学习和记录,另一方面是希望能给不熟悉Java多线程机制.或有一定基础但理解还不够深的读者一个比较全面的介绍,旨在使读者对Java的多 ...
- POJ1584 判断多边形是否为凸多边形,并判断点到直线的距离
求点到直线的距离: double dis(point p1,point p2){ if(fabs(p1.x-p2.x)<exp)//相等的 { return fabs(p2.x-pe ...
- ArcGIS 点到直线的距离
/****点到直线的距离*** * 过点(x1,y1)和点(x2,y2)的直线方程为:KX -Y + (x2y1 - x1y2)/(x2-x1) = 0 * 设直线斜率为K = (y2-y1)/(x2 ...
- csuoj 1503: 点到圆弧的距离
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1503 1503: 点到圆弧的距离 时间限制: 1 Sec 内存限制: 128 MB Speci ...
- 三国杀3v3心法——总述篇
昔日,独孤求败前辈精研剑法,将其中奥妙化为独孤九剑,破尽天下武功.其中开篇总诀式提纲挈领,从宏观的层面阐述剑道,是领悟后面八式的基石,而之后各式则深入微观,可各破一类具体的武功.笔者亦曾苦心研究三国杀 ...
- Web应用程序系统的多用户权限控制设计及实现-总述【1】
中大型的Web系统开发均需要权限的配置,基于多角色,多用户的操作权限管理是一个系统开发的基础.搭建好一套权限,用户,角色,页面一体的开发架构,可以用于后期业务的开发,同时也可用于不同业务的系统开发. ...
- Linux makefile教程之总述二[转]
Makefile 总述——————— 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...
- Solr4.8.0源码分析(5)之查询流程分析总述
Solr4.8.0源码分析(5)之查询流程分析总述 前面已经写到,solr查询是通过http发送命令,solr servlet接受并进行处理.所以solr的查询流程从SolrDispatchsFilt ...
随机推荐
- 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
ubuntu更新软件时 apt-get upgrade 遇到 E: 无法获得锁 /: 资源暂时不可用) E: Unable to acquire the dpkg frontend lock (/va ...
- Go语言入门篇-复合数据类型
复合数据类型 主要讨论四种类型——数组.slice.map和结构体 数组和结构体聚合类型 --数组和结构体都是有固定内存大小的数据结构 --数组:由同构的元素组成——每个数组元素都是完全相同的类型 ...
- 第六周课程总结&实验报告
一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆 ...
- IDEA 快捷键 (长期更新)
自动清除无效 import 和 清除无效 import ctrl+alt+o
- ThinkPHP关联模型详解
在ThinkPHP中,关联模型更类似一种mysql中的外键约束,但是外键约束更加安全,缺点却是在写sql语句的时候不方便,ThinkPHP很好得解决了这个问题.但是很多人不动关联模型的意思.现在就写个 ...
- Linux 環境下安裝swoole
一.先安装依赖 yum -y install gcc gcc-c++ autoconf automake yum -y install zlib zlib-devel openssl openssl- ...
- 1、Java语言概述与开发环境——JDK JRE JVM理解
一.理解概念: 1.JDK(Java Development Kit Java开发工具包) JDK是提供给Java开发人员使用的,其中包含Java的开发工具,也包括JRE,所以安装了JDK,就不用单独 ...
- HNUSTOJ 1444:树的最长路径
1444: 树的最长路径 时间限制: 1 Sec 内存限制: 128 MB 提交: 18 解决: 7 [提交][状态][讨论版] 题目描述 定义:无向树中结点的路径为该结点所能到达的最远距离:无向 ...
- P3588 [POI2015]PUS(拓扑排序+线段树)
P3588 [POI2015]PUS 对于每个$(l,r,k)$,将$k$个位置向剩下$r-l-k+1$个位置连边,边权为$1$,这样就保证$k$个位置比剩下的大 先给所有位置填$1e9$保证最优 然 ...
- C++泛型程序设计---算法和提升
算法和提升 算法:所谓算法就是一个求解问题的过程或公式,即,通过一个有穷的计算序列生成结果. 函数模板就是普通函数的泛化:它能对多种数据类型执行动作,并且能用以参数方式传递来的各种操作实现要执行的工作 ...