现有标准形式的约束优化问题如下:
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乘子法,上述约束优化问题可以松弛为无约束优化问题:
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=1∑mλifi(x)+i=1∑qvihi(x)(1)
上式为Lagrangian函数。这里约束 λ i ≥ 0 \lambda_i \ge0 λi≥0,记做 λ = [ λ 1 , ⋯ , λ m ] T ⪰ 0 \lambda=[\lambda_1,\cdots,\lambda_m]^T\succeq0 λ=[λ1,⋯,λm]T⪰0,而对 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=1∑mλifi(x)+i=1∑qvihi(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=1∑mλifi(x)+i=1∑qvihi(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^* d∗≤p∗
当 d ∗ ≤ p ∗ d^*\le p^* d∗≤p∗时,称Lagrangian对偶法具有弱对偶性;
当 d ∗ = p ∗ d^*=p^* d∗=p∗时,称Lagrangian对偶法具有强对偶性。
前面已知
d ∗ ≤ min x f ( x ) = p ∗ d^*\le \min_x f(x)=p^* d∗≤xminf(x)=p∗
称 p ∗ − d ∗ p^*-d^* p∗−d∗为对偶间隙。令 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=1∑mλi∗fi′(x∗)+i=1∑qvi∗hi′(x∗)
于是,Lagrangian对偶无约束优化问题的Karush-Kuhn-Tucker(KKT)条件(局部极小解的一阶必要条件)为:
在算法中,一般还是希望强对偶能够成立,有一种简单的强对偶判断方法是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)={x∣fi(x)<0,i=1,⋯,m;hi(x)=0,,i=1,⋯,q}
即原始约束中的等式约束都成立,不等式约束都不取等号。位于可行域的相对内域的点称为相对内点。
优化过程中,迭代点位于可行域的内域的约束规定称为Slater条件。
Slater条件说的是,如果Slater条件满足,并且最初的问题是凸优化问题,则原始问题的最优解 p ∗ p^* p∗和对偶问题的最优解 d ∗ d^* d∗相等,强对偶条件成立。
下面列出原始问题与对偶问题最优解之间的几点关系。
本文主要内容均来自张贤达《矩阵分析与应用(第二版)》4.3节。本节主要内容虽然之前研究过,但是看完还是有点懵逼,结合之前费老大研究的SVM并写的支持向量机原理及求解,算是大概懂了的样子,心里还是有点发毛,比如最没明白的就是为什么原始问题和对偶问题的解放在一起就是 L ( x , λ , v ) L(x,\lambda,v) L(x,λ,v)的解。至于平时看论文以及听别人讲,那更是一笔带过,能多略就多略。也许工科就是这样吧,细致的数学原理不敢深究,列一列最优化目标,会直接拿来求解就好了吧。或者,也许菜鸡就是这样吧,好读书,难求甚解!当然读了张老的书,写了这篇博客也还算加深了一些理解。