Lagrange

拉格朗日

拉格朗日乘子法是求解约束最优化问题的方法,其通过将原始问题转化为对偶问题来得到原始问题的最优解。SVM,最大熵模型都采用了拉格朗日方法。

原始问题

首先定义是定义在上的连续可微函数,考虑下面的约束问题:

然后我们可以引入拉格朗日函数:

,其中,

现在考虑关于关于的函数:

问题来了,为什么这里是求最大值?

我们可以这么考虑:如果(1)的约束条件都满足了,即,那么当我们对(2)求极大值的时候,必定成立,所以。反之,如果约束条件没有满足,假设存在一个,那么由于极大值的存在,,那么也就没有解了。所以取最大值是合理的。

然后我们就可以考虑

为了表述方便,先假设存在最优值,即

对偶问题

原始问题是极小极大问题,对偶问题是极大极小问题。定义如下关于的函数:

然后考虑对上述问题求极大值

假设对这个问题存在最优解,

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

那么现在我们就需要考虑原始问题和对偶问题之间存在什么关系,即我们能不能通过求解对偶问题来得到原始问题的解,或者说两者是否有同一个解。

这里就需要引入KKT条件:

对于上文中的原始问题和对偶问题,假设是凸函数,是仿射函数,且不等式约束是严格可行的,那么分别是原始问题和对偶问题的解的充分必要条件是满足以下条件: