最优化之凸集、凸函数、上确界、Jensen不等式、共轭函数、Fenchel不等式、拉格朗日乘子法、KKT条件

最优化之凸集、凸函数、上确界、Jensen不等式、共轭函数、Fenchel不等式、拉格朗日乘子法、KKT条件、拉格朗日对偶


1.直线的向量表达

1.1 共线定理

对于任意两个向量 a ⃗ , b ⃗ \vec{a}, \vec{b} a ,b b ⃗ ≠ 0 \vec{b} \neq 0 b ̸=0,当 a ⃗ ∣ ∣ b ⃗ \vec{a}||\vec{b} a b 时,存在唯一实数 λ \lambda λ,使得 a ⃗ = λ b ⃗ \vec{a}=\lambda \vec{b} a =λb

1.2 共面定理

如果两个向量 a ⃗ , b ⃗ \vec{a},\vec{b} a ,b 不共线,则向量 p ⃗ \vec{p} p 与向量 a ⃗ , b ⃗ \vec{a},\vec{b} a ,b 共面的充要条件是存在唯一的实数对 x , y x,y x,y,使得
p ⃗ = x a ⃗ + y b ⃗ \vec{p}=x\vec{a} + y\vec{b} p =xa +yb

1.3 直线的向量参数方程

在这里插入图片描述

使用上图作为参考,我们得到:
对于直线上任意第一点 P P P,我们有
A P ⃗ = θ A B ⃗ \vec{AP} = \theta\vec{AB} AP =θAB
(1) O P ⃗ = O A ⃗ + A P ⃗ = O A ⃗ + θ A B ⃗ = O A ⃗ + θ ( A O ⃗ + O B ⃗ ) = O A ⃗ + θ A O ⃗ + θ O B ⃗ = O A ⃗ − θ O A ⃗ + θ O B ⃗ = ( 1 − θ ) O A ⃗ + θ O B ⃗ \begin{aligned} \vec{OP} &= \vec{OA} + \vec{AP} \\ &= \vec{OA} + \theta\vec{AB}\\ &= \vec{OA} + \theta(\vec{AO} + \vec{OB}) \\ &= \vec{OA} +\theta \vec{AO} + \theta \vec{OB}\\ &=\vec{OA} - \theta \vec{OA} + \theta \vec{OB}\\ &= (1 - \theta) \vec{OA} + \theta \vec{OB}\\ \tag{1} \end{aligned} OP =OA +AP =OA +θAB =OA +θ(AO +OB )=OA +θAO +θOB =OA θOA +θOB =(1θ)OA +θOB (1)
O O O为原点 ( 0 , 0 ) (0,0) (0,0),假设 A A A点坐标为 ( 5 , 1 ) (5,1) (5,1) B B B点坐标为 ( 2 , 3 ) (2,3) (2,3)。则对于 θ ∈ R \theta \in R θR有, P P P ( x , y ) (x, y) (x,y) A , B A,B A,B两点共线。根据公式1有:
( x , y ) ⃗ = ( 1 − θ ) ⋅ ( 5 , 1 ) ⃗ + θ ⋅ ( 2 , 3 ) ⃗ \vec{(x,y)} = (1-\theta) \cdot \vec{(5,1)} + \theta \cdot \vec{(2,3)} (x,y) =(1θ)(5,1) +θ(2,3)
则有
(2) { x = ( 1 − θ ) ⋅ 5 + θ ⋅ 2 y = ( 1 − θ ) ⋅ 1 + θ ⋅ 3 , θ ∈ R \begin{cases} x = (1-\theta) \cdot 5 + \theta \cdot 2 \\ y = (1-\theta) \cdot 1 + \theta \cdot 3 \\ \end{cases} , \theta \in R \tag{2} {x=(1θ)5+θ2y=(1θ)1+θ3,θR(2)

θ ∈ R \theta \in R θR时,点 P P P ( x , y ) (x,y) (x,y)表示的是过点 A , B A,B A,B的直线;而当 θ ∈ [ 0 , 1 ] \theta \in [0,1] θ[0,1]时,点 P P P ( x , y ) (x,y) (x,y)表示的是线段 A B AB AB

对于三维平面及以上之后再补充论证。

2. 凸集

2.1 仿射集

仿射集:如通过集合 C C C中任意两个不同点 a , b a,b a,b直线仍在集合 C C C内,则称集合 C C C为仿射集。
∀ a , b ∈ C , ∀ θ ∈ R , 则 c = θ ⋅ a + ( 1 − θ ) ⋅ b ∈ C \forall a,b \in C, \forall \theta \in R, 则c = \theta \cdot a + (1-\theta) \cdot b \in C a,bC,θR,c=θa+(1θ)bC

2.2 凸集

凸集:如通过集合 C C C中任意两个不同点 a , b a,b a,b线段仍在集合 C C C内,则称集合 C C C为凸集。
∀ a , b ∈ C , ∀ θ ∈ [ 0 , 1 ] , 则 c = θ ⋅ a + ( 1 − θ ) ⋅ b ∈ C \forall a,b \in C, \forall \theta \in [0,1], 则c = \theta \cdot a + (1-\theta) \cdot b \in C a,bC,θ[0,1],c=θa+(1θ)bC
在这里插入图片描述

3. 凸函数

3.1 凸函数定义

若函数 f f f的定义域 d o m f domf domf为凸集,且满足
∀ x 1 , x 2 ∈ d o m f , θ ∈ [ 0 , 1 ] , 有 f ( θ x 1 + ( 1 − θ ) x 2 ) ≤ θ f ( x 1 ) + ( 1 − θ ) f ( x 2 ) \forall x_1,x_2 \in domf, \theta \in [0,1], 有 f(\theta x_1 + (1-\theta)x_2) \leq \theta f(x_1) + (1-\theta)f(x_2) x1,x2domf,θ[0,1],f(θx1+(1θ)x2)θf(x1)+(1θ)f(x2)
则该函数 f f f为凸函数。其中,我们可以将 θ x 1 + ( 1 − θ ) x 2 \theta x_1 + (1-\theta)x_2 θx1+(1θ)x2看做公式2中计算的 x x x,将 θ f ( x 1 ) + ( 1 − θ ) f ( x 2 ) \theta f(x_1) + (1-\theta)f(x_2) θf(x1)+(1θ)f(x2)看做公式2中计算的 y y y,这样的话该公式
简而言之,就是函数 f f f上的任意两点 a , b a,b a,b连接成的线段,都在 a , b a,b a,b之间函数 f f f取值之上。如图所示(图中的 t t t与上文中 θ \theta θ相同):
在这里插入图片描述

如果一个函数是凸函数,那该函数的图像上方区域一定是凸集;同样的,一个函数图像的上方区域是凸集,那么该函数为凸函数。

3.2 保持函数凸性的算子
  1. 凸函数的非负加权和:
    f ( x ) = θ 1 f 1 ( x ) + θ 2 f 2 ( x ) + ⋯ + θ n f n ( x ) ,   θ n > 0 f(x) = \theta_1f_1(x)+ \theta_2f_2(x) + \dots + \theta_nf_n(x),\ \theta_n > 0 f(x)=θ1f1(x)+θ2f2(x)++θnfn(x), θn>0
  2. 凸函数与仿射函数的复合函数:
    y = u 2 是 凸 函 数 , u = a x + b ( 直 线 为 仿 射 函 数 ) , 则 y = ( a x + b ) 2 为 凸 函 数 y=u^2是凸函数,u= ax+b(直线为仿射函数),则y=(ax+b)^2为凸函数 y=u2u=ax+b(线仿),y=(ax+b)2
  3. 凸函数的逐点最大值构成的函数:
    f ( x ) = m a x { f 1 ( x ) , f 2 ( x ) , … , f n ( x ) } f(x) = max\{f_1(x),f_2(x), \dots,f_n(x)\} f(x)=max{f1(x),f2(x),,fn(x)}即选取在定义域中,各个函数对于每一点的最大值组合成的函数,同样为凸函数
  4. 凸函数的逐点上确界构成的函数

4. Jensen 不等式

Jensen不等式是将上述的凸函数性质拓展到了 n n n个点上了。

对于任意点集 { x 1 , x 2 , … , x n } \{x_1,x_2,\dots,x_n\} {x1,x2,,xn},若 θ i ≥ 0 , ∑ i = 1 n θ i = 1 \theta_i \geq 0, \sum_{i=1}^{n}\theta_i = 1 θi0,i=1nθi=1,则对于凸函数 f ( x ) f(x) f(x)有:
f ( ∑ i = 1 m θ i x i ) ≤ ∑ i = 1 m θ i f ( x i ) f(\sum_{i=1}^{m}\theta_ix_i) \leq \sum_{i=1}^{m}\theta_if(x_i) f(i=1mθixi)i=1mθif(xi)

证明用数学归纳法。

在概率论中,如果把 θ i \theta_i θi看做是 x i x_i xi的离散概率分布,那可以将上式改写为:
f ( E [ x ] ) ≤ E [ f ( x ) ] f(E[x])\leq E[f(x)] f(E[x])E[f(x)]
其中, E [ ⋅ ] E[\cdot] E[]表示数学期望。

对于连续变量,有:
f ( ∫ x p ( x ) d x ) ≤ ∫ f ( x ) p ( x ) d x f(\int xp(x)dx) \leq \int f(x)p(x)dx f(xp(x)dx)f(x)p(x)dx

5. 共轭函数(对偶函数)

定义

对于原函数(不一定是凸函数) f ( x ) , x ∈ d o m f f(x),x\in domf f(x),xdomf,其共轭函数为:
f ∗ ( y ) = sup ⁡ x ∈ d o m f ( &lt; y , x &gt; − f ( x ) ) f^*(y) = \sup _{x\in domf}(&lt;y,x&gt;-f(x)) f(y)=xdomfsup(<y,x>f(x))
其中, &lt; y , x &gt; &lt;y,x&gt; <y,x>为两个变量的內积

  • 对于标量: &lt; y , x &gt; = y x &lt;y,x&gt;=yx <y,x>=yx
  • 对于向量: &lt; y , x &gt; = y T x &lt;y,x&gt;=y^Tx <y,x>=yTx
  • 对于 n × n n\times n n×n矩阵: &lt; y , x &gt; = t r ( y x ) &lt;y,x&gt;=tr(yx) <y,x>=tr(yx)
    特别注意的是,共轭函数的定义域 d o m f ∗ domf^* domf要求对于 x ∈ d o m f x\in domf xdomf时, &lt; y , x &gt; − f ( x ) &lt;y,x&gt;-f(x) <y,x>f(x)有上界,即 f ∗ ( y ) f^*(y) f(y)不能无穷大。
物理意义

对于共轭函数 f ∗ ( y ) f^*(y) f(y),我们可以将 &lt; y , x &gt; &lt;y,x&gt; <y,x>看成是一条过原点的直线。那么 y y y就可以看做是直线的斜率,一个 y y y对应一条直线。

那么共轭函数的意思就是,对于每一条直线,求在原函数定义域 d o m f domf domf(即 x x x可以取得值中)上,直线与原函数对应点距离最大的值(上确界)。

如图:
在这里插入图片描述

当什么时候对于确定的直线,与原函数的差最大呢?答案是:当原函数切线与直线斜率相同的点,差值最大。

这一结论可以通过上图直接观察得出,也可通过求导得到,如下:
∂ ( &lt; y , x &gt; − f ( x ) ) ∂ x = y − f ′ ( x ) = 0 \frac{\partial (&lt;y,x&gt;-f(x))}{\partial x} = y - f&#x27;(x)=0 x(<y,x>f(x))=yf(x)=0
所以通过上式我们能看到,当 f ′ ( x ) = y f&#x27;(x)=y f(x)=y时得到极值。

参看博客以及计算示例
矩阵的共轭函数计算示例

共轭函数的性质
  1. 共轭函数一定是凸函数
  2. 凸函数的共轭函数的共轭函数是其本身

6. Fenchel不等式

根据共轭函数的定义我们知道, f ∗ ( y ) f^*(y) f(y)是对于 &lt; y , x &gt; − f ( x ) &lt;y,x&gt;-f(x) <y,x>f(x)的上确界,则一定有:
f ∗ ( y ) ≥ &lt; y , x &gt; − f ( x ) f^*(y) \geq &lt;y,x&gt;-f(x) f(y)<y,x>f(x)
则有
f ( x ) + f ∗ ( y ) ≥ &lt; y , x &gt; f(x)+f^*(y) \geq &lt;y,x&gt; f(x)+f(y)<y,x>

7. 凸优化问题

在优化问题中,凸优化问题有以下集中形式:

  1. 对于一个含约束的优化问题
    min ⁡ x f ( x ) s . t .    x ∈ C \min_xf(x)\\ s.t.\ \ x \in C xminf(x)s.t.  xC
    其中, f ( x ) f(x) f(x)是一个凸函数,变量 x x x的可行域 C C C是一个凸集,该问题就是一个凸优化问题。
  2. 对于一个含不等式约束的优化问题
    min ⁡ x f ( x ) s . t .    h i ( x ) = 0 s . t .    g i ( x ) ≤ 0 \min_xf(x)\\ s.t. \ \ h_i(x) =0\\ s.t. \ \ g_i(x) \leq 0 xminf(x)s.t.  hi(x)=0s.t.  gi(x)0
    其中, f ( x ) f(x) f(x)是一个凸函数, g i ( x ) g_i(x) gi(x)是凸函数, h i ( x ) h_i(x) hi(x)是仿射函数(这样的要求是为了保证可行域是一个凸集),该问题就是一个凸优化问题。
    凸优化问题对于约束条件的要求

8. 拉格朗日乘子法

在数学中的最优化问题中,拉格朗日乘数法是一种寻求多元函数在其变量受到一个或多个等式约束条件时的极值的方法,即

x ∗ = arg ⁡ min ⁡ x f ( x ) s u b j e c t   t o   g i ( x ) = 0 , ∀ i = 1 , 2 , … , k x^* = \arg \min_x f(x)\\ subject\ to\ g_i(x) = 0, \forall i = 1,2,\dots,k x=argxminf(x)subject to gi(x)=0,i=1,2,,k

这种方法可以将一个有 n n n个变量与 k k k个约束条件的最优化问题转换为一个解有 n + k n+k n+k个变量的方程组的解的问题。

这种方法中引入了一个或一组新的未知数,即拉格朗日乘数,又称拉格朗日乘子,他们是转换后的方程,即约束方程中作为梯度的线性组合中各个向量的系数。

比如,求 f ( x , y ) f(x,y) f(x,y) g ( x , y ) = 0 g(x,y)=0 g(x,y)=0是的最大值是,我们引入新的变量拉格朗日乘数 λ \lambda λ,这时我们只需要求解下列拉格朗日函数的取得极值时的 λ \lambda λ即可得到所需的函数极值。

L ( x , y , λ ) = f ( x , y ) + λ ( g ( x , y ) ) L(x,y,\lambda) = f(x,y) + \lambda(g(x,y)) L(x,y,λ)=f(x,y)+λ(g(x,y))

更一般地,对于含有 n n n个变量和 k k k个约束的情况,有:
L ( x 1 , … , x n , λ 1 , … , λ k ) = f ( x 1 , … , x n ) − ∑ i = 1 k λ i ( g i ( x 1 , … , x n ) ) L(x_1,\dots,x_n,\lambda_1,\dots,\lambda_k) = f(x_1,\dots,x_n)-\sum_{i=1}^{k}\lambda_i(g_i(x_1,\dots,x_n)) L(x1,,xn,λ1,,λk)=f(x1,,xn)i=1kλi(gi(x1,,xn))
通过求导计算
∇ L ( x 1 , … , x n , λ 1 , … , λ k ) = 0 \nabla L(x_1,\dots,x_n,\lambda_1,\dots,\lambda_k)=0 L(x1,,xn,λ1,,λk)=0
得到方程组,解方程组即可求得多组满足约束的点,将各个解带入原方程 f ( x 1 , … , x n ) f(x_1,\dots,x_n) f(x1,,xn),其中最大(小)的值即为所求的在满足约束情况下的极值。

为什么这样做可以求得最优化解?

在这里插入图片描述
如图所示,当满足约束条件 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0时,只有满足的这一点与 f ( x , y ) f(x,y) f(x,y)的等高线相切,才可能是极值。因为如果只是相交的话,那必定在该点的两侧中,有其他的点,使得 f ( x , y ) f(x,y) f(x,y)取值更大。
在这里插入图片描述

通过上述,可将问题转化为:

找到 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0上的一点,这一点 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0 f ( x , y ) = d f(x,y)=d f(x,y)=d的梯度共线。
可将这句话拆分成三个条件
g ( x , y ) = 0 ∂ f ( x , y ) ∂ x = λ ∂ g ( x , y ) ∂ x ∂ f ( x , y ) ∂ y = λ ∂ g ( x , y ) ∂ y g(x,y)=0\\ \frac{\partial f(x,y)}{\partial x}=\lambda \frac{\partial g(x,y)}{\partial x}\\ \frac{\partial f(x,y)}{\partial y}=\lambda \frac{\partial g(x,y)}{\partial y} g(x,y)=0xf(x,y)=λxg(x,y)yf(x,y)=λyg(x,y)
这三个式子其实就是按照拉格朗日乘子法构建的新函数的梯度等于零时的方程组:
∇ L ( x , y , λ ) = 0 \nabla L(x,y,\lambda)=0 L(x,y,λ)=0

例子 1

在这里插入图片描述
在这里插入图片描述

例子 2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

凸优化中为什么要用到拉格朗日乘子法?

对于普通的优化问题,我们可以直接使用求导来计算函数的极小值。

但是,当有几个约束条件之后,原函数是什么样子,我们很难搞清楚了。即使通过使用消元法,有时往往也难以求解。

这时,使用拉格朗日乘子法,能够较为方便的求解函数的极值。

9. KKT条件

上面的拉格朗日乘子法能够解决在有等式约束条件下的最优化求值问题。Karush-Kuhn-Tucker(KKT)条件将拉格朗日乘子法扩展到了有不等式约束条件下时的最优化求值问题。

问题用数学公式表示为:
x ∗ = arg ⁡ min ⁡ x f ( x ) s u b j e c t   t o   h i ( x ) = 0 , ∀ i = 1 , 2 , … , m s u b j e c t   t o   g i ( x ) ≤ 0 , ∀ i = 1 , 2 , … , n x^* = \arg \min_x f(x)\\ subject\ to\ h_i(x)=0,\forall i = 1,2,\dots,m\\ subject\ to\ g_i(x)\leq 0,\forall i = 1,2,\dots,n x=argxminf(x)subject to hi(x)=0,i=1,2,,msubject to gi(x)0,i=1,2,,n

这里,我们一般求解最优化问题的时候,并不在意最大值和最小值的值是多少,而是极值点的是什么,因此上述问题中用 x ∗ = arg ⁡ min ⁡ x f ( x ) x^* = \arg \min_x f(x) x=argminxf(x)来表示问题。

同样的,为了求解在有 m m m个等式约束 h i ( x ) h_i(x) hi(x) n n n个不等式约束 g i ( x ) g_i(x) gi(x)的情况下 f ( x ) f(x) f(x)的最优解。我们将问题转换成 :

把损失函数和约束条件放到同一个最小化问题中,在等式约束前乘以拉格朗日乘数 λ i \lambda_i λi,在不等式约束前乘以KKT乘数 μ i \mu_i μi,从而得到如下最优化问题 (generalized lagrange function)

x ∗ = arg ⁡ min ⁡ x L ( x , λ , μ ) = arg ⁡ min ⁡ x f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ i = 1 n μ i g i ( x ) x^* = \arg\min_x L(x, \lambda,\mu) = \arg \min_x f(x)+\sum_{i=1}^{m}\lambda_ih_i(x)+\sum_{i=1}^{n}\mu_ig_i(x) x=argxminL(x,λ,μ)=argxminf(x)+i=1mλihi(x)+i=1nμigi(x)

针对上述最优化问题,该如何求解呢?

  1. 通过对 x x x求梯度,我们能够得到对应 x x x中变量个数的方程
  2. 对于等式约束,求关于拉格朗日乘数的偏导等于0,可以得到 m m m个方程,这些方程使得解 x x x满足这些等式约束条件。
  3. 对于不等式约束,有两种情况:
    1)极值点在不等式约束范围内,即 g i ( x ∗ ) &lt; 0 g_i(x^*) &lt; 0 gi(x)<0,那么该约束对于极值的选择没有约束作用,我们可以将其对应的KKT乘数 μ i = 0 \mu_i=0 μi=0
    2)极值点在不等式约束的边上,即 g i ( x ∗ ) = 0 g_i(x^*) = 0 gi(x)=0,那么该约束就变成了与拉格朗日乘数相同的情况。
    以上两种情况,都对应了方程 μ i g i ( x ) = 0 \mu_ig_i(x)=0 μigi(x)=0,因此,其对于新构建的方程的求解是必须的,则可以作为KKT条件之一,并得到 n n n个方程
    在这里插入图片描述
  4. 对于 μ i g i ( x ) = 0 \mu_ig_i(x)=0 μigi(x)=0中的 μ i \mu_i μi,并不想 λ i \lambda_i λi一样可以取任意值。因为当 μ i \mu_i μi不为0的时候,根据 f ( x ) 和 g ( x ) f(x)和g(x) f(x)g(x)的梯度,我们能得到 μ i &gt; 0 \mu_i&gt;0 μi>0。(为什么梯度 ∇ x f ( x ) 和 梯 度 ∇ x g ( x ) \nabla_x f(x)和梯度\nabla_x g(x) xf(x)xg(x)一定是相反的呢?首先,梯度的定义是指向函数增速最快的方向,通过下图我们能够看到, ∇ x f ( x ) \nabla_x f(x) xf(x)是垂直于等高线向上的,而 ∇ x g ( x ) \nabla_x g(x) xg(x)垂直于等高线向下的(因为函数里面小于0,线上等于0,则梯度肯定是向外侧的),又因为两线相切,切线相同,则两个梯度方向相反,所以 μ i \mu_i μi根据下列公式为正数)
    在这里插入图片描述

根据上述阐述,我们能够总结出KKT条件:

  1. Stationarity
    ∇ x f ( x ) + ∑ i = 1 m ∇ x λ i h i ( x ) + ∑ i = 1 n ∇ x μ i g i ( x ) = 0 ( m i m i m i z a t i o n ) \nabla_xf(x) + \sum_{i=1}^{m}\nabla_x\lambda_ih_i(x) + \sum_{i=1}^{n}\nabla_x\mu_ig_i(x) = 0 (mimimization) xf(x)+i=1mxλihi(x)+i=1nxμigi(x)=0(mimimization)
    ∇ x f ( x ) + ∑ i = 1 m ∇ x λ i h i ( x ) − ∑ i = 1 n ∇ x μ i g i ( x ) = 0 ( m a x i m i z a t i o n ) \nabla_xf(x) + \sum_{i=1}^{m}\nabla_x\lambda_ih_i(x) - \sum_{i=1}^{n}\nabla_x\mu_ig_i(x) = 0 (maximization) xf(x)+i=1mxλihi(x)i=1nxμigi(x)=0(maximization)
    对于求解最大值问题,上图中 ∇ x f ( x ) \nabla_xf(x) xf(x)方向就会反向,从而导致 μ i ≤ 0 \mu_i \leq 0 μi0,为了保持下列第3条件中 μ i ≥ 0 \mu_i\geq0 μi0的条件,所以在此将其之前的符号变为负号。条件2中的最后一项不受影响是因为求关于 λ \lambda λ的梯度,该项均为0,所以无所谓。
  2. Equality constraints
    ∇ λ f ( x ) + ∑ i = 1 m ∇ λ λ i h i ( x ) + ∑ i = 1 n ∇ λ μ i g i ( x ) = 0 \nabla_{\lambda}f(x) + \sum_{i=1}^{m}\nabla_{\lambda}\lambda_ih_i(x) + \sum_{i=1}^{n}\nabla_{\lambda}\mu_ig_i(x) = 0 λf(x)+i=1mλλihi(x)+i=1nλμigi(x)=0
  3. Inequality constraints a.k.a. complementary slackness condition
    μ i g i ( x ) = 0 , ∀ i = 1 , 2 , … , n \mu_ig_i(x) =0, \forall i= 1,2,\dots,n μigi(x)=0,i=1,2,,n
    μ i ≥ 0 , ∀ i = 1 , 2 , … , n \mu_i \geq 0, \forall i = 1,2,\dots,n μi0,i=1,2,,n

值得注意的是,KKT条件和极值之间并不是总是充分必要条件

  1. 当对原函数 f ( x ) f(x) f(x)没有约束的时候,即不一定是凸函数的时候,KKT为必要条件,即:若点 x ∗ x^* x是函数 f ( x ) f(x) f(x)在条件约束下的极值,那么 x ∗ x^* x满足KKT条件
  2. f ( x ) 和 g i ( x ) f(x)和g_i(x) f(x)gi(x)是连续可微且是凸函数, h i ( x ) h_i(x) hi(x)是线性(仿射函数)时,KKT为充分必要条件,即除了若点 x ∗ x^* x是函数 f ( x ) f(x) f(x)在条件约束下的极值,那么 x ∗ x^* x满足KKT条件,还有若点 x ∗ x^* x满足KKT条件,则点 x ∗ x^* x f ( x ) f(x) f(x)在约束条件下的极值点

KKT条件解释

10. 拉格朗日对偶(Lagrange duality)

通过上面关于拉格朗日乘子法KKT条件阐述,我们了解了如何面对含有约束条件的最优化问题。其核心思想为,将约束条件通过拉格朗日乘数和KKT乘数添加到最优化问题当中,从而形成一个没有约束条件的最优化问题。

然而,有时候我们用拉格朗日乘子法将原问题转化后,根据KKT条件得到的多个方程联立的方程组还是不好求解。那该怎么办呢?当原问题在满足某些条件的前提下,我们可以将原问题(primary)转换成其对应的对偶问题(duality),通过求解对偶问题,得到原问题的解。下面来解释如何应用对偶来简化最优化过程。

10.1 原始问题

同样的,与KKT条件使用的情况一下,这里我们的原始问题是包含等式约束和不等式约束的最优化问题,公式如下:
x ∗ = arg ⁡ min ⁡ x f ( x ) s u b j e c t   t o   h i ( x ) = 0 , ∀ i = 1 , 2 , … , m s u b j e c t   t o   g i ( x ) ≤ 0 , ∀ i = 1 , 2 , … , n x^* = \arg \min_x f(x)\\ subject\ to\ h_i(x)=0,\forall i = 1,2,\dots,m\\ subject\ to\ g_i(x)\leq 0,\forall i = 1,2,\dots,n x=argxminf(x)subject to hi(x)=0,i=1,2,,msubject to gi(x)0,i=1,2,,n
我们将该问题称之为约束最优化问题的原始问题

10.2 广义拉格朗日乘子法转化后的原始问题再转化

通过使用拉格朗日乘子法将原始问题转换成拉格朗日函数:

(10.1) L ( x , λ , μ ) = f ( x ) + ∑ i = 1 m λ i h i ( x ) + ∑ i = 1 n μ i g i ( x ) L(x, \lambda,\mu) = f(x)+\sum_{i=1}^{m}\lambda_ih_i(x)+\sum_{i=1}^{n}\mu_ig_i(x)\tag{10.1} L(x,λ,μ)=f(x)+i=1mλihi(x)+i=1nμigi(x)(10.1)

我们将对该函数求极值,来得到原始函数的最优化解。通常情况下,可以根据KKT条件(其中一个条件为 μ i ≥ 0 , ∀ i = 1 , 2 , … , n \mu_i \geq 0, \forall i = 1,2,\dots,n μi0,i=1,2,,n),来构建方程组,从而解得我们需要的极值点,然后带入到原始方程 f ( x ) f(x) f(x)来选择我们先要的最大值或者最小值。

但是在这里,我们选择进行一种新的变换,来构建原始函数的对偶函数,通过求解对偶函数来得到原始函数的最优解。

首先,我们将 L ( x , λ , μ ) L(x,\lambda,\mu) L(x,λ,μ)看做是关于 λ , μ \lambda,\mu λ,μ的函数,我们要求其最大值,即:
(10.2) max ⁡ λ , μ : μ i ≥ 0 L ( x , λ , μ ) \max_{\lambda,\mu:\mu_i \geq0}L(x,\lambda,\mu)\tag{10.2} λ,μ:μi0maxL(x,λ,μ)(10.2)
在这里,着重强调一下是关于 λ , μ \lambda,\mu λ,μ的函数,在求解该方程的时候,将 x x x视为常量,在确定了 λ , μ \lambda,\mu λ,μ之后,函数将变成只与 x x x有关的函数,我们将该函数定义为:
(10.3) θ P ( x ) = max ⁡ λ , μ : μ i ≥ 0 L ( x , λ , μ ) \theta_P (x)= \max_{\lambda,\mu:\mu_i \geq0}L(x,\lambda,\mu)\tag{10.3} θP(x)=λ,μ:μi0maxL(x,λ,μ)(10.3)

针对这个函数,我们来根据x是不是满足约束条件来分析一下:

  • x x x不满足约束条件,即:
    h i ( x ) ≠ 0 h_i(x) \neq 0 hi(x)̸=0时, λ i → + ∞ 或 ( − ∞ ) \lambda_i \rightarrow +\infty 或(-\infty) λi+() g i ( x ) &gt; 0 g_i(x) &gt; 0 gi(x)>0时, μ i → + ∞ \mu_i \rightarrow +\infty μi+时, θ P ( x ) \theta_P(x) θP(x)的最大值为 + ∞ +\infty +
  • x x x满足约束条件,很明显函数可以将 μ i = 0 \mu_i=0 μi=0,从而转换为 f ( x ) f(x) f(x)(注意,在这里我们将 f ( x ) f(x) f(x)视为常量,那么其最大值即为本身)

因此,通过以上的分析,我们能够将 θ p ( x ) \theta_p(x) θp(x)写成如下形式:
(10.4) θ P ( x ) = { f ( x ) ,         x 满 足 原 始 问 题 约 束 + ∞ ,          o t h e r s \theta_P(x) = \begin{cases}f(x), \ \ \ \ \ \ \ x满足原始问题约束\\+\infty, \ \ \ \ \ \ \ \ others\end{cases}\tag{10.4} θP(x)={f(x),       x+,        others(10.4)

那么当 x x x在满足约束条件时,我们如果求:
min ⁡ x θ P ( x ) \min_x\theta_P(x) xminθP(x)
其实就是在求 x x x在满足约束条件时:
min ⁡ x f ( x ) \min_xf(x) xminf(x)
(因为在满足约束条件的时候 θ p ( x ) = f ( x ) \theta_p(x) = f(x) θp(x)=f(x),见式10.4)

从而有下列等式:
(9.5) min ⁡ x θ P ( x ) = min ⁡ x max ⁡ λ , μ : μ i ≥ 0 L ( x , λ , μ ) = min ⁡ x f ( x ) s u b j e t   t o   h i ( x ) = 0 , ∀ i = 1 , … , m s u b j e c t   t o   g i ( x ) ≤ 0 , ∀ i = 1 , … , n \min_x\theta_P(x) = \min_x \max_{\lambda,\mu:\mu_i \geq0}L(x,\lambda,\mu)= \min_x f(x) \\ subjet\ to\ h_i(x) = 0, \forall i = 1,\dots, m\\ subject\ to\ g_i(x) \leq 0, \forall i =1,\dots,n\tag{9.5} xminθP(x)=xminλ,μ:μi0maxL(x,λ,μ)=xminf(x)subjet to hi(x)=0,i=1,,msubject to gi(x)0,i=1,,n(9.5)

大白话就是说,我们转换来的 θ p ( x ) 和 f ( x ) \theta_p(x)和f(x) θp(x)f(x)在求 x x x满足约束条件时的最小值时,是等价的。

这里我们设在 x x x满足约束条件时:
p ∗ = min ⁡ x θ P ( x ) p^* = \min_x\theta_P(x) p=xminθP(x)

至此,我们通过一种转换,将用拉格朗日函数形式表示的原始问题,转换到了由两个最优化问题表示的全新形式。该形式将通过进一步的转换得到其对偶函数,从而简化最优化问题求解。

10.3 对偶问题

上面我们对原始问题进行了一系列的转换,最终变成了9.5式那样的模样。然而,进行转换后,该最优化问题依然可能存在不好求的问题。那么又要想办法换一种形式,来求解这个最优化问题了。

仿照式10.3,我们定义关于 λ , μ \lambda,\mu λ,μ的函数:
(10.6) min ⁡ x L ( x , λ , μ ) \min_xL(x, \lambda,\mu)\tag{10.6} xminL(x,λ,μ)(10.6)
此函数是关于 x x x的函数,在求解最小化过程中,应将 λ , μ \lambda,\mu λ,μ视为常数,当 x x x确定后,则变成了关于变量 λ , μ \lambda,\mu λ,μ的函数:

(10.7) θ D ( λ , μ ) = min ⁡ x L ( x , λ , μ ) \theta_D(\lambda, \mu) = \min_xL(x, \lambda,\mu)\tag{10.7} θD(λ,μ)=xminL(x,λ,μ)(10.7)

得到 θ D ( λ , μ ) \theta_D(\lambda,\mu) θD(λ,μ)之后考虑将其极大化,即:
(10.8) max ⁡ λ , μ : μ i ≥ 0 θ D ( λ , μ ) = max ⁡ λ , μ : μ i ≥ 0 min ⁡ x L ( x , λ , μ ) \max_{\lambda,\mu:\mu_i \geq 0}\theta_D(\lambda,\mu) =\max_{\lambda,\mu:\mu_i \geq 0}\min_xL(x,\lambda,\mu) \tag{10.8} λ,μ:μi0maxθD(λ,μ)=λ,μ:μi0maxxminL(x,λ,μ)(10.8)

对比式10.8和式10.5我们能够看到,两者在形式上很对称,只不过最优化的顺序不同而已。我们将式10.8称为原始问题的对偶问题

同样的,设对偶问题的最优值:
d ∗ = max ⁡ λ , μ : μ i ≥ 0 θ D ( λ , μ ) d^*=\max_{\lambda,\mu:\mu_i \geq 0}\theta_D(\lambda,\mu) d=λ,μ:μi0maxθD(λ,μ)

10.4 对偶问题与原始问题的关系

定理:若原始问题和对偶问题都有最优值,则:
(10.9) d ∗ = max ⁡ λ , μ : μ i ≥ 0 min ⁡ x L ( x , λ , μ ) ≤ min ⁡ x max ⁡ λ , μ : μ i ≥ 0 L ( x , λ , μ ) = p ∗ d^*=\max_{\lambda,\mu:\mu_i \geq 0}\min_xL(x,\lambda,\mu) \leq\min_x \max_{\lambda,\mu:\mu_i \geq0}L(x,\lambda,\mu)=p^*\tag{10.9} d=λ,μ:μi0maxxminL(x,λ,μ)xminλ,μ:μi0maxL(x,λ,μ)=p(10.9)
证明
p ∗ p^* p为原始问题的最优解,对应最优解的最优变量取值为 x ∗ x^* x,有 p ∗ = f ( x ∗ ) p^*=f(x^*) p=f(x);
d ∗ d^* d为对偶问题的最优解,对应最优解的最优变量取值为 λ ∗ , μ ∗ \lambda^*,\mu^* λ,μ,有 d ∗ = θ D ( λ ∗ , μ ∗ ) d^*=\theta_D(\lambda^*,\mu^*) d=θD(λ,μ);

对于任意的 λ , μ \lambda,\mu λ,μ,有:
θ D ( λ , μ ) = min ⁡ x L ( x , λ , μ ) ≤ L ( x ∗ , λ , μ ) = f ( x ∗ ) + ∑ i = 1 m λ i h i ( x ∗ ) + ∑ i = 1 n μ i g i ( x ∗ ) ≤ f ( x ∗ ) = p ∗ \theta_D(\lambda,\mu) = \min_xL(x,\lambda,\mu)\leq L(x^*,\lambda,\mu)=f(x^*)+\sum_{i=1}^{m}\lambda_ih_i(x^*)+\sum_{i=1}^{n}\mu_ig_i(x^*) \leq f(x^*) = p^* θD(λ,μ)=xminL(x,λ,μ)L(x,λ,μ)=f(x)+i=1mλihi(x)+i=1nμigi(x)f(x)=p

该式中第二个等号成立是因为 x ∗ x^* x是一个可行解,所以约束条件 g i ( x ) ≤ 0 g_i(x)\leq 0 gi(x)0 h i ( x ) = 0 h_i(x) =0 hi(x)=0满足,所以 ∑ i = 1 m λ i h i ( x ∗ ) = 0 , ∑ i = 1 n μ i g i ( x ∗ ) ≤ 0 \sum_{i=1}^{m}\lambda_ih_i(x^*) =0,\sum_{i=1}^{n}\mu_ig_i(x^*)\leq0 i=1mλihi(x)=0,i=1nμigi(x)0

由于以上推导是对于任意的 λ , μ \lambda,\mu λ,μ,所以 d ∗ = θ D ( λ ∗ , μ ∗ ) ≤ p ∗ d^*=\theta_D(\lambda^*,\mu^*) \leq p^* d=θD(λ,μ)p

该定理说明:原始问题的最小值不小于对偶问题的最大值,这一定理对于原始问题和对偶问题是否是凸优化问题并没有限制。是普遍成立的。

推论:设 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x,λ,μ分别是原始问题和对偶问题的可行解,由于式10.9我们知道, x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x,λ,μ分别是原始问题和对偶问题的最优解。

通常,对偶问题相对于原问题有比较好的形式(有看到“无论原问题形式如何,对偶问题都是一个凸优化问题”的说法,但没见过证明。),这样,当原问题不好求解时,可以转而求解对偶问题。问题是一般情况下有 d ∗ ≤ p ∗ d^* \leq p^* dp,所以求解对偶问题只能得到原始问题的下届,不能保证 d ∗ = p ∗ d^*= p^* d=p

但是我们想要通过对偶问题来求解原始问题,必须要使得原始问题的最小值和对偶问题的最大值点相等才行。

所以,当原始问题满足某些条件时,可以保证 d ∗ = p ∗ d^*= p^* d=p

Slater条件对于原始函数和对偶函数的影响

定义:对于原始问题及其对偶问题,假设函数 f ( x ) f(x) f(x) g i ( x ) g_i(x) gi(x)是凸函数, h i ( x ) h_i(x) hi(x)是仿射函数,且不等式约束 g i ( x ) g_i(x) gi(x)是严格可行的,即存在一个 x x x,使得不等式约束 g i ( x ) &lt; 0 , ∀ i = 1 , … , m g_i(x)&lt;0 ,\forall i = 1,\dots,m gi(x)<0,i=1,,m,则存在 x ∗ x^* x是原始问题的解, λ ∗ , μ ∗ \lambda^*,\mu^* λ,μ是对偶问题的解,并使得 d ∗ = p ∗ d^*=p^* d=p

也就是说如果原始问题是凸优化问题并且满足 Slater 条件的话,那么强对偶性成立。需要注意的是,这里只是指出了强对偶成立的一种情况,并不是唯一的情况。

KKT条件对于原始函数和对偶函数的影响

上面我们专门讲KKT条件的时候,没有考虑对偶问题的存在。现在我们看看在同时考虑原始问题和对偶问题时,KKT条件是怎样影响的。

对于一般的最优化问题,KKT条件是原始问题和对偶问题等价的必要条件,即当 d ∗ = p ∗ d^* =p^* d=p时,最优值结果 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x,λ,μ满足KKT条件。下面证明由强对偶关系推导出KKT条件。

由强对偶推导出KKT条件
考虑一般情况下(不一定是凸优化),如果有 d ∗ = p ∗ d^*=p^* d=p,对应的点为 x ∗ , λ ∗ , μ ∗ , x^*,\lambda^*,\mu^*, x,λ,μ,则:
d ∗ = θ D ( λ ∗ , μ ∗ ) = min ⁡ x L ( x , λ ∗ , μ ∗ ) ≤ L ( x ∗ , λ ∗ , μ ∗ ) = f ( x ∗ ) + ∑ i = 1 m λ i ∗ h i ( x ∗ ) + ∑ i = 1 n μ i ∗ g i ( x ∗ ) ≤ f ( x ∗ ) = p ∗ d^*=\theta_D(\lambda^*,\mu^*) = \min_xL(x,\lambda^*,\mu^*) \leq L(x^*,\lambda^*,\mu^*) = f(x^*)+\sum_{i=1}^{m}\lambda_i^*h_i(x^*)+\sum_{i=1}^{n}\mu_i^*g_i(x^*) \leq f(x^*) = p^* d=θD(λ,μ)=xminL(x,λ,μ)L(x,λ,μ)=f(x)+i=1mλihi(x)+i=1nμigi(x)f(x)=p

由于 d ∗ = p ∗ d^*=p^* d=p,所以公式中的 ≤ \leq 都应该取等号,则有:

  • min ⁡ x L ( x , λ ∗ , θ ∗ ) = L ( x ∗ , λ ∗ , μ ∗ ) \min_xL(x,\lambda^*,\theta^*) = L(x^*,\lambda^*,\mu^*) minxL(x,λ,θ)=L(x,λ,μ)说明 x ∗ x^* x L ( x , λ ∗ , μ ∗ ) L(x,\lambda^*,\mu^*) L(x,λ,μ)的一个极值点,所以 L ( x , λ ∗ , μ ∗ ) L(x,\lambda^*,\mu^*) L(x,λ,μ) x ∗ x^* x处的偏导为0,即 ∂ L ( x , λ ∗ , μ ∗ ) ∂ x ∣ x ∗ = 0 \frac{\partial L(x,\lambda^*,\mu^*)}{\partial x}|_{x^*}=0 xL(x,λ,μ)x=0
  • f ( x ∗ ) + ∑ i = 1 m λ i ∗ h i ( x ∗ ) + ∑ i = 1 n μ i ∗ g i ( x ∗ ) = f ( x ∗ ) f(x^*)+\sum_{i=1}^{m}\lambda_i^*h_i(x^*)+\sum_{i=1}^{n}\mu_i^*g_i(x^*) = f(x^*) f(x)+i=1mλihi(x)+i=1nμigi(x)=f(x),由于 x ∗ x^* x是满足约束条件的,因此根据约束条件有
    1) h i ( x ∗ ) = 0 , ∀ i = 1 , … , m h_i(x^*) =0, \forall i = 1,\dots,m hi(x)=0,i=1,,m,从而 ∑ i = 1 m λ i ∗ h i ( x ∗ ) = 0 \sum_{i=1}^{m}\lambda_i^*h_i(x^*)=0 i=1mλihi(x)=0
    2) g i ( x ∗ ) ≤ 0 , μ i ∗ ≥ 0 g_i(x^*) \leq0, \mu_i^* \geq0 gi(x)0,μi0,但是由于条件1),我们得到 ∑ i = 1 n μ i ∗ g i ( x ∗ ) = 0 \sum_{i=1}^{n}\mu_i^*g_i(x^*) =0 i=1nμigi(x)=0,所以,如果某个 g i ( x ∗ ) &lt; 0 g_i(x^*) &lt;0 gi(x)<0 μ i ∗ &gt; 0 \mu_i^* &gt;0 μi>0,则该项为负数,根据取值范围我们知道, μ i ∗ g i ( x ∗ ) 是 ≤ 0 \mu_i^*g_i(x^*)是\leq 0 μigi(x)0的,因此为了保证 ∑ i = 1 n μ i ∗ g i ( x ∗ ) = 0 \sum_{i=1}^{n}\mu_i^*g_i(x^*) =0 i=1nμigi(x)=0,必须求和中的每一项都为零,即 μ i ∗ g i ( x ∗ ) = 0 , ∀ i = 1 , … , n \mu_i^*g_i(x^*)=0, \forall i = 1, \dots,n μigi(x)=0,i=1,,n

通过整理以上条件,我们能得到:
{ ∂ L ( x , λ ∗ , μ ∗ ) ∂ x ∣ x ∗ = 0 h i ( x ∗ ) = 0 , ∀ i = 1 , … , m g i ( x ∗ ) ≤ 0 , ∀ i = 1 , … , n μ i ∗ g i ( x ∗ ) = 0 , ∀ i = 1 , … , n μ i ∗ ≥ 0 , ∀ i = 1 , … , n \begin{cases} \frac{\partial L(x,\lambda^*,\mu^*)}{\partial x}|_{x^*}=0\\ h_i(x^*)=0, \forall i = 1, \dots, m\\ g_i(x^*) \leq 0, \forall i = 1, \dots, n\\ \mu_i^*g_i(x^*) = 0, \forall i = 1, \dots, n\\ \mu_i^* \geq0 , \forall i = 1, \dots, n \end{cases} xL(x,λ,μ)x=0hi(x)=0,i=1,,mgi(x)0,i=1,,nμigi(x)=0,i=1,,nμi0,i=1,,n

上面方程组其实就是KKT条件,也就是说任何强对偶问题(不一定通过Slater条件推出),KKT条件都是 d ∗ = p ∗ d^*=p^* d=p的必要条件。

但是,如果原始问题是凸优化问题是,那么KKT条件就升级为充要条件。 也就是说只要找到 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x,λ,μ满足KKT条件,那么原始问题和对偶问题就有相同的解,分别在 x ∗ x^* x ( λ ∗ , μ ∗ ) (\lambda^*,\mu^*) (λ,μ)处取得。

定义: 对于原始问题及其对偶问题,假设函数 f ( x ) f(x) f(x) g i ( x ) g_i(x) gi(x)是凸函数, h i ( x ) h_i(x) hi(x)是仿射函数,且不等式约束 g i ( x ) g_i(x) gi(x)是严格可行的,即存在一个 x x x,使得不等式约束 g i ( x ) &lt; 0 , ∀ i = 1 , … , m g_i(x)&lt;0 ,\forall i = 1,\dots,m gi(x)<0,i=1,,m,则存在 x ∗ x^* x是原始问题的解, λ ∗ , μ ∗ \lambda^*,\mu^* λ,μ是对偶问题的解,并使得 d ∗ = p ∗ d^*=p^* d=p的充要条件是 x ∗ , λ ∗ , μ ∗ x^*,\lambda^*,\mu^* x,λ,μ满足KKT条件。

Slater条件、KKT条件与强对偶关系

10.5 总结

对于有约束的凸优化问题,我们可以用广义拉格朗日乘子法将约束条件拉入到最优化函数中从而转化为无约束问题,如果该原始问题求解棘手,在满足KKT条件下,可以通过求解对偶问题的解来代替原始问题,使得求解更加容易。

参考资料1
参考资料2
参考资料3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值