Lagrangian乘子法 对偶问题 KKT条件 Slater条件 与凸优化

现有标准形式的约束优化问题如下:
min ⁡ x f ( x ) s . t .   f i ( x ) ≤ 0 , i = 1 , ⋯   , m ; A x = b , \min_{x}f(x)\\ s.t. \ f_i(x)\le0,i=1,\cdots,m;Ax=b, xminf(x)s.t. fi(x)0,i=1,,m;Ax=b,
或写作:
min ⁡ x f ( x ) s . t .   f i ( x ) ≤ 0 , i = 1 , ⋯   , m h i ( x ) = 0 , i = 1 , ⋯   , q \min_{x}f(x)\\ s.t. \ f_i(x)\le0,i=1,\cdots,m\\ h_i(x)=0,i=1,\cdots,q xminf(x)s.t. fi(x)0,i=1,,mhi(x)=0,i=1,,q
目标就是使用凸优化的方法解决这一问题。

Lagrangian乘子法与极小-极大化原始问题

利用Lagrangian乘子法,上述约束优化问题可以松弛为无约束优化问题:
min ⁡ L ( x , λ , v ) = f ( x ) + ∑ i = 1 m λ i f i ( x ) + ∑ i = 1 q v i h i ( x ) (1) \min L(x,\lambda,v)=f(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^qv_ih_i(x) \tag{1} minL(x,λ,v)=f(x)+i=1mλifi(x)+i=1qvihi(x)(1)
上式为Lagrangian函数。这里约束 λ i ≥ 0 \lambda_i \ge0 λi0,记做 λ = [ λ 1 , ⋯   , λ m ] T ⪰ 0 \lambda=[\lambda_1,\cdots,\lambda_m]^T\succeq0 λ=[λ1,,λm]T0,而对 v i v_i vi没有任何约束。
观察公式 ( 1 ) (1) (1)知,当 λ i \lambda_i λi取很大的正值时,公式 ( 1 ) (1) (1)会趋于负无穷,因此需要将Lagrangian函数极大化:
J 1 ( x ) = max ⁡ λ ⪰ 0 , v ( f ( x ) + ∑ i = 1 m λ i f i ( x ) + ∑ i = 1 q v i h i ( x ) ) (2) J_1(x)=\max_{\lambda \succeq0,v}(f(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^qv_ih_i(x))\tag{2} J1(x)=λ0,vmax(f(x)+i=1mλifi(x)+i=1qvihi(x))(2)
这是一个无约束极大化问题。然而上式还存在一个问题:当 f i ( x ) f_i(x) fi(x)违反约束而 > 0 >0 >0时,会导致 J 1 J_1 J1无穷大。只有 x x x满足全部原始约束时,才有 J 1 ( x ) = f ( x ) J_1(x)=f(x) J1(x)=f(x). 因此为了得到全部约束条件下 f ( x ) f(x) f(x)的极小解,需要将 J 1 ( x ) J_1(x) J1(x)极小化:
J p ( x ) = min ⁡ x J 1 ( x ) = min ⁡ x max ⁡ λ ⪰ 0 , v L ( x , λ , v ) (3) J_p(x)=\min_xJ_1(x)=\min_x\max_{\lambda \succeq0,v}L(x,\lambda,v)\tag{3} Jp(x)=xminJ1(x)=xminλ0,vmaxL(x,λ,v)(3)
公式 ( 3 ) (3) (3)是一个极小-极大化问题,其解就是Lagrangian函数 L ( x , λ , v ) L(x,\lambda,v) L(x,λ,v)的上确界(supremum),即最小上界。这是原始约束极小化问题变成无约束极小化问题后的代价函数,简称原始问题。而且有:
p ∗ = J p ( x ∗ ) = min ⁡ x f ( x ) = f ( x ∗ ) p^*=J_p(x^*)=\min_x f(x)=f(x^*) p=Jp(x)=xminf(x)=f(x)

对偶问题

考虑由Lagrangian函数 L ( x , λ , v ) L(x,\lambda,v) L(x,λ,v)构造另一个目标函数:
J 2 ( λ , v ) = min ⁡ x L ( x , λ , v ) = min ⁡ x ( f ( x ) + ∑ i = 1 m λ i f i ( x ) + ∑ i = 1 q v i h i ( x ) ) (3) J_2(\lambda,v)=\min_xL(x,\lambda,v) \\ =\min_{x}(f(x)+\sum_{i=1}^m\lambda_if_i(x)+\sum_{i=1}^qv_ih_i(x))\tag{3} J2(λ,v)=xminL(x,λ,v)=xmin(f(x)+i=1mλifi(x)+i=1qvihi(x))(3)
类似地,若 x x x满足所有约束, J 2 ( λ , v ) J_2(\lambda,v) J2(λ,v)就等于 min ⁡ x f ( x ) \min_xf(x) minxf(x),否则的话也可能取到负无穷的值。因此也需要为 J 2 ( λ , v ) J_2(\lambda,v) J2(λ,v)做极大化:
J D ( λ , v ) = max ⁡ λ ⪰ 0 , v J 2 ( λ , v ) = max ⁡ λ ⪰ 0 , v min ⁡ x L ( x , λ , v ) (4) J_D(\lambda,v)=\max_{\lambda \succeq0,v}J_2(\lambda,v)=\max_{\lambda \succeq0,v}\min_xL(x,\lambda,v) \tag{4} JD(λ,v)=λ0,vmaxJ2(λ,v)=λ0,vmaxxminL(x,λ,v)(4)
该问题是原始问题的对偶问题,是Lagrangian函数的极大-极小化问题,其解就是Lagrangian函数的下确界,即最大下界。

由公式 ( 4 ) (4) (4)定义的对偶问题是一个凹函数,其下界是负无穷,其任意一个局部极值点都是一个全局极值点。因此有约束极小化问题通过Lagrangian乘子法变成了无约束凹函数的极大化问题,此方法称为Lagrangian对偶法。其最优解记做:
d ∗ = J D ( λ ∗ , v ∗ ) d^*=J_D(\lambda^*,v^*) d=JD(λ,v)

因为一个是最大下界,一个是最小上界,显然有:
d ∗ ≤ p ∗ d^*\le p^* dp
d ∗ ≤ p ∗ d^*\le p^* dp时,称Lagrangian对偶法具有弱对偶性;
d ∗ = p ∗ d^*=p^* d=p时,称Lagrangian对偶法具有强对偶性。

KKT条件

前面已知
d ∗ ≤ min ⁡ x f ( x ) = p ∗ d^*\le \min_x f(x)=p^* dxminf(x)=p
p ∗ − d ∗ p^*-d^* pd为对偶间隙。令 x ∗ x^* x ( λ ∗ , v ∗ ) (\lambda^*,v^*) (λ,v)分别表示对偶间隙为 0 0 0时的任意原始最优点和对偶最优点。由于 x ∗ x^* x使Lagrangian函数 L ( x , λ ∗ , v ∗ ) L(x,\lambda^*,v^*) L(x,λ,v)在所有原始可行点 x x x中最小化,因此在该点的梯度向量必然为0向量:
f ′ ( x ∗ ) + ∑ i = 1 m λ i ∗ f i ′ ( x ∗ ) + ∑ i = 1 q v i ∗ h i ′ ( x ∗ ) f'(x^*)+\sum_{i=1}^m\lambda_i^*f'_i(x^*)+\sum_{i=1}^qv^*_ih'_i(x^*) f(x)+i=1mλifi(x)+i=1qvihi(x)
于是,Lagrangian对偶无约束优化问题的Karush-Kuhn-Tucker(KKT)条件(局部极小解的一阶必要条件)为:

  • f i ( x ∗ ) ≤ 0 , i = 1 , ⋯   , m f_i(x*)\le0,i=1,\cdots,m fi(x)0,i=1,,m(原始不等式约束)
  • h i ( x ∗ ) = 0 , i = 1 , ⋯   , q h_i(x^*)=0, i=1,\cdots,q hi(x)=0,i=1,,q (原始等式约束)
  • λ i ∗ ≥ 0 , i = 1 , ⋯   , m \lambda_i^*\ge0,i=1,\cdots,m λi0,i=1,,m(Lagrangian乘子法的非负性)
  • λ i ∗ f i ( x ∗ ) = 0 , i = 1 , ⋯   , m \lambda_i^*f_i(x^*)=0,i=1,\cdots,m λifi(x)=0,i=1,,m(互补松弛条件)
  • f ′ ( x ∗ ) + ∑ i = 1 m λ i ∗ f i ′ ( x ∗ ) + ∑ i = 1 q v i ∗ h i ′ ( x ∗ ) f'(x^*)+\sum_{i=1}^m\lambda_i^*f'_i(x^*)+\sum_{i=1}^qv^*_ih'_i(x^*) f(x)+i=1mλifi(x)+i=1qvihi(x)(一阶导为0)

Slater条件

在算法中,一般还是希望强对偶能够成立,有一种简单的强对偶判断方法是Slater定理。
定义原始不等式约束的可行域 F F F的相对内域为:
r e l i n t ( F ) = { x ∣ f i ( x ) < 0 , i = 1 , ⋯   , m ; h i ( x ) = 0 , , i = 1 , ⋯   , q } relint(F)=\{x|f_i(x)<0,i=1,\cdots,m;h_i(x)=0,,i=1,\cdots,q \} relint(F)={xfi(x)<0,i=1,,m;hi(x)=0,,i=1,,q}
即原始约束中的等式约束都成立,不等式约束都不取等号。位于可行域的相对内域的点称为相对内点。
优化过程中,迭代点位于可行域的内域的约束规定称为Slater条件。
Slater条件说的是,如果Slater条件满足,并且最初的问题是凸优化问题,则原始问题的最优解 p ∗ p^* p和对偶问题的最优解 d ∗ d^* d相等,强对偶条件成立。

总结

下面列出原始问题与对偶问题最优解之间的几点关系。

  • 只有当不等式约束 f i ( x ) , i = 1 , ⋯   , m f_i(x),i=1,\cdots,m fi(x),i=1,,m均为凸函数,且等式约束均 h i ( x ) , i = 1 , ⋯   , q h_i(x),i=1,\cdots,q hi(x),i=1,,q均为仿射函数时,一个原始约束优化问题才可以借助Lagrangian松弛方法,转化成一个凹函数的对偶无约束极大化问题。
  • 凹函数的极大化等价于凸函数的极小化。
  • f ( x ) f(x) f(x)不是凸函数,而 f i ( x ) f_i(x) fi(x)均为凸函数, h i ( x ) h_i(x) hi(x)均为仿射函数,则Lagrangian目标函数满足KKT条件的点 x ∗ x^* x ( λ ∗ , v ∗ ) (\lambda^*,v^*) (λ,v)一般不会是原始最优点和对偶最优点,即Lagrangian对偶无约束优化问题的最优解不是原始约束优化问题的最优解,而是 ε \varepsilon ε-次优解,其中 ε = f ( x ∗ ) − J D ( λ ∗ , v ∗ ) \varepsilon=f(x^*) - J_D(\lambda^*,v^*) ε=f(x)JD(λ,v)
  • f ( x ) f(x) f(x) f i ( x ) f_i(x) fi(x)均为凸函数, h i ( x ) h_i(x) hi(x)均为仿射函数,即最初的问题是凸优化问题,则Lagrangian目标函数满足KKT条件的点 x ~ \widetilde{x} x ( λ ~ , v ~ ) (\widetilde{\lambda},\widetilde{v}) (λ ,v )分别是原始问题的对偶问题的最优点, p ∗ = q ∗ p^*=q^* p=q.

本文主要内容均来自张贤达《矩阵分析与应用(第二版)》4.3节。本节主要内容虽然之前研究过,但是看完还是有点懵逼,结合之前费老大研究的SVM并写的支持向量机原理及求解,算是大概懂了的样子,心里还是有点发毛,比如最没明白的就是为什么原始问题和对偶问题的解放在一起就是 L ( x , λ , v ) L(x,\lambda,v) L(x,λ,v)的解。至于平时看论文以及听别人讲,那更是一笔带过,能多略就多略。也许工科就是这样吧,细致的数学原理不敢深究,列一列最优化目标,会直接拿来求解就好了吧。或者,也许菜鸡就是这样吧,好读书,难求甚解!当然读了张老的书,写了这篇博客也还算加深了一些理解。

你可能感兴趣的:(数学)