『白板推导系列笔记』6.1.约束优化

186 阅读4分钟

一、简介

约束优化问题的原问题(Primal Problem)的一般形式如下:

{minxf(x),xRp s.t. mi(x)0,i=1,2,,M s.t. nj(x)=0,j=1,2,,N\left\{\begin{array}{c} \min _x f(x), x \in \mathbb{R}^p \\ \text { s.t. } m_i(x) \leq 0, i=1,2, \cdots, M \\ \text { s.t. } n_j(x)=0, j=1,2, \cdots, N \end{array}\right.

求解约束优化问题需要用到拉格朗日乘子法,定义拉格朗日函数:

L(x,λ,η)=f(x)+i=1Mλimi(x)+j=1Nηjnj(x)λ,η分别是M维、N维向量\begin{gathered} L(x, \lambda, \eta)=f(x)+\sum_{i=1}^M \lambda_i m_i(x)+\sum_{j=1}^N \eta_j n_j(x)\\ \lambda, \eta 分别是 M 维、 N 维向量 \end{gathered}

然后原问题可以转化为以下优化问题,这两个优化问题具有同样的解:

{minx  maxλ,η  L(x,λ,η)s.t.  λi0\left\{\begin{matrix} \underset{x}{min}\; \underset{\lambda ,\eta }{max}\; L(x,\lambda ,\eta )\\ s.t.\; \lambda _{i}\geq 0 \end{matrix}\right.

可以说明一下为什么上述约束优化问题可以求得原问题的最优解: 以不等式约束为例:

{如果x违反了约束mi(x)0,即mi(x)>0,由于λi0maxλ  L=如果x符合约束mi(x)0,由于λi0maxλ  L(此时λi=0因此minx  maxλ  L=minx{maxλ  Lx符合约束,x不符合约束}\left\{\begin{matrix} 如果x违反了约束m_{i}(x)\leq 0,即m_{i}(x)>0,由于\lambda _{i}\geq 0,\underset{\lambda }{max}\; L=\infty \\ 如果x符合约束m_{i}(x)\leq 0,由于\lambda _{i}\geq 0,\underset{\lambda }{max}\; L\neq \infty (此时\lambda _{i}=0) \end{matrix}\right.\\ 因此\underset{x}{min}\; \underset{\lambda }{max}\; L=\underset{x}{min}\left \{\underset{x符合约束}{\underbrace{\underset{\lambda }{max}\; L}},\underset{x不符合约束}{\underbrace{\infty }}\right \}

也就是说虽然拉格朗日函数对 xx 没有约束,但是在求解过程中会过滤掉不符合原问题 xx 的约束的 xx

二、对偶关系证明

对于一个优化问题,为什么我们要找它的对偶问题呢? 因为一个优化问题,无论是否为凸,其对偶问题一定为凸优化问题(下面解释) 那么为什么一定要找一个凸优化问题呢? 因为凸优化问题有一些很好的性质,比如 凸优化问题的局部最优解就是全局最优解 凸问题和其对偶问题解相等是kkt的充分必要条件 下面我们来一步步看。

原问题的对偶问题为

{maxλ,ηminxL(x,λ,η) s.t. λi0\left\{\begin{array}{llll} \max _{\lambda, \eta} \min _x L(x, \lambda, \eta) \\ \text { s.t. } \lambda_i \geq 0 \end{array}\right.

可以看到原问题是关于 xx 的函数,对偶问题是关于 λ,η\lambda, \eta 的函数。有如下定理:

maxλ,ηminxL(x,λ,η)minxmaxλ,ηL(x,λ,η)\max _{\lambda, \eta} \min _x L(x, \lambda, \eta) \leq \min _x \max _{\lambda, \eta} L(x, \lambda, \eta)

这个关系可以简单地得到证明:

minxL(x,λ,η)A(λ,η)L(x,λ,η)maxλ,ηL(x,λ,η)B(x)A(λ,η)B(x)A(λ,η)minB(x)maxA(λ,η)minB(x)maxλ,ηminxL(x,λ,η)L(x,λ,η)minxmaxλ,ηL(x,λ,η)\begin{gathered} \underbrace{\min _x L(x, \lambda, \eta)}_{A(\lambda, \eta)} \leq L(x, \lambda, \eta) \leq \underbrace{\max _{\lambda, \eta} L(x, \lambda, \eta)}_{B(x)} \\ \Rightarrow A(\lambda, \eta) \leq B(x) \\ \Rightarrow A(\lambda, \eta) \leq \min B(x) \\ \Rightarrow \max A(\lambda, \eta) \leq \min B(x) \\ \Rightarrow \max _{\lambda, \eta} \min _x L(x, \lambda, \eta) \leq L(x, \lambda, \eta) \leq \min _x \max _{\lambda, \eta} L(x, \lambda, \eta) \end{gathered}

三、对偶性的几何解释

{minxf(x),xRp s.t. m(x)0其定义域Ddomfdom  m\left\{\begin{array}{c} \min _x f(x), x \in \mathbb{R}^p \\ \text { s.t. } m(x) \leq 0 \end{array}\right.\\ 其定义域 D 为 \operatorname{dom} f \cap d o m \;m

对于上述约束优化问题, 可以写出它的拉格朗日函数:

L(x,λ)=f(x)+λm(x),λ0L(x, \lambda)=f(x)+\lambda m(x), \lambda \geq 0

然后表示出原问题和对偶问题的最优解 pp^*dd^* :

p=minf(x)d=maxλminxL(x,λ)\begin{gathered} p^*=\min f(x) \\ d^*=\max _\lambda \min _x L(x, \lambda) \end{gathered}

接着定义集合G:

G={(m(x),f(x))xD}={(u,t)xD}\begin{aligned} G= & \{(m(x), f(x)) \mid x \in D\} \\ & =\{(u, t) \mid x \in D\} \end{aligned}

集合 GG 在二维坐标系下表示的空间假设为下图:

e3ebef12f418497dace5f544c1ed15f6tplv-k3u1fbpfcp-watermark.webp

因此 pp^* 可以表示为:

inf{t(u,t)G,u0}inf\left \{t|(u,t)\in G,u\leq 0\right \}

pp^* 在图中可以表示为:

fc30894cf0c64c94aae2b1dbd4b026cbtplv-k3u1fbpfcp-watermark.webp

同样地 dd^* 也可以用 uutt 来表示:

d=maxλminxL(x,λ)=maxλminx(t+λu)g(λ)=maxλg(λ)g(λ)=inf{t+λu(u,t)G}\begin{gathered} d^*=\max _\lambda \min _x L(x, \lambda) \\ =\max _\lambda \underbrace{\min _x(t+\lambda u)}_{g(\lambda)} \\ =\max _\lambda g(\lambda) \\ g(\lambda)=\inf \{t+\lambda u \mid(u, t) \in G\} \end{gathered}

t+λu=bt+\lambda u=b 表示以 λ-\lambda 为斜率,以 bb 为截距的直线,而 g(λ)g(\lambda) 即为与区域 GG 相切最小截距的直线 t+λu=bt+\lambda u=bbb 。如下图所示:

66b1adf665934e09914e5390263b1ba3tplv-k3u1fbpfcp-watermark.webp

结合上图来看,而 dd^* 也就可以认为是调整斜率 λ-\lambda 使得直线 t+λu=bt+\lambda u=b 截距 bb 最大时的 bb 的值。可以想象无论直线怎么变动,所取得的极值 dd^* 都不可能比 pp^* 大,这也就解释了为什么对偶问题最优解总是小于等于原问题最优解。

  • 如果 p>dp^*>d^* 则为弱对偶关系;
  • 如果 p=dp^*=d^* 则为强对偶关系。

在某些特殊情况下可以使得强对偶关系成立,在图中表示如下:

a9d3cb78594e4408b4651441bc5e09bctplv-k3u1fbpfcp-watermark.webp

如果一个约束优化问题是凸优化问题且同时满足Slater条件,那么可以使得 d=pd^*=p^* :

凸优化 ++ Slater条件 d=p\Rightarrow d^*=p^*

但是 d=pd^*=p^* 并不能推出该约束优化问题是凸优化问题且同时满足Slater条件,这是因为Slater条件是 d=pd^*=p^* 的充分不必要条件,还有其他的条件可以使得约束优化问题满足 d=pd^*=p^*

四、Slater条件

Slater条件指的是 x^\exists \hat{x} \in relintDrelint D 使得 i=1,2,,Mmi(x^)<0\forall i=1,2, \cdots, M m_i(\hat{x})<0

relintDrelint D 指的是定义域除去边界的部分。

有以下两点说明: ①对于大多数凸优化问题,Slater条件是成立的; ②放松的Slater条件: M个 mi(x)m_i(x) 中的仿射函数(例如f(x)=Ax+bf(x) = Ax + b)可以不用验证。因为在定义域内寻找一个满足所有 mi(x)<0m_i(x)<0 的点是比较困难的,因此放松的Slater条件会减少一些复杂度。

五、KKT条件

对于原问题:

{minxf(x),xRp s.t. mi(x)0,i=1,2,,M s.t. nj(x)=0,j=1,2,,N\left\{\begin{array}{c} \min_x f(x), x \in \mathbb{R}^p \\ \text { s.t. } m_i(x) \leq 0, i=1,2, \cdots, M \\ \text { s.t. } n_j(x)=0, j=1,2, \cdots, N \end{array}\right.

以及其对偶问题:

{maxλ,ηminxL(x,λ,η) s.t. λi0\left\{\begin{array}{llll} \max _{\lambda, \eta} \min _x L(x, \lambda, \eta) \\ \text { s.t. } \lambda_i \geq 0 \end{array}\right.

如果原问题和对偶问题满足强对偶关系,则原问题和对偶问题具有相同的最优解,另外它们还天然地满足KKT条件 (KarushKuhn-Tucker条件) 。假设原问题最优解 pp^* 对应 xx^* ,对偶问题最优解 dd^* 对应 λ\lambda^*η\eta^* ,则KKT条件为:

{ 可行条件: {mi(x)0nj(x)=0λ0 互补松弛: λimi=0, 对 i=1,2,,M 成立  梯度为 0:L(x,λ,η)xx=x=0\left\{\begin{array}{c} \text { 可行条件: }\left\{\begin{array}{c} m_i\left(x^*\right) \leq 0 \\ n_j\left(x^*\right)=0 \\ \lambda^* \geq 0 \end{array}\right. \\ \text { 互补松弛: } \lambda_i m_i=0, \text { 对 } \forall i=1,2, \cdots, M \text { 成立 } \\ \text { 梯度为 } 0:\left.\quad \frac{\partial L\left(x, \lambda^*, \eta^*\right)}{\partial x}\right|_{x=x^*}=0 \end{array}\right.

可以进行以下证明:

d=maxλ,η  g(λ,η)=g(λ,η)=minx  L(x,λ,η)L(x,λ,η)=f(x)+i=1Mλimi(x)+j=1Nηjnj(x)=0=f(x)+i=1Mλimi(x)0f(x)=p因为d=p,所以上式中两个都必须取等号。首先minx  L(x,λ,η)=L(x,λ,η),则可以得出:L(x,λ,η)xx=x=0然后f(x)+i=1Mλimi(x)=f(x),则可以得出:i=1Mλimi(x)=0,由于λimi(x)0,要使得i=1Mλimi(x)=0,则必有λimi(x)=0d^{*}=\underset{\lambda ,\eta }{max}\; g(\lambda ,\eta )\\ = g(\lambda ^{*},\eta ^{*})\\ =\underset{x}{min}\; L(x,\lambda ^{*},\eta ^{*})\\ \leq L(x^{*},\lambda ^{*},\eta ^{*})\\ =f(x^{*})+\sum_{i=1}^{M}\lambda _{i}^{*}m_{i}(x^{*})+\underset{=0}{\underbrace{\sum_{j=1}^{N}\eta _{j}^{*}n_{j}(x^{*})}}\\ =f(x^{*})+\underset{\leq 0}{\underbrace{\sum_{i=1}^{M}\lambda _{i}^{*}m_{i}(x^{*})}}\\ \leq f(x^{*})\\ =p^{*}\\ 因为d^{*}=p^{*},所以上式中两个\leq 都必须取等号。\\ 首先\underset{x}{min}\; L(x,\lambda ^{*},\eta ^{*})=L(x^{*},\lambda ^{*},\eta ^{*}),则可以得出:\\ \left.\begin{matrix} \frac{\partial L(x,\lambda ^{*},\eta ^{*})}{\partial x} \end{matrix}\right|_{x=x^{*}}=0\\ 然后f(x^{*})+\sum_{i=1}^{M}\lambda _{i}^{*}m_{i}(x^{*})=f(x^{*}),则可以得出:\\ \sum_{i=1}^{M}\lambda _{i}^{*}m_{i}(x^{*})=0,由于\lambda _{i}^{*}m_{i}(x^{*})\leq 0,要使得\sum_{i=1}^{M}\lambda _{i}^{*}m_{i}(x^{*})=0,则必有\lambda _{i}^{*}m_{i}(x^{*})=0

六、小结

约束优化(Constrained Optimization),即约束优化问题,是优化问题的分支。它是在一系列约束条件下,寻找一组参数值,使某个或某一组函数的目标值达到最优。其中约束条件既可以是等式约束也可以是不等式约束。寻找这一组参数值的关键可是:满足约束条件和目标值要达到最优。求解约束问题的方法可分为传统方法和进化算法。这里介绍了传统方法,可以用拉格朗日乘子法求解,进化算法是求解优化问题的全局优化方法,其灵感来自于大自然的生物进化,是一种成熟的具有高鲁棒性和广泛适用性的优化算法。目前接触到的有遗传算法、粒子群优化算法、人工蜂群算法。感兴趣的小伙伴可以去深入了解,下一结我们将介绍SVM算法,他就是一个有约束的优化问题。

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 1 天,点击查看活动详情