m i n i m i z e f 0 ( x ) x ∈ R n {\rm minimize}\quad f_0(\bm x) \quad \bm x\in\mathbb R^n minimizef0(x)x∈Rn s u b j e c t t o f i ( x ) ≤ 0 , i = 1 , ⋯   , m h j ( x ) = 0 , j = 1 , ⋯   , p \quad\quad\quad\quad\quad\begin{aligned}{\rm subject\ to}\quad &f_i(\bm x)\leq0,\quad i=1,\cdots,m\\&h_j(\bm x)=0,\quad j=1,\cdots,p \end{aligned} subject tofi(x)≤0,i=1,⋯,mhj(x)=0,j=1,⋯,p优化变量: x ∈ R n \bm x\in\mathbb R^n x∈Rn;
最优化问题求解非常困难,原因如下:
而优化问题的上述困难可以借助凸优化技术加以克服。
本质上,凸优化就是凸集约束下凸(或凹)目标函数的极小(或极大化)。
m i n i m i z e f 0 ( x ) x ∈ R n {\rm minimize}\quad f_0(\bm x) \quad \bm x\in\mathbb R^n minimizef0(x)x∈Rn s u b j e c t t o f i ( x ) ≤ 0 , i = 1 , ⋯   , m h j ( x ) = 0 , j = 1 , ⋯   , p \quad\quad\quad\quad\quad\begin{aligned}{\rm subject\ to}\quad &f_i(\bm x)\leq0,\quad i=1,\cdots,m\\&h_j(\bm x)=0,\quad j=1,\cdots,p \end{aligned} subject tofi(x)≤0,i=1,⋯,mhj(x)=0,j=1,⋯,p
一般的带约束优化问题是怎么解的呢?回顾考研的数学学习,发现通常是将带约束的优化问题转变为拉格朗日函数的无约束优化问题。这也启发我们将上文介绍的优化问题转变成无约束优化问题,那借助什么转变呢?
还是拉格朗日乘子法,但是机器学习中的优化问题会和考研那种题型一样简单吗?当然不会!那能用那种简单粗暴的对各个拉格朗日函数 L ( x , y , z , λ , η ) \mathcal L(x,y,z,\lambda,\eta) L(x,y,z,λ,η)的自变量求偏导、联立解方程、求驻点、比较驻点函数值大小求极值的方法来处理吗?不行!因为我们的限制条件不仅只有等于号方程的限制,还有小于等于号的限制。那对于小于号不等式方程的限制,我先求全局极值点,然后判断这些极值点是否在限制范围之内进而选取可行的极值点行不行?不行!优化的目标函数和限制条件关系非常紧密,不考虑限制条件直接求优化目标函数之后再反带驻点看是否满足限制条件一则可行性不高(优化目标函数通常无法直接求极值,因为信息量太少,多数信息量都隐藏着在限制条件中)、二则即便勉强能行,解起来也会让人望而却步,头皮发麻,天旋地转。
总之,考研中的拉格朗日函数解法我们可以理解成启蒙版最优化解法,成不了主戏和正餐,我们只是在这里让考研版拉格朗日函数抛砖引玉。
相信接触过凸优化的同志们都听过原始问题、对偶问题、原始变量、对偶变量这些名词,那么他们是怎么来的呢?为此我们接下来要正式引入拉格朗日乘子法。
利用拉格朗日乘子法,约束优化问题可以松弛为为无约束优化问题。
原始问题(primal problem)
原始问题是广义Lagrangian函数的极小–极大问题,为什么呢?首先表示出来 p ⋆ = m i n x m a x λ , ν : λ i ≥ 0 L ( x , λ , ν ) = m i n x θ P ( x ) \begin{aligned}p^\star&=\underset{\bm x}{\rm min}\underset{\bm \lambda,\bm \nu:\lambda_i\geq0}{\rm max}L(\bm x,\bm \lambda,\bm \nu)\\ &=\underset{\bm x}{\rm min}\quad\theta_P(\bm x) \end{aligned} p⋆=xminλ,ν:λi≥0maxL(x,λ,ν)=xminθP(x) 这里的 θ P ( x ) : = m a x λ , ν : λ i ≥ 0 L ( x , λ , ν ) \theta_P(\bm x)\ :=\underset{\bm \lambda,\bm \nu:\lambda_i\geq0}{\rm max}L(\bm x,\bm \lambda,\bm \nu) θP(x) :=λ,ν:λi≥0maxL(x,λ,ν),那么为什么计算极小—极大问题就等同于计算原始凸优化问题呢?接下来我们研究 θ P ( x ) \theta_P(\bm x) θP(x),在研究之前,必须保证有这种意识,即在计算 θ P ( x ) \theta_P(\bm x) θP(x)的过程中,其实变动的是对偶变量 λ , ν \bm \lambda,\bm \nu λ,ν,我们必须将原始变量 x \bm x x当成常数对待,此时,Lagrangian函数 L ( x , λ , ν ) L(\bm x,\bm \lambda,\bm \nu) L(x,λ,ν)是关于变量 λ \bm \lambda λ和 ν \bm \nu ν的仿射函数。有了这点作保证,接下来进入 θ P ( x ) \theta_P(\bm x) θP(x)的具体分析:
如果 f i ( x ) > 0 , i ∈ { 1 , ⋯   , m } f_i(\bm x)>0,\ i\in\{1,\cdots,m\} fi(x)>0, i∈{1,⋯,m},则 λ i = + ∞ , 其 余 λ j : j 不 等 于 i = 0 \lambda_i=+\infty,其余\lambda_{j:j不等于i}=0 λi=+∞,其余λj:j不等于i=0,从而导致 θ P ( x ) = + ∞ \theta_P(\bm x)=+\infty θP(x)=+∞;
如果 h j ( x ) h_j(\bm x) hj(x)≠ 0 , j ∈ { 1 , ⋯   , p } 0,\ j\in\{1,\cdots,p\} 0, j∈{1,⋯,p},则令 ν j = + ∞ \nu_j=+\infty νj=+∞或 − ∞ -\infty −∞,从而也会有 θ P ( x ) = + ∞ \theta_P(\bm x)=+\infty θP(x)=+∞。
如果 x \bm x x满足原始全部约束,即 x \bm x x在可行域内,则 θ P ( x ) = f 0 ( x ) \theta_P(\bm x)=f_0(\bm x) θP(x)=f0(x)。
从以上可以看出, θ P ( x ) \theta_P(\bm x) θP(x)保证了原始问题的最小值落在了可行域内,如果 x \bm x x不在可行域内,由于 θ P ( x ) → + ∞ \theta_P(\bm x)\to+\infty θP(x)→+∞,使得可行域外 θ P ( x ) \theta_P(\bm x) θP(x)没有最小值。
对偶问题(dual problem)
对偶问题通常要比他对应的原始问题更容易求解。
原始问题的对偶问题的最优解我们标记为 d ⋆ d^\star d⋆,对偶问题是广义Lagrangian函数的极大—极小问题,对偶问题的解 d ⋆ d^\star d⋆,数学描述为: d ⋆ = m a x λ , ν : λ i ≥ 0 m i n x L ( x , λ , ν ) = m a x λ , ν : λ i ≥ 0 θ D ( λ , ν ) \begin{aligned}d^\star&=\underset{\bm \lambda,\bm \nu:\lambda_i\geq0}{\rm max}\underset{\bm x}{\rm min}L(\bm x,\bm \lambda,\bm \nu)\\ &=\underset{\bm \lambda,\bm \nu:\lambda_i\geq0}{\rm max}\theta_D(\bm\lambda,\bm\nu) \end{aligned} d⋆=λ,ν:λi≥0maxxminL(x,λ,ν)=λ,ν:λi≥0maxθD(λ,ν) 这里 θ D ( λ , ν ) : = m i n x L ( x , λ , ν ) \theta_D(\bm\lambda,\bm\nu):\ =\underset{\bm x}{\rm min}L(\bm x,\bm \lambda,\bm \nu) θD(λ,ν): =xminL(x,λ,ν)是Lagrangian对偶函数,更为细致的描述如下: θ D ( λ , ν ) = i n f x ( f 0 ( x ) + ∑ i = 1 m λ i f i ( x ) + ∑ j = 1 p ν i h j ( x ) ) \theta_D(\bm\lambda,\bm\nu)=\underset{\bm x}{\rm inf}\left(f_0(\bm x)+\sum^m_{i=1}\lambda_if_i(\bm x)+\sum^p_{j=1}\nu_ih_j(\bm x)\right) θD(λ,ν)=xinf(f0(x)+i=1∑mλifi(x)+j=1∑pνihj(x)) 接下来我们要说点重要的事情了,是什么呢?
Lagrangian对偶函数 θ D ( λ , ν ) \theta_D(\bm\lambda,\bm\nu) θD(λ,ν)一定是凹函数,即使目标函数 f 0 ( x ) f_0(\bm x) f0(x)不是凸函数;不等式约束函数 f i ( x ) f_i(\bm x) fi(x)必须是凸函数,等式约束函数 h j ( x ) h_j(\bm x) hj(x)必须是仿射函数,因为我们要保证可行域是凸集。而凹函数任何一个局部极值点都是全局极值点,这也是我们为什么把原函数转换为对偶函数求解的目的之一。现在的困惑是为什么Lagrangian对偶函数是凹函数,怎么证明?
其实和上面看待 θ P ( x ) \theta_P(\bm x) θP(x)的角度类似,这里研究Lagrangian对偶函数时,是把对偶变量 λ , ν \bm \lambda,\bm\nu λ,ν看成一对常量,变动原始变量 x \bm x x,但是不止于此,我们仍需要做一件事,那就是把变动的 x \bm x x看成是有无穷多个离散的常量 x 1 , ⋯   , x n , n → ∞ \bm x_1,\cdots,\bm x_n,n\to\infty x1,⋯,xn,n→∞,为什么这样看待呢?因为这样才能恰如其分的发挥仿射函数既凸又凹的奇效,用这种角度表示的Lagrangian对偶函数如下: (公式1) θ D ( λ , ν ) = m i n { L ( x 1 , λ , ν ) , L ( x 2 , λ , ν ) , ⋯   , L ( x n , λ , ν ) } n → ∞ \theta_D(\bm\lambda,\bm\nu)={\rm min}\left\{L(\bm x_1,\bm \lambda,\bm\nu),L(\bm x_2,\bm \lambda,\bm\nu),\cdots,L(\bm x_n,\bm \lambda,\bm\nu)\right\}\quad n\to\infty\tag{公式1} θD(λ,ν)=min{L(x1,λ,ν),L(x2,λ,ν),⋯,L(xn,λ,ν)}n→∞(公式1) 接下来的问题就是,如何证明对偶函数 θ D ( λ , ν ) \theta_D(\bm\lambda,\bm\nu) θD(λ,ν)是凹函数。如果我们能证下式 (公式2) θ D ( η ( λ 1 , ν 1 ) + ( 1 − η ) ( λ 2 , ν 2 ) ) ≥ η θ D ( λ 1 , ν 1 ) + ( 1 − η ) θ D ( λ 2 , ν 2 ) \theta_D(\eta(\bm\lambda_1,\bm\nu_1)+(1-\eta)(\bm\lambda_2,\bm\nu_2))\geq\eta\theta_D(\bm\lambda_1,\bm\nu_1)+(1-\eta)\theta_D(\bm\lambda_2,\bm\nu_2)\tag{公式2} θD(η(λ1,ν1)+(1−η)(λ2,ν2))≥ηθD(λ1,ν1)+(1−η)θD(λ2,ν2)(公式2)成立,则就证明了对偶函数 θ D ( λ , ν ) \theta_D(\bm\lambda,\bm\nu) θD(λ,ν)是凹函数。
证明:由(公式一)可知, θ D ( η ( λ 1 , ν 1 ) + ( 1 − η ) ( λ 2 , ν 2 ) ) = m i n { L [ x 1 , η ( λ 1 , ν 1 ) + ( 1 − η ) ( λ 2 , ν 2 ) ] , L [ x 2 , η ( λ 1 , ν 1 ) + ( 1 − η ) ( λ 2 , ν 2 ) ] , ⋯   , L [ x n , η ( λ 1 , ν 1 ) + ( 1 − η ) ( λ 2 , ν 2 ) ] } ≥ m i n { η L [ x 1 , ( λ 1 , ν 1 ) ] + ( 1 − η ) L [ x 1 , ( λ 2 , ν 2 ) ] , η L [ x 2 , ( λ 1 , ν 1 ) ] + ( 1 − η ) L [ x 2 , ( λ 2 , ν 2 ) ] , ⋯   , η L [ x n , ( λ 1 , ν 1 ) ] + ( 1 − η ) L [ x n , ( λ 2 , ν 2 ) ] } ≥ η m i n { L ( x 1 , λ 1 , ν 1 ) , L ( x 2 , λ 1 , ν 1 ) , ⋯   , L ( x n , λ 1 , ν 1 ) } + ( 1 − η ) m i n { L ( x 1 , λ 2 , ν 2 ) , L ( x 2 , λ 2 , ν 2 ) , ⋯   , L ( x n , λ 2 , ν 2 ) } = η θ D ( λ 1 , ν 1 ) + ( 1 − η ) θ D ( λ 2 , ν 2 ) \begin{aligned} &\theta_D(\eta(\bm\lambda_1,\bm\nu_1)+(1-\eta)(\bm\lambda_2,\bm\nu_2))\\ &={\rm min}\left\{L[\bm x_1,\eta(\bm\lambda_1,\bm\nu_1)+(1-\eta)(\bm\lambda_2,\bm\nu_2)],L[\bm x_2,\eta(\bm\lambda_1,\bm\nu_1)+(1-\eta)(\bm\lambda_2,\bm\nu_2)],\cdots,L[\bm x_n,\eta(\bm\lambda_1,\bm\nu_1)+(1-\eta)(\bm\lambda_2,\bm\nu_2)]\right\}\\ &\geq{\rm min}\left\{\eta L[\bm x_1,(\bm\lambda_1,\bm\nu_1)]+(1-\eta)L[\bm x_1,(\bm\lambda_2,\bm\nu_2)],\eta L[\bm x_2,(\bm\lambda_1,\bm\nu_1)]+(1-\eta)L[\bm x_2,(\bm\lambda_2,\bm\nu_2)],\cdots,\eta L[\bm x_n,(\bm\lambda_1,\bm\nu_1)]+(1-\eta)L[\bm x_n,(\bm\lambda_2,\bm\nu_2)]\right\}\\ &\geq\eta\ {\rm min}\left\{L(\bm x_1,\bm \lambda_1,\bm\nu_1),L(\bm x_2,\bm \lambda_1,\bm\nu_1),\cdots,L(\bm x_n,\bm \lambda_1,\bm\nu_1)\right\}+\\ &(1-\eta){\rm min}\left\{L(\bm x_1,\bm \lambda_2,\bm\nu_2),L(\bm x_2,\bm \lambda_2,\bm\nu_2),\cdots,L(\bm x_n,\bm \lambda_2,\bm\nu_2)\right\}\\ &=\eta\theta_D(\bm\lambda_1,\bm\nu_1)+(1-\eta)\theta_D(\bm\lambda_2,\bm\nu_2) \end{aligned} θD(η(λ1,ν1)+(1−η)(λ2,ν2))=min{L[x1,η(λ1,ν1)+(1−η)(λ2,ν2)],L[x2,η(λ1,ν1)+(1−η)(λ2,ν2)],⋯,L[xn,η(λ1,ν1)+(1−η)(λ2,ν2)]}≥min{ηL[x1,(λ1,ν1)]+(1−η)L[x1,(λ2,ν2)],ηL[x2,(λ1,ν1)]+(1−η)L[x2,(λ2,ν2)],⋯,ηL[xn,(λ1,ν1)]+(1−η)L[xn,(λ2,ν2)]}≥η min{L(x1,λ1,ν1),L(x2,λ1,ν1),⋯,L(xn,λ1,ν1)}+(1−η)min{L(x1,λ2,ν2),L(x2,λ2,ν2),⋯,L(xn,λ2,ν2)}=ηθD(λ1,ν1)+(1−η)θD(λ2,ν2) 下面对上面证明中的不等式进行说明:
接下来求对偶函数 θ D ( λ , ν ) \theta_D(\bm\lambda,\bm\nu) θD(λ,ν)的最大值后,就完成了对偶问题的求解过程。
即对偶问题的值 d ⋆ d^\star d⋆小于等于原始问题的值 p ⋆ p^\star p⋆,即 θ D ( λ , ν ) ≤ d ⋆ ≤ p ⋆ ≤ θ P ( x ) \theta_D(\bm\lambda,\bm\nu)\leq d^\star\leq p^\star\leq\theta_P(\bm x) θD(λ,ν)≤d⋆≤p⋆≤θP(x)这就是通常优化问题的弱对偶性。问题是为什么呢?
下面证明不等式 m a x x m i n y f ( x , y ) ≤ m i n y x m a x f ( x , y ) \underset{\bm x}{\rm max}\ \underset{\bm y}{\rm min}f(\bm x,\bm y)\leq\underset{\bm y}{\rm min}\underset{\bm x}\ {\rm max}f(\bm x,\bm y) xmax yminf(x,y)≤yminx maxf(x,y)
证明:对于任意的 ( x , y ) ∈ d o m f (\bm x,\bm y)\in{\rm dom}f (x,y)∈domf f ( x , y ) ≤ m a x x f ( x , y ) ⇒ m i n y f ( x , y ) ≤ m i n y m a x x f ( x , y ) ⇒ m a x x m i n y f ( x , y ) ≤ m i n y x m a x f ( x , y ) \begin{aligned}&f(\bm x,\bm y)\leq\underset{\bm x}{\rm max}f(\bm x,\bm y)\\ &\Rightarrow\underset{\bm y}{\rm min}f(\bm x,\bm y)\leq\underset{\bm y}{\rm min}\underset{\bm x}{\rm max}f(\bm x,\bm y)\\ &\Rightarrow\underset{\bm x}{\rm max}\ \underset{\bm y}{\rm min}f(\bm x,\bm y)\leq\underset{\bm y}{\rm min}\underset{\bm x}\ {\rm max}f(\bm x,\bm y) \end{aligned} f(x,y)≤xmaxf(x,y)⇒yminf(x,y)≤yminxmaxf(x,y)⇒xmax yminf(x,y)≤yminx maxf(x,y)这里面蕴藏着一个道理,求其上着得其中,求其中者得起下,求其下者无所得。《论语》也说过,取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣。做事起初的眼界和格局就很大程度上决定了我们能到达的高度,心里若只有三尺土地,又怎能鹏程万里、遍历无限山河?不过做事时一定要脚踏实地、稳步开来,有没有糊弄、将就每一个细小节目,自己心里最清楚。
若要求对偶函数的最大值等于原始问题的最小值,则需满足: f 0 ( x ⋆ ) = θ D ( λ ⋆ , ν ⋆ ) = i n f x ( f 0 ( x ) + ∑ i = 1 m λ i ⋆ f i ( x ) + ∑ j = 1 p ν i ⋆ h j ( x ) ) ≤ f 0 ( x ⋆ ) + ∑ i = 1 m λ i ⋆ f i ( x ⋆ ) + ∑ j = 1 p ν i ⋆ h j ( x ⋆ ) ≤ f 0 ( x ⋆ ) \begin{aligned} f_0(\bm x^\star)&=\theta_D(\bm\lambda^\star,\bm\nu^\star)\\ &=\underset{\bm x}{\rm inf}\left(f_0(\bm x)+\sum^m_{i=1}\lambda^\star_if_i(\bm x)+\sum^p_{j=1}\nu^\star_ih_j(\bm x)\right)\\ &\leq f_0(\bm x^\star)+\sum^m_{i=1}\lambda^\star_if_i(\bm x^\star)+\sum^p_{j=1}\nu^\star_ih_j(\bm x^\star)\\ &\leq f_0(\bm x^\star) \end{aligned} f0(x⋆)=θD(λ⋆,ν⋆)=xinf(f0(x)+i=1∑mλi⋆fi(x)+j=1∑pνi⋆hj(x))≤f0(x⋆)+i=1∑mλi⋆fi(x⋆)+j=1∑pνi⋆hj(x⋆)≤f0(x⋆) 由此也顺利引出了满足强对偶性的KKT条件。
说明,KKT条件不是Lagrangian函数对偶无约束优化问题的最优解等于原始约束优化问题的最优解的充分条件,只是必要条件;如果再加上一条原始约束优化问题为凸优化问题,即可成为充分条件。
换一种说法,凸优化问题可以利用满足KKT条件实现强对偶性,这是其中一种方法。
还有一种方法就是Slater条件。
自己google吧。