博客 | 机器学习算法系列(二):拉格朗日对偶性

2019 年 4 月 20 日 AI研习社


本文原载于微信公众号:磐创AI(ID:xunixs),AI研习社经授权转载。欢迎关注磐创AI微信公众号及AI研习社博客专栏。


作者 | Ray

编辑 | 安可

出品 | 磐创AI技术团队


在约束最优化问题中,常常会利用到拉格朗日对偶性求解。在常用的机器学习算法中,支持向量机和最大熵模型都使用到该方法求最优解。因为后面将要讲到这两个算法,所以先介绍这种方法作为知识的铺垫。

对于有约束的问题,拉格朗日对偶性是将原始问题转化为最优问题,通过求解对偶问题而得到原始问题的解。

一、原始问题

假设f(x),ci(x),hj(x)是定义在Rn上的连续可微函数,最优化原始问题为:

首先,引进广义拉格朗日函数:

其中,α和β是拉格朗日乘子,且α_i≥0。

因为α_i≥0,c_i≤0,h_j等于0,所以L(x,α,β)的第二项小于等于0,第三项等于0,则可以推出:L(x,α,β)≤f(x)。

所以max L(x,α,β)=f(x)。定义:

则最优化原始问题等价于广义拉格朗日问题的极小极大问题:

定义原始问题的最优解为:

二、对偶问题

定义:

再考虑极大化上式,即:

这个广义拉格朗日的极大极小问题称为原始问题的对偶问题。

原始问题和对偶问题的关系:

如果原始问题和对偶问题都有最优解,则有:

证明:对任意的α,β和x,有

即:

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

即:

一句话总结就是对于同一个函数L,最小化后的最大值仍然小于或等于最大化后的最小值。


KKT条件

为了使得对偶问题的最优解也是原始问题的最优解,就必须满足KKT条件,也就是说KKT条件是其充分必要条件。接下来我们将讲解为什么要满足以下的KKT条件。

解释:

要使得对偶问题的最优解也是原始问题的最优解就要满足d_*=p_*,首先前三个条件对各变量求偏导得到他们的极值,这也是为什么要一开始要定义三个函数连续可导。

第四个条件是因为在前面已经提及L(x,α,β)的第二项小于等于0,要使得L等于f(x),就得让第二项等于0,因为α_i≥0,c_i小于等于0,所以要保证第二项等于0,只能是每个α_i*c_i等于0。

第五个条件和第七个条件是原始问题的约束条件,第六个问题是拉格朗日乘子法需要满足的定义。


为什么要通过求解对偶问题来得到原始问题的最优解?

使用对偶问题求解是因为求解对偶问题比求解原始问题更加简单方便。比如在SVM中通过求解对偶问题能够使得求解的算法复杂度降低,方便核函数的引入等好处。具体为什么将在SVM讲解的时候解释。


欢迎扫码关注磐创AI微信公众号

点击阅读原文,查看更多内容

登录查看更多
2

相关内容

专知会员服务
138+阅读 · 2020年5月19日
机器学习速查手册,135页pdf
专知会员服务
337+阅读 · 2020年3月15日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
谷歌机器学习速成课程中文版pdf
专知会员服务
143+阅读 · 2019年12月4日
一文读懂线性回归、岭回归和Lasso回归
CSDN
33+阅读 · 2019年10月13日
博客 | 机器学习中的数学基础(凸优化)
AI研习社
14+阅读 · 2018年12月16日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
SVM大解密(附代码和公式)
机器学习算法与Python学习
6+阅读 · 2018年5月22日
BAT机器学习面试1000题系列(第116~120题)
七月在线实验室
16+阅读 · 2017年10月24日
BAT机器学习面试1000题系列(第36~40题)
七月在线实验室
8+阅读 · 2017年10月3日
机器学习(19)之支持向量回归机
机器学习算法与Python学习
11+阅读 · 2017年10月3日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
Arxiv
5+阅读 · 2018年10月23日
Parsimonious Bayesian deep networks
Arxiv
5+阅读 · 2018年10月17日
Arxiv
8+阅读 · 2018年5月1日
VIP会员
相关资讯
一文读懂线性回归、岭回归和Lasso回归
CSDN
33+阅读 · 2019年10月13日
博客 | 机器学习中的数学基础(凸优化)
AI研习社
14+阅读 · 2018年12月16日
详解常见的损失函数
七月在线实验室
20+阅读 · 2018年7月12日
SVM大解密(附代码和公式)
机器学习算法与Python学习
6+阅读 · 2018年5月22日
BAT机器学习面试1000题系列(第116~120题)
七月在线实验室
16+阅读 · 2017年10月24日
BAT机器学习面试1000题系列(第36~40题)
七月在线实验室
8+阅读 · 2017年10月3日
机器学习(19)之支持向量回归机
机器学习算法与Python学习
11+阅读 · 2017年10月3日
干货 | 深度学习之损失函数与激活函数的选择
机器学习算法与Python学习
15+阅读 · 2017年9月18日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
Top
微信扫码咨询专知VIP会员