在优化问题中,往往会有约束条件,即我们希望在约束条件下求得优化问题的最优解。对于等式约束的优化问题,我们可以直接应用拉格朗日乘子法去求取最优值;对于含有不等式约束的优化问题,则可以转化为在满足 KKT 约束条件下应用拉格朗日乘子法求解。
约束优化
无约束优化
我们首先来看一个无约束的优化问题:
其中,,是凸函数,这种问题求解很简单,只需要找到令 的 点即可.
等式约束
下面,我们给优化问题加上一个等式约束:
其中, 为 维向量. 为了直观地看这个问题,我们下面假设这是一个二维的等式约束优化问题,如下图所示:
图中虚线是 的等值线,而约束条件 是约束条件. 我们知道 的最优化问题需要在 的条件下求解,即图中虚线要与绿线相交或相切. 而显然我们可以看到,当虚线与绿线相切时,在约束条件 下, 取得最小值.
这时,我们看到,两函数的法向量平行的,即有:
拓展到 维有:
又有 ,联立即得此优化问题的最优解.
于是,我们可以令原函数:
即问题转化为了求函数 的最优解. 即:
求得 和 后,将 代入 中即得到可行解,这便是拉格朗日乘子法(Lagrangian Multiplier Method),其中 称为拉格朗日乘子.
不等式约束
那么,如果加入不等式约束:
同样的,我们把问题简化为二维:
显然,可行解有可能落在 里面或者是边界上,即如下两种情况:
可见:
- 当可行解 落在 的区域内,此时直接极小化 即可;
- 当可行解 落在 即边界上,此时等价于等式约束优化问题.
于是,我们可以得到:
即当 时,此时约束不起作用; 时,等价于等式约束.
另外,在等式约束中,我们并没有对乘子加以约束,但在不等式约束中,有:
从图中可以看到,若要最小化 ,约束域 的法向量应当与 的负梯度同向,即:
于是,与等式约束优化问题类似,不等式约束的优化问题,在满足一定条件下,便可以用拉格朗日乘子法解决,此条件即为KKT条件(Karush-Kuhn-Tucker conditions).
我们给出形式化的约束优化问题:
写出拉格朗日函数:
综合上面的分析,我们有以下的KKT条件:
满足 KKT 条件后极小化拉格朗日函数,即可得到在不等式约束条件下的可行解。
对偶问题
在优化理论中,对目标函数 的在约束条件下的最优化问题,可以转化为一个与之对应的对偶问题(dual problem),而原来的问题称为原始问题(primal problem),而对偶问题有如下几个良好的性质:
- 对偶问题的对偶是原始问题;
- 无论原始问题是否是凸的,对偶问题都是凸优化问题;
- 对偶问题可以给出原始问题一个下界;
- 当满足一定条件时,原始问题与对偶问题的解是完全等价的.
原始问题
我们给定不等式约束优化问题:
定义一个拉格朗日函数:
我们知道 ,且 即 ,所以有:
于是我们的优化问题转化为:
这便是我们的原始问题.
对偶问题
我们将原始问题的解记为 ,这里定义一个对偶函数:
然后我们定义对偶问题:
接着我们定义对偶问题的最优解为
易有:
我们把这个性质叫做弱对偶性(weak duality),对所有优化问题都成立,即使原始问题非凸. 之前我们提到过,无论原始问题是什么形式,对偶问题总是凸的,所以由弱对偶性,我们通过求解对偶问题可以得到原始问题的一个下界.
与弱对偶性相对的有一个强对偶性(strong duality),即
于是,满足具有强对偶性的问题,我们可以通过求解对偶问题得到原始问题的解. 但我们需要一些条件,使得强对偶性成立,比如Slater条件和KKT条件.
-
Slater条件:存在x,使得不等式约束 严格成立,即 .
如果原始问题是凸优化问题并且满足 Slater 条件的话,那么强对偶性成立。需要注意的是,这里只是指出了强对偶成立的一种情况,并不是唯一的情况。例如,对于某些非凸优化的问题,强对偶也成立.
(SVM 中的原始问题 是一个凸优化问题(二次规划也属于凸优化问题), Slater 条件在 SVM 中指的是存在一个超平面可将数据分隔开 ).
-
但为了保证 是最优解, 还需要满足KKT条件:
我们假设 与 分别是原始问题(并不一定是凸的)和对偶问题的最优解,且满足强对偶性,则相应的极值的关系满足:
看到第一个不等式,我们知道 , 可以得到:
又有: , 所以
由因为 是 的极小值点,所以
结合上述和一开始的约束条件,有:
即KKT条件.
参考资料:
[1] ooon. 博客园:约束优化方法之拉格朗日乘子法与KKT条件[EB/OL]. http://www.cnblogs.com/ooon/p/5721119.html , 2016-07-30/2018-7-30.
[2] ooon. 博客园:拉格朗日对偶[EB/OL]. http://www.cnblogs.com/ooon/p/5723725.html , 2016-07-31/2018-7-30.
[3] feilong_csdn. CSDN:支持向量机(SVM)必备知识(KKT、slater、对偶)[EB/OL]. https://blog.csdn.net/feilong_csdn/article/details/62427148, 2017-03-16/2018-7-30.