7.2约束优化和Lagrange乘子


文档摘要

7.2 约束优化和 Lagrange 乘子 在前一节中,我们讨论了如何求解函数的最小化问题: $$ \min\limits{\boldsymbol{x}}f(\boldsymbol{x}), \tag{7.16} $$ 其中 $f: \mathbb{R}^{D} \rightarrow \mathbb{R}$。但在本节中,我们得面对额外的“约束条件”,具体来说,对于实值函数 $gi: \mathbb{R}^{D} \rightarrow \mathbb{R}$($i=1,\ldots, m$),我们考虑如下的约束优化问题(如图 7.

7.2 约束优化和 Lagrange 乘子

在前一节中,我们讨论了如何求解函数的最小化问题:

\min\limits_{\boldsymbol{x}}~f(\boldsymbol{x}), \tag{7.16}

其中 f: \mathbb{R}^{D} \rightarrow \mathbb{R}。但在本节中,我们得面对额外的“约束条件”,具体来说,对于实值函数 g_i: \mathbb{R}^{D} \rightarrow \mathbb{R}i=1,\ldots, m),我们考虑如下的约束优化问题(如图 7.4):

\begin{align} \min\limits_{\boldsymbol{x}}~&~f(\boldsymbol{x})\\ \text{subject to}~&~g_{i}(\boldsymbol{x}) \leqslant 0\quad \text{for all}\quad i = 1, \dots, m \end{align} \tag{7.17}
alt text 图7.4 约束优化图示

这里有个值得注意的细节:函数 fg_i 在一般情况下可能非凸(non-convex),不过别急,我们将在下一节讨论凸优化这个“乖孩子”。

一种直观但不太实用的方法是使用 示性函数(indicator function) 将约束问题 (7.17) 转化为无约束形式:

J(\boldsymbol{x}) = f(\boldsymbol{x}) + \sum\limits_{i=1}^{m} \boldsymbol{1}[g_{i}(\boldsymbol{x})] \tag{7.18}

其中

\boldsymbol{1}(z) = \begin{cases} 0 & z \leqslant 0\\ \infty & \text{otherwise} \end{cases}. \tag{7.19}

这招儿就像给违反约束的行为判了“无期徒刑”,理论上能给出相同解,但实际优化起来十分困难。我们可以用Lagrangre 乘数法(Lagrange multipliers)解决这个问题:它的妙招是把阶跃函数松弛为线性函数。

我们为问题 (7.17) 引入 Lagrangre 函数(Lagrangian),通过Lagrangre 乘数 \lambda_i \geqslant 0 将每个不等式约束松弛化(Boyd and Vandenberghe, 2004, 第四章):

\begin{align} \mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) &= f(\boldsymbol{x}) + \sum\limits_{i=1}^{m} \lambda_{i}g_{i}(\boldsymbol{x}) \tag{7.20a}\\ &= f(\boldsymbol{x}) + \boldsymbol{\lambda}^{\top}\boldsymbol{g}(\boldsymbol{x})\tag{7.20b} \end{align}

这里,我们把所有约束 g_i(x) 打包成一个向量 \boldsymbol{g}(x),所有乘数也塞进向量,得到 \boldsymbol{\lambda} \in \mathbb{R}^{m}

现在我们引入 Lagrangre 对偶性 (Lagrangian duality) 。优化中的对偶思想,本质是把原变量(primal variables)\boldsymbol{x} 的问题,转换成另一组对偶变量(dual variables)\boldsymbol{\lambda} 的问题。本节我们聚焦Lagrangre 对偶,除此之外我们将在 7.3.3 节介绍 Legendre-Fenchel 对偶。

定义 7.1 我们称 (7.17) 中的问题

\begin{align}\min\limits_{\boldsymbol{x}}~&~f(\boldsymbol{x})\\\text{subject to}~&~g_{i}(\boldsymbol{x}) \leqslant 0\quad\text{for all}\quad i = 1, \dots, m\end{align} \tag{7.21}

原问题(primal problem),对应原变量 \boldsymbol{x}。其关联的Lagrangre 对偶问题(Lagrangian dual problem)是
\begin{align}\min\limits_{\boldsymbol{\lambda} \in \mathbb{R}^{m}}~&~\mathfrak{D}(\boldsymbol{\lambda})\\\text{subject to}~&~\boldsymbol{\lambda} \geqslant \boldsymbol{0}.\end{align} \tag{7.22}

其中 \boldsymbol{\lambda} 是对偶变量, \displaystyle \mathfrak{D}(\boldsymbol{\lambda}) = \min_{\boldsymbol{x} \in \mathbb{R}^d} \mathfrak{L}(\boldsymbol{x},\boldsymbol{\lambda})

注释

在定义 7.1 的讨论中,我们用到两个独立有趣的概念(Boyd and Vandenberghe, 2004)

第一个概念叫做 极小极大不等式(minimax inequality):对任意双变量函数 \varphi(\boldsymbol{x}, \boldsymbol{y}),有

\max\limits_{\boldsymbol{y}}~\min\limits_{\boldsymbol{x}}~\phi(\boldsymbol{x}, \boldsymbol{y}) \leqslant \min\limits_{\boldsymbol{x}}~\max\limits_{\boldsymbol{y}}~\phi(\boldsymbol{x}, \boldsymbol{y}). \tag{7.23}
可以考虑下面的不等式来证明
\forall \boldsymbol{x}, \boldsymbol{y}\quad \min\limits_{\boldsymbol{x}}~\phi(\boldsymbol{x}, \boldsymbol{y}) \leqslant \max\limits_{\boldsymbol{y}}~\phi(\boldsymbol{x}, \boldsymbol{y}).\tag{7.24}
显然,左边的式子对 \boldsymbol{y}\max 就对应 (7.23) 的左边;类似地操作我们也能得到右边。

第二个概念是 弱对偶性(weak duality),这是说我们在 (7.23) 证明了了的 "原问题值总大于等于对偶值",更多细节见 (7.27)。

回忆一下,(7.18) 中的 J(\boldsymbol{x}) 与Lagrangre 函数的关键区别,是我们把指示函数松弛成了线性函数。因此,当 \boldsymbol{\lambda} \geqslant 0 时,Lagrangre \mathfrak{L}(\boldsymbol{x},\boldsymbol{\lambda})J(\boldsymbol{x}) 的下界。于是,\mathfrak{L}(\boldsymbol{x},\boldsymbol{\lambda})\boldsymbol{\lambda} 的最大化给出

J(\boldsymbol{x}) = \max\limits_{\boldsymbol{\lambda} \geqslant \boldsymbol{0}}~\mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}). \tag{7.25}

同时原问题是最小化 J(\boldsymbol{x})

\min\limits_{\boldsymbol{x} \in \mathbb{R}^{d}}~\max\limits_{\boldsymbol{\lambda} \geqslant \boldsymbol{0}}~\mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}). \tag{7.26}

由极小极大不等式 (7.23),交换最小和最大顺序会得到更小值,也就是所谓的弱对偶性:

\min\limits_{\boldsymbol{x}\in \mathbb{R}^{d}}~\max\limits_{\boldsymbol{\lambda} \geqslant \boldsymbol{0}}~\mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}) \geqslant \max\limits_{\boldsymbol{\lambda} \geqslant \boldsymbol{0}}~\min\limits_{\boldsymbol{x} \in \mathbb{R}^{d}}~\mathfrak{L}(\boldsymbol{x}, \boldsymbol{\lambda}). \tag{7.27}

其中右侧里面正是对偶目标函数 \mathfrak{D}(\boldsymbol{\lambda})

与原优化问题(带约束)相比,\displaystyle \min_{\boldsymbol{x} \in \mathbb{R}^{d}} \mathfrak{L}(\boldsymbol{x},\boldsymbol{\lambda}) 对给定 \boldsymbol{\lambda} 是无约束问题。如果这个子问题容易求解,那整体问题就变简单了!观察 (7.20b),\mathfrak{L}(\boldsymbol{x},\boldsymbol{\lambda}) 关于 \boldsymbol{\lambda} 是仿射(affine)的,因此 \displaystyle \min_{\boldsymbol{x} \in \mathbb{R}^{d}} \mathfrak{L}(\boldsymbol{x},\boldsymbol{\lambda})\boldsymbol{\lambda} 的仿射函数的逐点最小值,故 \mathfrak{D}(\boldsymbol{\lambda}) 是凹函数——即使 f(\cdot)g_i(\cdot) 非凸。外部最大化问题(对 \boldsymbol{\lambda})是凹函数的最大化,可高效求解

假设 f(\cdot)g_i(\cdot) 可微,我们通过微分Lagrangre 函数求解对偶问题:对 \boldsymbol{x} 求导、设导数为零、解最优值。第7.3.1和7.3.2节将讨论两个具体例子(fg_i 为凸时)。

注释 (等式约束)
考虑 (7.17) 添加等式约束

\begin{align}\min\limits_{\boldsymbol{x}}~&f(\boldsymbol{x})\\\text{subject to}~&~g_{i}(\boldsymbol{x}) \leqslant 0 \quad \forall i = 1, \dots, m\\&~h_{j}(\boldsymbol{x}) = 0\quad \forall j = 1, \dots, n.\end{align} \tag{7.28}
我们可以用两个不等式约束模拟等式约束:对每个 h_j(\boldsymbol{x})=0,等价替换为 h_j(\boldsymbol{x}) \leqslant 0h_j(\boldsymbol{x}) \geqslant 0。结果Lagrangre 乘数将无约束。
因此,在 (7.28) 中,我们仅约束不等式乘数为非负,而等式乘数则没有约束。


作者与出处
原作者: Datawhale
来源:Datawhale
许可证:CC BY-SA 4.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Datawhale 转发
评论区 (0)
U