13 - Constrained Optimization - KKT Condition 2

上一篇文章中介绍了 constrained optimization,为了求解 local minimum,引入了 feasible direction 和 descent direction 的概念,并且给出了对应于 inequality constraint 的 first order KKT condition 用于求解 inequality constraint 条件下的 local minimum

本文主要包含以下几个方面内容

关于 equality constraint 的 KKT condition 不太适合从 feasible direction 和 descent direction 的角度来讲,需要引入 tangent 的概念,其实不管是 inequality 还是 equality constraint 的 KKT condition 都可以从 tangent 的角度来讲解,并且感觉也更严谨,但是我先看得 NPTEL 的视频,这个视频中 不是这么讲的,关于如何从 tangent 入手讲解 KKT condition 可以参考 [2],这本书中关于 constrained optimization 的理论讲解更全也更严谨,我的这篇文章也参考了 [2],关于 [2] 中 KKT Condition 的推导过程的大纲在本文最后有给出, 了解了大纲读懂推导过程就容易多了

Tangent

给定 $\b{x} \in \c{X}$,如果存在一个序列 $\b{z}_k \in \bb{R}^n$ 不断靠近 $\b{x}$,同时存在另一个序列 $t_k \in \bb{R}, t_k \ra 0 \;\text{as}\; k \ra \infty$ 使得 则 $\b{d}$ 被称为点 $\b{x}$ 的 tangent,点 $\b{x}$ 处所有 tangent 构成的集合 被称为 tangent cone,记为 $\c{T}(\b{x})$

举个例子(来自 [2]),令 $\c{X} = \left\{(x_1, x_2) \left| x_1^2 + x_2^2 = 2 \right.\right\}$ 即 $\c{X}$ 是一个圆,则对于点 $(-\sqrt{2}, 0)$,可以定义如下 $\b{z}_k, t_k$

易算出 $\b{d} = (0, -1)^T$ 为 $\b{x}$ 处的 tagent,如下图所示

其中绿色虚线表示序列 $\b{z}_k$。下面我们给 $\c{T}(\b{x})$ 代数化的表示

如果 $\b{x}$ 是一个 regular point,即 $\nabla e_i(\b{x}), i = 1, \cdots, m$ linear independent,则

关于这个定理的证明在 [2] 中有详细给出,这里不做细讲,参考上面那个图, 我们可以有个直观上的理解

Nessary Condition for Local Minimum

这里简单回顾一下 little-o notation,如果 $\lim_{x\ra a}\frac{f(x)}{g(x)} = 0$,则记 $f(x) = o(g(x))$,这里 $a$ 可以是 $\infty$,也可以是 $0$ 或者其他数。$o$ 可以读作 “smaller than”,即 $f(x)$ smaller than $g(x)$,$o(g(x))$ 就用来表示所有 $x\ra a$ 情况下小于 $g(x)$ 的函数

如果 $\b{x}^*$ 是 local minimum 且是 regular point,则

First Order KKT Condition for Equality Constrain

结合公式 2 和 3,我们得到如下结论

如果 $\b{x}^*$ 是 local minimum 同时是 regular point,则

看到这里,你似乎可以把 $\{\nabla e_i(\b{x}^*)^T \b{d} = 0\}$ 理解为 feasible direction,但我觉得这么做不严谨,比如对于 $x_1^2 + x_2^2 = 2$ 这个 equality constraint,这么定义出来的 $\b{d}$ 显然不是 feasible direction,[2] 中把这个集合叫做 linearized feasible direction,这个就严谨了很多

根据 4,我们可以得到如下 equality constraint 对应的 KKT condition

如果 $\b{x}^$ 是 local minimum 且是 regular point,则存在 $\bs{\mu}^* = (\mu_1^, \cdots, \mu_m^*)^T \in \bb{R}^m$ 使得

注意到和 inequality constraint 的不同,$\mu_i^*$ 这里可以是任意实数,而不用 $\geq 0$

下面给出定理证明,这里的证明采用的是 NPTEL 视频中的做法。证明前简单回顾一些关于 $\lim$ 和 $\infty$ 的知识。我们知道 $\lim_{x\ra 0} 1/x = \infty$,这个等式的意思不是真的存在 $\infty$ 这样的数,而是表示给定任意一个大的数 $k$,我总可以找到一个足够小的 $x$ 使得 $1/x > k$,同理 $\lim_{x\ra\infty} 1/x = 0$ 表示给定任意小的数 $k$,我总能够找到一个足够大的 $x$ 使得 $1/x < k$。没有任何一个数可以 $\geq \infty$,所有的数都是 $< \infty$,$\infty$ 只是一个概念,不是一个具体的数

$a \geq b, b < 0 \Lra a \geq 0$,因为 $a \geq b \Lra a \geq \lim_{b\ra 0^-} = 0$,用直白的话说,给定任意接近 $0$ 的 $b$,$a$ 都必须比它大,为了达到这个需求, $a$ 肯定不能 $< 0$,因为一旦 $a < 0$,我总能找到足够小的 $b$ 比你更小

First Order KKT condition for General Constrained Optimization

现在 equality 和 inequality constraint 都分别讲完了,把它们综合一下给出 General Constrained Optimization 的 first order KKT condition。General Constrained Optimization 的形式如下

如果 $\b{x}^*$ 是 local minimum 且是 regular point,则

这里的 regular point 要同时考虑 equality 和 inequality constraint,即 $\left\{\nabla h_j(\b{x}^) \; j \in \left\{ j: h_j(\b{x}^*) = 0\right\}\right\} \cup \left\{ \nabla e_i(\b{x}^) \; i \in \left\{ 1, \cdots, m\right\} \right\}$ linear independent

满足上述条件的点 $(\b{x}^*, \bs{\l}^*, \bs{\mu}^*)$ 被称为 KKT point

如果定义 Lagrange function $\c{L}(\b{x}, \bs{\l}, \bs{\mu}) = f(\b{x}) + \sum_{j=1}^l \l_j h_j(\b{x}) + \sum_{i=1}^m \mu_i e_i(\b{x})$,则有 $\nabla_{\b{x}} \c{L}(\b{x}^*, \bs{\l}^*, \bs{\mu}^*) = 0$

另外对于 Convex Programming,first order KKT condition 是 $\b{x}^*$ 为 global minimum 的 necessary and sufficient condition,证明与上一篇文章最后一节中给出的类似


其实我没太理解为什么可以直接合并两种 KKT condition 得到上面的 KKT condition,下面给出一种帮助理解的思路,但不是证明,我觉得这个还是需要 证明一下的,不是那么显而易见的,但我没想出怎么证

抛开所有的 gradient, optimization 什么的都不管,其实 inequality 和 equality constraint 对应的 KKT condition 的推导过程核心就是如下两个部分

上面的推导对任意的 $\b{g}, \b{c}_i, \b{d} \in \bb{R}^n$ 都是成立的($\b{c}_i$ 间需要 linear independent),而包含两种 constraint 的问题就相当于

把问题组织成 6,7,8 的形式感觉会容易理解一些,但我还是觉得需要一个证明怎么从 6,7 推出 8 成立,我没想出来。[2] 中直接解决 8 的问题,不是先证明 6,7 成立,所以感觉更严谨一些

关于 [2] 中 KKT Condition 的推导过程

这里记录 [2] 中关于 KKT Condition 的推导过程的大纲,细节直接看书

整个推导过程大体是这样(注意 [2] 的 inequality constraint 是表示成 $\geq 0$ 的形式,并且所有 constraint 都统一用 $c_i(\b{x})$ 表示,这里就按他的表示法来说明)

  1. 首先证明如果 $\b{x}$ 为 regular point,则其 tangent cone $\c{T}(\b{x})$ 可以表示为

    其中 $\c{E}$ 表示所有 equality constraint 的下标集合,$\c{I}$ 表示所有 inequality constraint 的下标集合

  2. 然后证明如果 $\b{x}^*$ 是 local minimum,则 $\b{d}^T \nabla f(\b{x}^*) \geq 0, \; \forall \b{d} \in \c{T}(\b{x})$

  3. 根据上面 2 个结论可以推出,对于 local minimum $\b{x}^*$

  4. 然后利用 Farka’s Lemma 推出

    [2] 中提到的 Farka’s Lemma 跟我在 Convex Set 中记录的 Farka’s Lemma 不太一样,我写的那个可以认为是 [2] 的一个 special case,[2] 中的 Farka’s Lemma 有点感觉像是为推导 KKT condition 而专门定制的

Reference

  1. [Optimization Problems with Constraints] (https://www.tu-ilmenau.de/fileadmin/media/simulation/Lehre/Vorlesungsskripte/Lecture_materials_Abebe/NLP_Notes.pdf)
  2. Numerical Optimization by Jorge Nocedal & Stephen J. Wright
  3. [Lagrange Multipliers and the Karush-Kuhn-Tucker conditions] (http://www.csc.kth.se/utbildning/kth/kurser/DD3364/Lectures/KKT.pdf)
  4. [Calculus/Infinite Limits/Infinity is not a number] (https://en.wikibooks.org/wiki/Calculus/Infinite_Limits/Infinity_is_not_a_number)
  5. [Less than infinity or Less or Equal to infinity] (http://math.stackexchange.com/questions/170313/less-than-infinity-or-less-or-equal-to-infinity)