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

摘要:
引入广义拉格朗日函数:不要害怕这个公式,不要被拉格朗夫的名字所愚弄。让我们慢慢分析吧!

引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见!



1.原始问题

假设简易解说拉格朗日对偶(Lagrange duality)第1张是定义在简易解说拉格朗日对偶(Lagrange duality)第2张上的连续可微函数(为什么要求连续可微呢,后面再说,这里不用多想),考虑约束最优化问题:

简易解说拉格朗日对偶(Lagrange duality)第3张

简易解说拉格朗日对偶(Lagrange duality)第4张

称为约束最优化问题的原始问题。

现在如果不考虑约束条件,原始问题就是:

简易解说拉格朗日对偶(Lagrange duality)第3张

因为假设其连续可微,利用高中的知识,对简易解说拉格朗日对偶(Lagrange duality)第6张求导数,然后令导数为0,就可解出最优解,很easy. 那么,问题来了(呵呵。。。),偏偏有约束条件,好烦啊,要是能想办法把约束条件去掉就好了,bingo! 拉格朗日函数就是干这个的。


引进广义拉格朗日函数(generalized Lagrange function):

简易解说拉格朗日对偶(Lagrange duality)第7张

不要怕这个式子,也不要被拉格朗日这个高大上的名字给唬住了,让我们慢慢剖析!这里简易解说拉格朗日对偶(Lagrange duality)第8张简易解说拉格朗日对偶(Lagrange duality)第9张是拉格朗日乘子(名字高大上,其实就是上面函数中的参数而已),特别要求简易解说拉格朗日对偶(Lagrange duality)第10张.


现在,如果把简易解说拉格朗日对偶(Lagrange duality)第11张看作是关于简易解说拉格朗日对偶(Lagrange duality)第9张的函数,要求其最大值,即

简易解说拉格朗日对偶(Lagrange duality)第13张

再次注意简易解说拉格朗日对偶(Lagrange duality)第11张是一个关于简易解说拉格朗日对偶(Lagrange duality)第9张的函数,经过我们优化(不要管什么方法),就是确定简易解说拉格朗日对偶(Lagrange duality)第9张的值使得简易解说拉格朗日对偶(Lagrange duality)第11张取得最大值(此过程中把简易解说拉格朗日对偶(Lagrange duality)第18张看做常量),确定了简易解说拉格朗日对偶(Lagrange duality)第9张的值,就可以得到简易解说拉格朗日对偶(Lagrange duality)第11张的最大值,因为简易解说拉格朗日对偶(Lagrange duality)第9张已经确定,显然最大值简易解说拉格朗日对偶(Lagrange duality)第13张就是只和简易解说拉格朗日对偶(Lagrange duality)第18张有关的函数,定义这个函数为:

简易解说拉格朗日对偶(Lagrange duality)第24张

其中简易解说拉格朗日对偶(Lagrange duality)第7张


下面通过简易解说拉格朗日对偶(Lagrange duality)第18张是否满足约束条件两方面来分析这个函数:

  • 考虑某个简易解说拉格朗日对偶(Lagrange duality)第18张违反了原始的约束,即简易解说拉格朗日对偶(Lagrange duality)第28张或者简易解说拉格朗日对偶(Lagrange duality)第29张,那么:

简易解说拉格朗日对偶(Lagrange duality)第30张

注意中间的最大化式子就是确定简易解说拉格朗日对偶(Lagrange duality)第9张的之后的结果,若简易解说拉格朗日对偶(Lagrange duality)第28张,则令简易解说拉格朗日对偶(Lagrange duality)第33张,如果简易解说拉格朗日对偶(Lagrange duality)第29张,很容易取值简易解说拉格朗日对偶(Lagrange duality)第35张使得简易解说拉格朗日对偶(Lagrange duality)第36张

  • 考虑简易解说拉格朗日对偶(Lagrange duality)第18张满足原始的约束,则:简易解说拉格朗日对偶(Lagrange duality)第38张,注意中间的最大化是确定简易解说拉格朗日对偶(Lagrange duality)第9张的过程,简易解说拉格朗日对偶(Lagrange duality)第6张就是个常量,常量的最大值显然是本身.

通过上面两条分析可以得出:

简易解说拉格朗日对偶(Lagrange duality)第41张

那么在满足约束条件下:

简易解说拉格朗日对偶(Lagrange duality)第42张

简易解说拉格朗日对偶(Lagrange duality)第43张与原始优化问题等价,所以常用简易解说拉格朗日对偶(Lagrange duality)第43张代表原始问题,下标 P 表示原始问题,定义原始问题的最优值:

简易解说拉格朗日对偶(Lagrange duality)第45张


原始问题讨论就到这里,做一个总结:通过拉格朗日这位大神的办法重新定义一个无约束问题(大家都喜欢无拘无束),这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化!



2.对偶问题

定义关于简易解说拉格朗日对偶(Lagrange duality)第46张的函数:

简易解说拉格朗日对偶(Lagrange duality)第47张

注意等式右边是关于简易解说拉格朗日对偶(Lagrange duality)第18张的函数的最小化,简易解说拉格朗日对偶(Lagrange duality)第18张确定以后,最小值就只与简易解说拉格朗日对偶(Lagrange duality)第46张有关,所以是一个关于简易解说拉格朗日对偶(Lagrange duality)第46张的函数.


考虑极大化简易解说拉格朗日对偶(Lagrange duality)第47张,即

简易解说拉格朗日对偶(Lagrange duality)第53张

这就是原始问题的对偶问题,再把原始问题写出来:

简易解说拉格朗日对偶(Lagrange duality)第54张

形式上可以看出很对称,只不过原始问题是先固定简易解说拉格朗日对偶(Lagrange duality)第11张中的简易解说拉格朗日对偶(Lagrange duality)第18张,优化出参数简易解说拉格朗日对偶(Lagrange duality)第46张,再优化最优简易解说拉格朗日对偶(Lagrange duality)第18张,而对偶问题是先固定简易解说拉格朗日对偶(Lagrange duality)第46张,优化出最优简易解说拉格朗日对偶(Lagrange duality)第18张,然后再确定参数简易解说拉格朗日对偶(Lagrange duality)第46张.

定义对偶问题的最优值:

简易解说拉格朗日对偶(Lagrange duality)第62张



3. 原始问题与对偶问题的关系

定理:若原始问题与对偶问题都有最优值,则

简易解说拉格朗日对偶(Lagrange duality)第63张

证明:对任意的简易解说拉格朗日对偶(Lagrange duality)第46张简易解说拉格朗日对偶(Lagrange duality)第18张,有

简易解说拉格朗日对偶(Lagrange duality)第66张

简易解说拉格朗日对偶(Lagrange duality)第67张

由于原始问题与对偶问题都有最优值,所以

简易解说拉格朗日对偶(Lagrange duality)第68张

简易解说拉格朗日对偶(Lagrange duality)第63张

也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等,于是可以得出下面的推论:

推论:设简易解说拉格朗日对偶(Lagrange duality)第70张分别是原始问题和对偶问题的可行解,如果简易解说拉格朗日对偶(Lagrange duality)第71张,那么简易解说拉格朗日对偶(Lagrange duality)第70张分别是原始问题和对偶问题的最优解。

所以,当原始问题和对偶问题的最优值相等:简易解说拉格朗日对偶(Lagrange duality)第71张时,可以用求解对偶问题来求解原始问题(当然是对偶问题求解比直接求解原始问题简单的情况下),但是到底满足什么样的条件才能使的简易解说拉格朗日对偶(Lagrange duality)第71张呢,这就是下面要阐述的KKT 条件



4. KKT 条件

定理:对于原始问题和对偶问题,假设函数简易解说拉格朗日对偶(Lagrange duality)第6张简易解说拉格朗日对偶(Lagrange duality)第76张是凸函数,简易解说拉格朗日对偶(Lagrange duality)第77张是仿射函数(即由一阶多项式构成的函数,f(x)=Ax + b, A是矩阵,x,b是向量);并且假设不等式约束简易解说拉格朗日对偶(Lagrange duality)第76张是严格可行的,即存在简易解说拉格朗日对偶(Lagrange duality)第18张,对所有简易解说拉格朗日对偶(Lagrange duality)第80张简易解说拉格朗日对偶(Lagrange duality)第81张,则存在简易解说拉格朗日对偶(Lagrange duality)第70张,使得简易解说拉格朗日对偶(Lagrange duality)第83张是原始问题的最优解,简易解说拉格朗日对偶(Lagrange duality)第84张是对偶问题的最优解,并且

简易解说拉格朗日对偶(Lagrange duality)第85张

定理:对于原始问题和对偶问题,假设函数简易解说拉格朗日对偶(Lagrange duality)第6张简易解说拉格朗日对偶(Lagrange duality)第76张是凸函数,简易解说拉格朗日对偶(Lagrange duality)第77张是仿射函数(即由一阶多项式构成的函数,f(x)=Ax + b, A是矩阵,x,b是向量);并且假设不等式约束简易解说拉格朗日对偶(Lagrange duality)第76张是严格可行的,即存在简易解说拉格朗日对偶(Lagrange duality)第18张,对所有简易解说拉格朗日对偶(Lagrange duality)第80张简易解说拉格朗日对偶(Lagrange duality)第81张,则简易解说拉格朗日对偶(Lagrange duality)第70张分别是原始问题和对偶问题的最优解的充分必要条件是简易解说拉格朗日对偶(Lagrange duality)第70张满足下面的Karush-Kuhn-Tucker(KKT)条件:

简易解说拉格朗日对偶(Lagrange duality)第95张

关于KKT 条件的理解:前面三个条件是由解析函数的知识,对于各个变量的偏导数为0(这就解释了一开始为什么假设三个函数连续可微,如果不连续可微的话,这里的偏导数存不存在就不能保证),后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束。

特别注意当简易解说拉格朗日对偶(Lagrange duality)第96张时,由KKT对偶互补条件可知:简易解说拉格朗日对偶(Lagrange duality)第97张,这个知识点会在 SVM 的推导中用到.



5. 总结

一句话,某些条件下,把原始的约束问题通过拉格朗日函数转化为无约束问题,如果原始问题求解棘手,在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易。

本文转载自http://www.cnblogs.com/90zeng/ 作者:博客园-90Zeng

可参考博文:http://blog.csdn.net/robin_xu_shuai/article/details/52803645

免责声明:文章转载自《简易解说拉格朗日对偶(Lagrange duality)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Windows8最新激活工具!!!及win8激活时提示“文件名、目录名或卷标语法不正确”python子进程模块subprocess详解与应用实例 之三下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

WebStorm好用的插件推荐

随着时间的推移,编写JavaScript代码很多有用的插件都集成了WebStorm中,在WebStorm中即使不装任何插件,都能很舒服的进行开发网页应用、Node应用。插件对于WebStorm并不是特别的重要,但是某些插件实在是比较好用,所以本篇文章就整理一下比较好用的插件。使用该插件,可以直接在WebStorm中内嵌一个翻译界面。...

索引节点(inode)爆满问题处理

后来,我用df-I检查/data分区的索引节点,发现它已满,这导致系统无法创建新的目录和文件。inode是用于存储这些数据的信息,包括文件大小、所有者、用户组、读写权限等。inode索引每个文件的信息,因此它具有inode的值。根据指令,操作系统可以通过inode值最快找到对应的文件。故障排除的原因是/data/cache目录中有大量小字节缓存文件,这些文件...

webpack打包(1)

Webpack可以处理js/json资源。生成环境比开发环境具有更多的功能来压缩代码。它可以将ES6模块化为浏览器在webpack.config中识别的模块操作命令npmiwebpackwebpack-cli-g npminit npmiwebpack-cli-D配置并运行webpack以将webpack.config.js文件打包...

nginx配置跨域(CORS)、防盗链(valid_referers)、缓存(expires)、压缩(gzip)

它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服AJAX只能同源使用的限制。服务器根据这个值,在许可范围内,则在头信息包含Access-Control-Allow-Origin。...

adb

ADB(AndroidDebugBridge)ANR(ApplicationNoResponding)ADB实际上是Android调试桥AndroidDebugBridge的缩写。adb是C/S体系结构的命令行工具。这里我们介绍一些常用的命令:adbdevices,获取设备列表和设备状态[xuxu:~]$adbdevicesList-devicesattac...

制作多合一安装U盘(Windows + Linux + macOS)精解

在此,我给大家讲解一下,如何制作多系统安装U盘。首先,本教程用到的工具如下:1.WinSetupFromUSB1.9下载链接:https://share.weiyun.com/5gtbB3y密码:vector2.分区助手专业版下载链接:http://www2.aomeisoftware.com/download/pacn/PAClean.zip3.各类Win...