拉格朗日乘子法

Reference

KKT条件(Karush–Kuhn–Tucker Conditions)

Reference

不等约束条件下的优化

如果$x^*$是不等约束条件下的一个极值点,那么有KKT条件:

  1. Primal Feasibility: $g(x^*) \le 0$
  2. Dual Feasibility: $\alpha \ge 0$
  3. Complementary Slackness: $\alpha g(x^*) = 0$
  4. Lagrangian Stationarity: $\nabla f(x^) = \alpha \times \nabla g(x^)$

我们要找的极值点必然是符合KKT条件的点($x^*$)。

KKT条件的直观理解

Lagrangian Stationarity

  1. 对于一个相等约束条件下的优化问题来说,极值点往往是目标函数与约束条件的切点。
  2. 函数梯度与函数等高线的切线是正交的。

结合上述两个事实,可知约束($\nabla g$)的和目标函数($\nabla f$)在极值点(切点)的梯度平行或者反向平行。即

$$ \nabla f(x^) = \alpha \times \nabla g(x^)$$

Dual Feasibility ($\alpha \ge 0$)

$\alpha$被称为KKT乘子或对偶变量。在解释为什么KKT乘子只能是非负值之前,我们先来看一看在相等约束条件下的优化问题中, KKT乘子的符号会产生什么影响。

  • 如果$\alpha \ge 0$,意味着$\nabla f$和$\nabla g$的梯度方向是平行的,
  • 如果$\alpha \le 0$,那么$\nabla f$和$\nabla g$的梯度方向反向平行。

那么为什么KKT条件会有这样的符号限制呢?先小小地跑一下题。

  • $g(x,y) = 0(x + y - 1 = 0)$: 可行域只是一条直线
  • $g(x,y) \ge 0$: 可行域是直线上方的区域
  • $g(x,y) \le 0$: 可行域是直线下方的区域

feasible region

约束($\nabla g$)的梯度方向总是朝向$g(x,y) \ge 0$的可行域。

gradient

因此,只有在可行域上下翻转的情况下($i.e.,x+y \ge -1$),KKT乘子的符号才有可能为负。这时约束不会对目标函数造成任何影响。

Complementary Slackness Condition

$$\alpha \times g(x^*) = 0$$

这个条件说明在极值点处,KKT乘子或不等约束($g(x^*) \le 0$)为0。我们可以将任何不等约束分成两类:

  1. 触发约束:极值点出现在约束的区域边界,这时$g(x^*) = 0$,
  2. 未触发约束:极值点出现在约束的可行域中。

Primal Feasibility Condition

优化函数需要满足的条件。

results matching ""

    No results matching ""