14 - Duality and Its Application on Constrained Optimization

这篇文章介绍 duality(对偶问题),主要包含以下几个方面的内容

在没有歧异的情况下,我用 primal 表示 primal problem,dual 表示 dual problem;为方便起见,很多地方我直接忽略掉定义域,比如 $\min_{x\in\c{X}}$ 写成 $\min_x$,尤其是在写 inline 的公式时;另外,我用“最优解”表示 $\argmin_x f(x)$,用“最优值”表示 $\min_x f(x)$

关于 duality 的讨论,感觉视频某些地方说的不对或不严谨,这里做了更正

Primal Problem and Dual Problem

给定函数 $\v(x, y)$,我们称如下问题为 primal problem

其中 $\max_{y \in \c{Y}} \v(x, y)$ 被称为 primal function,$x$ 被称为 primal variable

与 primal problem 相对应的是 dual problem,即

其中 $\min_{x \in \c{X}} \v(x, y)$ 被称为 dual function,$y$ 被称为 dual vairable

可见 primal problem 是最小化问题,而 dual problem 是最大化问题

值得注意的是,primal 和 dual 并不一定有相同的最优值, 比如这个简单的函数,$\c{X} = \c{Y} = \{1, 2\}$

意思是 $\v(1, 1) = -2$ 等,容易算出 $\min_x \max_y = 1$,而 $\max_y \min_x = -2$,也就是 primal 和 dual 的最优值是不同的

而对于下面这个函数

容易算出 $\min_x \max_y = \max_y \min_x = 1$

因此 primal 和 dual 有相同最优值是有条件的

Weak Duality

所谓的 weak duality 是指

给定任意 $\v(x, y)$,都有

Weak Duality 告诉我们不论在什么情况 primal 的最优值都不会小于 dual 的最优值,而要二者的最优值相等是需要条件的,即 saddle point 的存在

Saddle Point

令 $x^* \in \c{X}, y^* \in \c{Y}$,如果 $(x^*, y^*)$ 满足 则点 $(x^*, y^*)$ 被称为 saddle point

可以看出,如果点 $(x^*, y^*)$ 为 saddle point 则

等式 $\min_{x\in\c{X}}\;\max_{y\in\c{Y}} \v(x, y) = \max_{y \in \c{Y}} \; \min_{x \in \c{X}} \v(x, y) $ 成立当且仅当 saddle point 存在

从上面的定理证明过程还可看出,如果 saddle point 存在,则 primal 和 dual 的最优值相等且等于 $\v(x^*, y^*)$

Duality for Constrained Optimization

从前面的讨论中,我们知道,primal problem 解决的是 $\min\max$ 问题,而 dual problem 解决的是 $\max\min$ 问题,下面我们看看 constrained optimization 怎么能以 primal 和 dual 的形式表示出来

给定下面的 constrained optimization 问题

定义 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})$,其中 $\l_j \geq 0, \mu_i \in \bb{R}$,可以验证以下问题与 6 等价

首先我们先研究一下 primal function $\max_{\bs{\l}\geq 0, \bs{\mu}} \c{L}(\b{x}, \bs{\l}, \bs{\mu})$

总结以上讨论,就有

由于 primal problem 是个求 $\min$ 的问题,$+\infty$ 显然不可能是 $\min$,因此, 这里第二个部分就可以忽略掉了,只考虑 $h_j(\b{x}) \leq 0, e_i(\b{x}) = 0 \; \forall i, j$ 的情况,而这就是问题 6,因此解问题 7 就等价于解问题 6

有了这样的 primal 形式,问题 6 对应的 dual problem 就可以表示为

如果定义 $\theta(\bs{\l}, \bs{\mu}) = \min_{\b{x} \in S} \c{L}(\b{x}, \bs{\l}, \bs{\mu})$,即 $\theta$ 为 dual function,则 dual problem 可以表示为

Geometry Interpretation of Constrained Optimization Duality

这一节我们从几何角度研究研究 constrained optimization 对应的对偶问题。 考虑如下优化问题

令 $y = h(x), z = f(x)$,我们就得到了一个 $x$ 到 $(y, z)$ space 的映射。有了 $y, z$ 的定义,Lagrange function 可表示为 $\c{L}(x, \l) = z + \l y$,下面我们看看不同 $(y, z)$ space 的情况下 primal 和 dual 的最优值的关系

以下图中红色圈代表 $x$ 取值范围,黑色圈代表映射到 $(y, z)$ space 后的取值范围, 其中 $p^*$ 表示 primal 最优值,$d^*$ 表示 dual 最优值

上面我们看了三种不同的 primal 和 dual 的情况,如果 $p^* = d^*$,我们称 primal 和 dual 不存在 duality gap,否则,我们称 primal 和 dual 之间存在 duality gap

Saddle Point for Constrained Optimization Duality

上一节中我们对 constrained optimization 什么时候与 dual problem 有相同最优值有了初步认识,这一节我们给出更严谨的讨论

Constrained optimization 的 primal 和 dual 有相同最优值当且仅当存在 $\b{x}^* \in S, \bs{\l}^* \geq 0, \bs{\mu}^*$ 使得

点 $(\b{x}^*, \bs{\l}^*, \bs{\mu}^*)$ 被称为 Lagrangian saddle point

Find Saddle Point For Convex Programming

上一节中我们论证了存在 saddle point 等价于 primal 和 dual 之间没有 duality gap,这一节中我们讨论如何找到这样的 saddle point,但是仅限于讨论 convex programming 的情况,即问题 6 中 $f(\b{x}), h_j(\b{x})$ 为 continuously differentiable convex function,同时 $e_i(\b{x}) = \b{a}_i^T \b{x} - b_i$,且 $S$ 是 convex set

对于 Convex Programming,假设 Slater’s Condition 成立

  • 如果 $(\b{x}^, \bs{\l}^*, \bs{\mu}^*)$ 是 KKT Point,则 $(\b{x}^*, \bs{\l}^, \bs{\mu}^*)$ 是 saddle point
  • 如果 $(\b{x}^, \bs{\l}^*, \bs{\mu}^*)$ 是 saddle point 且 $\b{x}^ \in \text{int}(S), \bs{\l}^* \geq 0$,则 $(\b{x}^*, \bs{\l}^*, \bs{\mu}^*)$ 是 KKT Point

所谓的 Slater’s Condition 其实没什么,就是要求 $\c{X}$ 非空,仅此而已

根据上述结论,对于 Convex Programming,如果 Slater’s Condition 成立,则问题 8 又可以表示为

这个 dual problem 的表示形式又被称为 wolfe dual,当然从上面的结论中也可以看出 这个形式的一个缺陷就是只能发现 $\in \text{in}(S)$ 的 $\b{x}^*$,如果最优点在 $S$ 的边界则这个 dual problem 是无法找到的

下面简单看一个例子

其中 $\b{1}$ 表示所有元素都是 1 的 vector

这个问题的最优解是 $x_1 = \cdots = x_n = 1/n$,这里我们主要看看从 wolfe dual 的角度如何解决,其 wolfe dual 长这样

可进一步转变为

由此很容易求出 $\mu^* = -1/n \Ra x_i^* = 1/n \forall i$

这个例子中 primal 是个包含 $n$ 个变量的问题,而 dual 是个仅包含一个变量的问题, 因此,将问题转变为 dual 简单了很多,这就是将 primal 转化为 dual 的意义所在。 当然从 primal 转变为 dual 后问题并不总是变简单的,也有可能变复杂

Convexity of Dual Problem

最后一小节我们看看 dual problem 的一个非常 NB 的性质,在了解这个性质前,我们先了解一下 pointwise maximization (minimization)

所谓的 pointwise maximization 指,如果 $f_{\b{x}}(\b{u})$ 是 convex function $\forall \b{x} \in \c{X}$,那 $f(\b{u}) = \max_{\b{x}\in\c{X}} f_{\b{x}}(\b{u})$ 也是 convex function

证明不难,一个函数是 convex function 等价于其 epigraph 是 convex set,而 $\max$ 的 epigraph 是所有 $f_{\b{x}}$ 的 epigraph 的交集,所以 $\max$ 的 epigraph 也是 convex set,即 $\max$ 是 convex function

Pointwise minimization 是相对于 concave function 而言的

所谓的 pointwise minimization 指,如果 $f_{\b{x}}(\b{u})$ 是 concave function $\forall \b{x} \in \c{X}$,那 $f(\b{u}) = \min_{\b{x}\in\c{X}} f_{\b{x}}(\b{u})$ 也是 concave function

现在我们来看看 dual problem 的性质

给定任意 $\b{x} \in S$,$\c{L}(\b{x}, \bs{\l}, \bs{\mu})$ 都是相对于 $\bs{\l}, \bs{\mu}$ 的 affine function,affine function 是 concave function(当然也是 convex function),根据 pointwise minimization 的定义,$\min_{\b{x} \in S} \c{L}(\b{x}, \bs{\l}, \bs{\mu})$ 即 $\theta(\bs{\l}, \bs{\mu})$ 也是一个 concave function,这就意味着问题 9 是 convex programming 问题(怎么又变成 convex 了呢?因为 max 一个 concave function 等价于 min 一个 convex function,所以是 convex programming)

这就是 dual problem NB 的地方,无论 primal problem 是个什么问题,dual problem 一定是个 convex programming 问题,当然啦,虽然这个性质很好,但你不能保证 dual 和 primal 有相同的最优值