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

现有标准形式的约束优化问题如下:
minxf(x)s.t. fi(x)0,i=1,,m;Ax=b, \min_{x}f(x)\\ s.t. \ f_i(x)\le0,i=1,\cdots,m;Ax=b, xmin​f(x)s.t. fi​(x)≤0,i=1,⋯,m;Ax=b,
或写作:
minxf(x)s.t. fi(x)0,i=1,,mhi(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 xmin​f(x)s.t. fi​(x)≤0,i=1,⋯,mhi​(x)=0,i=1,⋯,q
目标就是使用凸优化的方法解决这一问题。

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

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

对偶问题

考虑由Lagrangian函数L(x,λ,v)L(x,\lambda,v)L(x,λ,v)构造另一个目标函数:
J2(λ,v)=minxL(x,λ,v)=minx(f(x)+i=1mλifi(x)+i=1qvihi(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)=xmin​L(x,λ,v)=xmin​(f(x)+i=1∑m​λi​fi​(x)+i=1∑q​vi​hi​(x))(3)
类似地,若xxx满足所有约束,J2(λ,v)J_2(\lambda,v)J2​(λ,v)就等于minxf(x)\min_xf(x)minx​f(x),否则的话也可能取到负无穷的值。因此也需要为J2(λ,v)J_2(\lambda,v)J2​(λ,v)做极大化:
JD(λ,v)=maxλ0,vJ2(λ,v)=maxλ0,vminxL(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,vmax​J2​(λ,v)=λ⪰0,vmax​xmin​L(x,λ,v)(4)
该问题是原始问题的对偶问题,是Lagrangian函数的极大-极小化问题,其解就是Lagrangian函数的下确界,即最大下界。

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

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

KKT条件

前面已知
dminxf(x)=p d^*\le \min_x f(x)=p^* d∗≤xmin​f(x)=p∗
pdp^*-d^*p∗−d∗为对偶间隙。令xx^*x∗和(λ,v)(\lambda^*,v^*)(λ∗,v∗)分别表示对偶间隙为000时的任意原始最优点和对偶最优点。由于xx^*x∗使Lagrangian函数L(x,λ,v)L(x,\lambda^*,v^*)L(x,λ∗,v∗)在所有原始可行点xxx中最小化,因此在该点的梯度向量必然为0向量:
f(x)+i=1mλifi(x)+i=1qvihi(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∑q​vi∗​hi′​(x∗)
于是,Lagrangian对偶无约束优化问题的Karush-Kuhn-Tucker(KKT)条件(局部极小解的一阶必要条件)为:

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

Slater条件

在算法中,一般还是希望强对偶能够成立,有一种简单的强对偶判断方法是Slater定理。
定义原始不等式约束的可行域FFF的相对内域为:
relint(F)={xfi(x)<0,i=1,,m;hi(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条件满足,并且最初的问题是凸优化问题,则原始问题的最优解pp^*p∗和对偶问题的最优解dd^*d∗相等,强对偶条件成立。

总结

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

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

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

Lagrangian乘子法 对偶问题 KKT条件 Slater条件 与凸优化Lagrangian乘子法 对偶问题 KKT条件 Slater条件 与凸优化 魏之燕 发布了20 篇原创文章 · 获赞 51 · 访问量 14万+ 私信 关注
上一篇:对hashMap中,等于6还是小于6红黑树会退化为链表的理解


下一篇:Oracle 数据字典表的使用