约束优化问题|机器学习推导系列(六)

一、简介

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

{minx  f(x),xRps.t.  mi(x)0,i=1,2,,Ms.t.  nj(x)=0,j=1,2,,N\left\{\begin{matrix} \underset{x}{min}\; f(x),x\in \mathbb{R}^{p}\\ s.t.\; m_{i}(x)\leq 0,i=1,2,\cdots ,M\\ s.t.\; n_{j}(x)=0,j=1,2,\cdots ,N \end{matrix}\right.

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

L(x,λ,η)=f(x)+i=1Mλimi(x)+j=1Nηjnj(x)λ,ηMNL(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维向量

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

{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.

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

{xmi(x)0mi(x)>0,λi0maxλ  L=xmi(x)0,λi0maxλ  Lλi=0minx  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

二、对偶关系证明

原问题的对偶问题为

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

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

maxλ,η  minx  L(x,λ,η)minx  maxλ,η  L(x,λ,η) \underset{\lambda ,\eta }{max}\; \underset{x}{min}\;L(x,\lambda ,\eta )\leq \underset{x}{min}\;\underset{\lambda ,\eta }{max}\;L(x,\lambda ,\eta )

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

minx  L(x,λ,η)A(λ,η)L(x,λ,η)maxλ,ηL(x,λ,η)B(x)A(λ,η)B(x)A(λ,η)min  B(x)max  A(λ,η)min  B(x)maxλ,η  minx  L(x,λ,η)L(x,λ,η)minx  maxλ,η  L(x,λ,η)\underset{A(\lambda ,\eta )}{\underbrace{\underset{x}{min}\;L(x,\lambda ,\eta )}}\leq L(x,\lambda ,\eta )\leq \underset{B(x)}{ \underbrace{\underset{\lambda ,\eta }{max}L(x,\lambda ,\eta )}}\\ \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 \underset{\lambda ,\eta }{max}\;\underset{x}{min}\;L(x,\lambda ,\eta )\leq L(x,\lambda ,\eta )\leq \underset{x}{min}\;\underset{\lambda ,\eta }{max}\; L(x,\lambda ,\eta )

三、对偶性的几何解释

{minx  f(x),xRps.t.  m(x)0Ddom  fdom  m\left\{\begin{matrix} \underset{x}{min}\; f(x),x\in \mathbb{R}^{p}\\ s.t.\; m(x)\leq 0 \end{matrix}\right.\\ 其定义域D为dom\; f\cap dom\; m

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

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

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

p=min  f(x)d=maxλ  minx  L(x,λ)p^{*}=min\; f(x)\\ d^{*}=\underset{\lambda }{max}\; \underset{x}{min}\; L(x,\lambda )

接着定义集合G:

G={(m(x),f(x))xD}={(u,t)xD}G=\left \{(m(x),f(x))|x\in D\right \}\\ =\left \{(u,t)|x\in D\right \}

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

约束优化问题|机器学习推导系列(六)

因此pp^*可以表示为:

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

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

约束优化问题|机器学习推导系列(六)

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

d=maxλ  minx  L(x,λ)=maxλ  minx  (t+λu)g(λ)=maxλ  g(λ)g(λ)=inf{t+λu(u,t)G}d^{*}=\underset{\lambda }{max}\; \underset{x}{min}\; L(x,\lambda )\\ =\underset{\lambda }{max}\; \underset{g(\lambda)}{\underbrace{\underset{x}{min}\;(t+\lambda u)}}\\ =\underset{\lambda }{max}\;g(\lambda)\\ g(\lambda)=inf\left \{t+\lambda u|(u,t)\in G\right \}

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

约束优化问题|机器学习推导系列(六)

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

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

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

约束优化问题|机器学习推导系列(六)

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

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

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

四、Slater条件

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

relint  Drelint\; D指的是定义域除去边界的部分。

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

五、KKT条件

对于原问题:

{minx  f(x),xRps.t.  mi(x)0,i=1,2,,Ms.t.  nj(x)=0,j=1,2,,N\left\{\begin{matrix} \underset{x}{min}\; f(x),x\in \mathbb{R}^{p}\\ s.t.\; m_{i}(x)\leq 0,i=1,2,\cdots ,M\\ s.t.\; n_{j}(x)=0,j=1,2,\cdots ,N \end{matrix}\right.

以及其对偶问题:

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

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

{{mi(x)0nj(x)=0λ0λimi=0,i=1,2,,M0L(x,λ,η)xx=x=0\left\{\begin{matrix} 可行条件:\left\{\begin{matrix} m_{i}(x^{*})\leq 0\\ n_{j}(x^{*})=0\\ \lambda ^{*}\geq 0 \end{matrix}\right.\\ 互补松弛:\lambda _{i}m_{i}=0,对\forall i=1,2,\cdots ,M成立\\ 梯度为0:\left.\begin{matrix} \frac{\partial L(x,\lambda ^{*},\eta ^{*})}{\partial x} \end{matrix}\right|_{x=x^{*}}=0 \end{matrix}\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)=pd=p,minx  L(x,λ,η)=L(x,λ,η),L(x,λ,η)xx=x=0f(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

公众号同步更新


约束优化问题|机器学习推导系列(六)