有任何的书写错误、排版错误、概念错误等,希望大家包含指正。
在求解最优化问题中,拉格朗日乘数法(Lagrange Multiplier)和 KKT(Karush Kuhn Tucker,三个人名)条件是两种最常用的方法。在有等式约束时使用拉格朗日乘数法,在有不等约束时使用 KKT 条件。
假设目标函数为 f(x)f(x)f(x) 。形如
minf(x)\min f(x) minf(x)
的优化问题称为无约束的优化问题,无约束条件是最简单的优化问题。解决方法通常为,令函数 f(x)f(x)f(x) 对变量 xxx 的偏导等于零获得计算极值点,将极值点代回函数验证极值点是否为最小值点。若无解析解,可采用梯度下降法或牛顿迭代方法逼近极小值点。
如果处理的是极大值优化问题,那么我们习惯对函数取反,对取反后的函数计算极小值。
假设等式约束条件(函数集合)为 h(x)h(x)h(x) 。形如
minf(x)s.t.hi(x)=0i=1,2,…,l\begin{matrix} &\min f(x)\\ s.t.& h_i(x)=0 & i=1,2,\dots,l \\ \end{matrix} s.t.minf(x)hi(x)=0i=1,2,…,l
的优化问题称为等式约束的优化问题。可以采用的解决方法为消元法和拉格朗日乘数法。消元法是通过将等式条件转换为多变量表示单变量的形式后代入目标函数 f(x)f(x)f(x) 中,将等式约束优化问题转化为无约束优化问题。
拉格朗日乘数法更具有普适性,泛化性。定义拉格朗日函数 L(x,λ)L(x, \lambda)L(x,λ)
L(x,λ)=f(x)+∑i=1lλihi(x)L(x, \lambda) = f(x)+\sum_{i=1}^l\lambda_ih_i(x) L(x,λ)=f(x)+i=1∑lλihi(x)
其中,λ={λ1,λ2,…,λl}\lambda=\{\lambda_1,\lambda_2,\dots,\lambda_l\}λ={λ1,λ2,…,λl} 为拉格朗日乘子。分别令函数 LLL 对 xxx 和 λ\lambdaλ 的偏导等于零,联立求解获得极值点
{∇xL=0∇λ1L=0∇λ2L=0⋮∇λlL=0\left\{ \begin{array}{ll} \nabla _xL = 0\\ \nabla _{\lambda_1} L=0 \\ \nabla _{\lambda_2} L=0 \\ \space\space\space\space\space\space\space\space\space\vdots\\ \nabla _{\lambda_l} L=0 \\ \end{array} \right. ⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧∇xL=0∇λ1L=0∇λ2L=0 ⋮∇λlL=0
简记为
{∇xL=0∇λL=0\left\{ \begin{array}{ll} \nabla _xL = 0\\ \nabla _{\lambda} L=0 \end{array} \right. {∇xL=0∇λL=0
将方程组的解代回拉格朗日函数检验。
假设不等式约束条件(函数集合)为 g(x)g(x)g(x) 。形如
minf(x)s.t.gi(x)≤0i=1,2,…,khj(x)=0j=1,2,…,l(1)\begin{matrix} &\min f(x)\\ s.t.& g_i(x)\le 0 &i=1,2,\dots,k \\ &h_j(x)=0 & j=1,2,\dots,l \\ \end{matrix} \tag{1} s.t.minf(x)gi(x)≤0hj(x)=0i=1,2,…,kj=1,2,…,l(1)
的优化问题称为不等式约束的优化问题,我们认为式 (1)(1)(1) 为约束最优化问题的一般形式。
定义广义拉格朗日函数(generalized Lagrange function)
L(x,α,β)=f(x)+∑i=1kαigi(x)+∑j=1lβjhj(x)(2)L(x, \alpha, \beta) = f(x) + \sum_{i=1}^k\alpha_i g_i(x) + \sum_{j=1}^l\beta_jh_j(x)\tag{2} L(x,α,β)=f(x)+i=1∑kαigi(x)+j=1∑lβjhj(x)(2)
其中,不等式约束系数 α={α1,α2,…,αk}\alpha=\{\alpha_1,\alpha_2,\dots,\alpha_k\}α={α1,α2,…,αk} 和等式约束系数 β={β1,β2,…,βl}\beta = \{\beta_1,\beta_2,\dots,\beta_l\}β={β1,β2,…,βl} 为拉格朗日乘子,且 αi≥0\alpha_i\ge 0αi≥0 。
常利用 KKT 条件求解,这部分放在后面进行讲解。
对于集合 DDD,若对于 DDD 中任意两点 x1x_1x1 和 x2x_2x2 满足:
λx1+(1−λ)x2∈D\lambda x_1+(1-\lambda)x_2\in D λx1+(1−λ)x2∈D
其中,λ∈(0,1)\lambda \in (0,1)λ∈(0,1) 。直观理解如图 111 所示。

图 1 凸集与非凸集
对于凸集 DDD 中的任意两点 x1x_1x1 和 x2x_2x2 满足:
f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2)f\big(\lambda x_1 + (1-\lambda)x_2\big)\le \lambda f(x_1) + (1-\lambda)f(x_2) f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2)
则函数 f(x)f(x)f(x) 为凸集 DDD 上的凸函数(convex function)。如果满足:
f(λx1+(1−λ)x2)<λf(x1)+(1−λ)f(x2)f\big(\lambda x_1 + (1-\lambda)x_2\big)\lt \lambda f(x_1) + (1-\lambda)f(x_2) f(λx1+(1−λ)x2)<λf(x1)+(1−λ)f(x2)
则函数 f(x)f(x)f(x) 为凸集 DDD 上的严格凸函数。
注意,国内教材中的“凸函数”和“凹函数”的概念与国外的概念正好相反,也就是与这里的概念相反。
另外,凸函数的“补集”并非凹函数,而是非凸函数,一般我们认为凹函数取反即为凸函数,二者在优化问题中可以轻松实现转换,所以不做区分。
如果约束最优化问题的目标函数 f(x)f(x)f(x) 和不等式约束函数 gi(x)g_i(x)gi(x) 都是 Rp\mathbb R^pRp 上的连续可微的凸函数,约束函数 hj(x)h_j(x)hj(x) 是 Rp\mathbb R^pRp 上的仿射函数,那么该约束最优化问题为凸优化问题(convex optimization problem)。
仿射函数:f(x)f(x)f(x) 称为仿射函数,如果其满足 f(x)=a⋅x+bf(x)=a·x+bf(x)=a⋅x+b,a∈Rpa\in \mathbb R^pa∈Rp,b∈Rb\in {\mathbb R}b∈R,x∈Rpx\in \mathbb R^px∈Rp 。
尽管凸优化的条件比较苛刻,但仍然在机器学习领域有十分广泛的应用。这主要得益于凸优化的优良性质:
凸优化问题的局部最优解就是全局最优解,但是可能存在多个最优解;
很多非凸问题可以等价或近似转化为凸优化问题(比如拉格朗日对偶);
凸优化问题的研究较为成熟,求解方法也较为成熟。
特别地,当凸优化问题的目标函数 f(x)f(x)f(x) 是二次函数且不等式约束函数 gi(x)g_i(x)gi(x) 是仿射函数时,该凸最优化问题为凸二次规划问题(convex quadratic programming)。
二次规划(Quadratic Programming,QP)是一类典型的优化问题,包括凸二次优化和非凸二次优化。在此类问题中,目标函数是变量的二次函数,而约束条件是变量的线性不等式。
假定变量个数为 ddd,约束条件的个数为 mmm,则标准的二次规划问题形如
minx12xTQx+cTxs.t.Ax≤b\min_x \frac{1}{2} x^TQx + c^Tx \\ s.t.\space\space\space\space Ax\le b xmin21xTQx+cTxs.t. Ax≤b
其中 xxx 为 ddd 维向量,Q∈Rd×dQ∈ \mathbb R^{d\times d}Q∈Rd×d 为实对称矩阵,A∈Rm×dA ∈ \mathbb R^{m\times d}A∈Rm×d 为实矩阵,b∈Rmb ∈ \mathbb R^mb∈Rm 和 c∈Rdc ∈\mathbb R^dc∈Rd 为实向量,Ax≤bAx≤bAx≤b 的每一行对应一个约束。
若 QQQ 为半正定矩阵,则目标函数是凸函数,相应的二次规划是凸二次优化问题;此时若约束条件 Ax≤bAx≤bAx≤b 定义的可行域不为空,且目标函数在此可行域有下界,则该问题将有全局最小值。若 QQQ 为正定矩阵,则该问题有唯一的全局最小值。若 QQQ 为非正定矩阵,则目标函数是有多个平稳点和局部极小点的 NP 难问题。
常用的二次规划解法有椭球法(elipsoid method)、内点法(interior point)、增广拉格朗日法(augmentcd Lagrangian)、梯度投影法(gradicnt projection)等。若 QQQ 为正定矩阵,则相应的二次规划问题可由椭球法在多项式时间内求解。
考虑到一般优化问题的几何意义包括非常多的情形,也就对应非常多的图像,不方便介绍且不便于理解,所以下面仅讨论三种约束情况下凸优化问题的几何意义。
假设 x∗x^*x∗ 表示目标函数 f(x)f(x)f(x) 的最优解,我们通过等高线图表示一种最简单的目标函数,类似于 f(x1,x2)=(x1−c)2a2+(x2−d)2b2f(x_1,x_2)=\frac{(x_1-c)^2}{a^2}+\frac{(x_2-d)^2}{b^2}f(x1,x2)=a2(x1−c)2+b2(x2−d)2 的形式,其中 aaa,bbb,$c ,,,d$ 为常数。等高线图如图 222 所示。

图 2 无约束优化问题等高线图
其中,C1>C2>C3>C4C_1>C_2>C_3>C_4C1>C2>C3>C4 且均为常数。可见,由于没有约束条件,目标函数的最值点为问题的最优解。
当只有一个等式约束条件 h1(x)=0h_1(x)=0h1(x)=0 时,根据拉格朗日乘数法,对拉格朗日函数 L(x,λ1)=f(x)+λ1h1(x)L(x,\lambda_1)=f(x)+\lambda_1h_1(x)L(x,λ1)=f(x)+λ1h1(x) 的变量 xxx 计算偏导得
∇xL=∇xf+λ1∇xh1\nabla_x L = \nabla_x f + \lambda_1 \nabla_x h_1 ∇xL=∇xf+λ1∇xh1
令偏导等于零,得
∇xf=−λ1∇xh1\nabla_x f = - \lambda_1 \nabla_x h_1 ∇xf=−λ1∇xh1
我们知道,梯度是一个向量,在某一点的梯度方向,就是过该点的等高线切线的法线方向。观察上式,目标函数的梯度与约束条件的梯度共线,且大小成 λ1\lambda_1λ1 倍。故,在单一等式约束下,拉格朗日乘子 λ\lambdaλ 的几何意义为在最优解处两个函数的梯度大小成 λ\lambdaλ 倍。因为并未要求等式约束的拉格朗日乘子必须大于 000,所以最优解处两个函数的梯度可能同向,也可能反向。如图 333 左子图所示。
当有两个约束条件时,计算拉格朗日函数的偏导,并令导数等于零得
∇xf=−λ1∇xh1−λ2∇xh2\nabla_x f = - \lambda_1 \nabla_x h_1-\lambda_2\nabla_xh_2 ∇xf=−λ1∇xh1−λ2∇xh2
可见,在最优解处目标函数的梯度为两个约束条件梯度的线性组合,组合系数为拉格朗日乘子。如图 333 中间子图所示。另外注意,最优解位于满足线性组合处需要以该位置满足全部约束条件为前提。可以理解为,约束条件规定了目标函数的可行域,最优解只能在可行域中进行选取,这正是约束优化问题的几何意义,即在约束条件规定的可行域内确定最小化目标函数的解。
上面提到两个约束条件对应的几何意义为线性组合,那么三个及三个以上约束条件对应的几何意义也为线性组合。依然要保证最优解是在可行域内进行搜索,所以如果多个约束条件之间不存在交集,即可行域为空,显然对应无解,如图 333 右子图所示。当然,如果三个约束条件对应的直线存在交集,那么存在最优解。

图 3 单一等式约束(左)、两个等式约束(中)和三个等式约束(右,无解)
相对于等式约束而言,不等式约束对应可行域从一条直线变为一个区域。
当只有一个不等式约束条件 g1(x)=0g_1(x)=0g1(x)=0 时,能取到极值点的位置存在两种情形:
以上两种情形分别对应图 444 中的 aaa 和 bbb 子图。
观察广义拉格朗日函数 L(x,α,β)L(x,\alpha,\beta)L(x,α,β) 要求 g1(x)g_1(x)g1(x) 的拉格朗日乘子 α1≥0\alpha_1\ge 0α1≥0。当 α1=0\alpha_1=0α1=0 时表示不等式约束不起作用,与之相乘的不等式条件项为零;当 α1≠0\alpha_1\ne0α1=0 时表示不等式约束起作用,作用与等式约束一致。另外,与等式优化不同的是,不等式优化不允许 αi<0\alpha_i<0αi<0。在不等式约束的拉格朗日乘子 α≠0\alpha \ne 0α=0 的前提下(对应 bbb 子图),可行域内部为 g1(x)≤0g_1(x)\le 0g1(x)≤0,外部为 g1(x)>0g_1(x)>0g1(x)>0,显然约束函数 g1(x)g_1(x)g1(x) 在可行域边界与目标函数等高线切点处的梯度由区域内指向区域外,目标函数在切点处的梯度由区域外指向区域内,两个梯度方向必然相反。对拉格朗日函数求导并零导数为零可知 ∇xf=−α1∇xg1\nabla_xf = -\alpha_1\nabla_xg_1∇xf=−α1∇xg1,为保证确定的最优解处两个函数梯度相反,需要限制 α1>0\alpha_1>0α1>0。
当有多个不等式约束条件时,无非就是在每个不等式约束条件的可行域交集中确定最优解,如图 444 中的 ccc 子图所示。如果某个约束的可行域囊括了目标函数的极小值点,那么该约束将不起作用,最优解依赖于其他约束。
当既有不等式约束,又有等式约束时,可行域仍然取全部约束的可行域交集,如图 444 中的 ddd 子图所示。

图 4 单一不等式约束覆盖目标函数极值点(a)、单一不等式约束未覆盖目标函数极值点(b)、两个不等式约束(c)和两个不等式约束与一个等式约束(d)
在得到对偶问题前,我们习惯上将带约束的原始问题式 (1)(1)(1) 转换为等价的无约束的原始问题式 (3)(3)(3),二者都称为原始问题(primal problem)。
minxmaxα,β;αi≥0L(x,α,β)(3)\min_x \max_{\alpha,\beta;\alpha_i\ge 0}L(x, \alpha, \beta)\tag{3} xminα,β;αi≥0maxL(x,α,β)(3)
其中 L(x,α,β)L(x,\alpha, \beta)L(x,α,β) 为广义拉格朗日函数式 (2)(2)(2)。式 (3)(3)(3) 为无约束的原始问题,“无约束”是指相比于式 (1)(1)(1),尽管式 (3)(3)(3) 对拉格朗日乘子 α\alphaα 进行限制,但不再对目标函数变量 xxx 进行约束,故称“无约束”。另外,由于式 (1)(1)(1) 与式 (3)(3)(3) 在结果上一致,只是对问题采用了不同的数学方式表达而已,所以认为二者是等价的。
下面来证明二者是等价的,即结果一致。令
θP(x)=maxa,β;αi≥0L(x,α,β)\theta_P(x) = \max_{a,\beta;\alpha_i\ge0}L(x, \alpha, \beta) θP(x)=a,β;αi≥0maxL(x,α,β)
对于满足全部约束条件 gi(x)≤0g_i(x)\le0gi(x)≤0 和 hj(x)=0h_j(x)=0hj(x)=0 的 xxx 而言,即 xxx 在可行域内,
θP(x)=f(x)\theta_P(x)=f(x) θP(x)=f(x)
这个很容易验证, 因为满足约束条件的 xxx 一定满足 hj(x)=0h_j(x)=0hj(x)=0,广义拉格朗日函数式 (2)(2)(2) 中的等式约束项被消除;xxx 也一定满足 gi(x)≤0g_i(x)\le 0gi(x)≤0,又因为拉格朗日乘子 αi≥0\alpha_i\ge 0αi≥0,所以 αigi(x)≤0\alpha_ig_i(x)\le 0αigi(x)≤0,故 L(x,α,β)L(x,\alpha,\beta)L(x,α,β) 以 α\alphaα 和 β\betaβ 为变量,xxx 为常数时的最大值只能在 αigi(x)=0\alpha_ig_i(x)=0αigi(x)=0 时取到,式 (2)(2)(2) 中的不等式约束项也被消除,只剩目标函数项,即 θP(x)=f(x)\theta_P(x)=f(x)θP(x)=f(x)。
讨论当 xxx 不满足原始问题约束条件时的 θP(x)\theta_P(x)θP(x),即 xxx 不在可行域内。假设给定某个 xxx,如果 xxx 违反原始问题的约束条件,即存在某个 iii 使得 gi(x)>0g_i(x) \gt 0gi(x)>0 或者存在某个 jjj 使得 hj(x)≠0h_j(x)\ne 0hj(x)=0,那么就有
θP(x)=+∞\theta_P(x)=+∞ θP(x)=+∞
因为若某个 iii 使约束 gi(x)>0g_i(x) > 0gi(x)>0,则可令 αi→+∞\alpha_i →+∞αi→+∞;若某个 jjj 使 hj(x)≠0h_j(x)\ne 0hj(x)=0 ,则可令 βj\beta_jβj 使 βjhj(x)→+∞\beta_jh_j(x) →+∞βjhj(x)→+∞,而将其余各 αiα_iαi 和 βj\beta_jβj 均取 000。
可以将两种情况整合,
θP(x)={f(x)x满足约束条件+∞其他\theta_P(x)=\left\{ \begin{matrix} f(x) & x满足约束条件\\ +∞ & 其他 \end{matrix} \right. θP(x)={f(x)+∞x满足约束条件其他
极小化 θP(x)\theta_P(x)θP(x)
minxθP(x)=minxmaxα,β;αi≥0L(x,α,β)\min_x \theta_P(x) =\min_x \max_{\alpha,\beta;\alpha_i\ge 0}L(x, \alpha, \beta) xminθP(x)=xminα,β;αi≥0maxL(x,α,β)
可以理解为,当 xxx 不在可行域内时,θP(x)\theta_P(x)θP(x) 取无穷大是没有意义的,对应无解;当 xxx 在可行域内时,最小化 θP(x)\theta_P(x)θP(x) 就是最小化目标函数 f(x)f(x)f(x),且此时 θP(x)\theta_P(x)θP(x) 的最优解与 f(x)f(x)f(x) 的最优解相同。这样我们很自然地将式 (1)(1)(1) 转化为了式 (3)(3)(3) 。
定义
θD(α,β)=minxL(x,α,β)\theta_D(\alpha,\beta) = \min_xL(x, \alpha,\beta) θD(α,β)=xminL(x,α,β)
极大化 θD(α,β)\theta_D(\alpha, \beta)θD(α,β)
maxα,β;αi≥0θD(α,β)=maxα,β;αi≥0minxL(x,α,β)\max_{\alpha,\beta;\alpha_i\ge0}\theta_D(\alpha, \beta) = \max_{\alpha,\beta;\alpha_i\ge0}\min_xL(x, \alpha, \beta) α,β;αi≥0maxθD(α,β)=α,β;αi≥0maxxminL(x,α,β)
表示为约束最优化问题:
maxα,βθD(α,β)=maxα,βminxL(x,α,β)s.t.αi≥0,i=1,2,…,k(4)\max_{\alpha,\beta}\theta_D(\alpha, \beta) = \max_{\alpha,\beta}\min_xL(x, \alpha, \beta) \\ s.t. \space\space\space\space \alpha_i\ge 0,\space\space\space\space i=1,2,\dots,k\tag{4} α,βmaxθD(α,β)=α,βmaxxminL(x,α,β)s.t. αi≥0, i=1,2,…,k(4)
称为原始问题的对偶问题(dual problem)。与原始问题式 (3)(3)(3) 对比,二者仅交换了取最大值和取最小值符号的位置。
若原始问题和对偶问题均有可行解,那么原始问题对应的目标函数值恒不小于对偶问题对应的目标函数值,这就是弱对偶性(weak duality),即
θD(α,β)≤θP(x)\theta_D(\alpha,\beta)\le \theta_P(x) θD(α,β)≤θP(x)
假设原始问题和对偶问题的最优值分别为
p∗=minxmaxα,β;αi≥0L(x,α,β)d∗=maxα,β;αi≥0minxL(x,α,β)p^*= \min_x \max_{\alpha,\beta;\alpha_i\ge 0}L(x, \alpha, \beta)\\ d^*=\max_{\alpha,\beta;\alpha_i\ge0}\min_xL(x, \alpha, \beta) p∗=xminα,β;αi≥0maxL(x,α,β)d∗=α,β;αi≥0maxxminL(x,α,β)
特别地,若原始问题和对偶问题均有一个确定的最优解,那么最优解对应的目标函数指恒满足原始问题最小值不小于对偶问题最大值,即
d∗≤p∗d^*\le p^* d∗≤p∗
证明如下。
易知
L(x,α,β)≤maxα,βL(x,α,β)minxL(x,α,β)≤L(x,α,β)L(x, \alpha, \beta)\le \max_{\alpha, \beta}L(x,\alpha, \beta) \\ \min_x L(x,\alpha, \beta) \le L(x, \alpha, \beta) L(x,α,β)≤α,βmaxL(x,α,β)xminL(x,α,β)≤L(x,α,β)
所以
θD(α,β)=minxL(x,α,β)≤L(x,α,β)≤maxα,βL(x,α,β)=θP(x)(5)\theta_D(\alpha, \beta) = \min_x L(x,\alpha, \beta) \le L(x, \alpha, \beta)\le \max_{\alpha, \beta}L(x,\alpha, \beta) = \theta_P(x)\tag{5} θD(α,β)=xminL(x,α,β)≤L(x,α,β)≤α,βmaxL(x,α,β)=θP(x)(5)
对于一般情形下的弱对偶性已经证明完毕了,但是直接理解式 (5)(5)(5) 还是比较困难的,在这里我们通过一个非常简单的例子来理解。不妨将式 (5)(5)(5) 重新写为更简洁、更本质的形式
G(y)=minxL(x,y)≤L(x,y)≤maxyL(x,y)=H(x)G(y) = \min_x L(x, y) \le L(x, y)\le \max_y L(x,y) = H(x) G(y)=xminL(x,y)≤L(x,y)≤ymaxL(x,y)=H(x)
G(y)G(y)G(y) 的几何意义为 L(x,y)L(x,y)L(x,y) 在空间直角坐标系中沿 xxx 轴方向投影,以投影后区域的下边界为函数;类似地,H(x)H(x)H(x) 的几何意义为 L(x,y)L(x,y)L(x,y) 在空间直角坐标系中沿 yyy 轴方向投影,以投影后区域的下边界为函数。对于 x∈[−1,4]x\in[-1,4]x∈[−1,4],y∈[−5,2]y\in [-5,2]y∈[−5,2] 的部分马鞍面 L(x,y)=x2−y2/3L(x,y)=x^2-y^2/3L(x,y)=x2−y2/3 如图 555 所示,分别沿 xxx 轴和 yyy 轴投影得到的 G(y)G(y)G(y) 和 H(x)H(x)H(x) 如图 666 所示。

图 5 部分马鞍面

图 6 沿 x 轴投影(左)和沿 y 轴投影(右)
可见,G(y)G(y)G(y) 为 L(x,y)L(x,y)L(x,y) 的一个下界,而 H(x)H(x)H(x) 为 L(x,y)L(x,y)L(x,y) 的一个上界,所以必然存在 G(y)≤H(x)G(y)\le H(x)G(y)≤H(x)。对应到式 (5)(5)(5) 中,θD(α,β)\theta_D(\alpha, \beta)θD(α,β) 为 L(x,α,β)L(x,\alpha, \beta)L(x,α,β) 的下界,θP(x)\theta_P(x)θP(x) 为 L(x,α,β)L(x,\alpha,\beta)L(x,α,β) 的上界。
要想证明 d∗≤p∗d^*\le p^*d∗≤p∗,则需要基于式 (5)(5)(5) 继续推导。分别取最大下界和最小上界,二者依然满足不等关系
d∗=maxα,βθD(α,β)≤minxθP(x)=p∗d^*=\max_{\alpha,\beta}\theta_D(\alpha, \beta)\le \min_x \theta_P(x)=p^* d∗=α,βmaxθD(α,β)≤xminθP(x)=p∗
这里依然可以通过图 666 来理解,观察图可知,G(y)G(y)G(y) 的最大值显然不大于 H(x)H(x)H(x) 的最小值,即下界最大值依然不大于上界最小值。
另外,可以通过“宁做鸡头不做凤尾”的俗语来记忆,“鸡”不如“凤”,分别对应下界和上界,亦取最小值和取最大值,可以理解为全部的鸡都是不如凤的,“头”和“尾”分别对应取最大值和取最小值,即在上、下界内选最小和最大,在鸡中无论怎么选都不可能比凤好,其语言表达就是“鸡头不如凤尾”。
若原始问题(对偶问题)有一个确定的最优解,那么对偶问题(原始问题)也有一个确定的最优解,而且这两个最优解所对应的目标函数值相等,这就是强对偶性(strong duality),即
d∗=p∗d^*=p^* d∗=p∗
p∗−d∗p^*-d^*p∗−d∗ 称为对偶间隙(duality gap),当对偶间隙为 000 时,认为具有强对偶性。
任何优化问题都具有弱对偶性,但是不一定具有强对偶性。只有当某些规范性条件(constraint qualification)成立时,优化问题才具有强对偶性。
常见的规范性条件有:
这里仅列举了常见的两个条件,所以满足一些其他条件也可能推出问题具有强对偶性。
KKT 条件(Karush–Kuhn–Tucker condition)被定义为一个方程组
gi(x)≤0(6~1)hj(x)=0(6~2)∇xL(x,α,β)=0(6~3)αi≥0(6~4)αigi(x)=0(6~5)\begin{aligned} g_i(x)&\le 0 &\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space&&&&{(6\text{\textasciitilde}1)} \\ h_j(x)&=0 &&&&& {(6\text{\textasciitilde}2)} \\\\ \nabla_x L(x,\alpha, \beta) &=0 &&&&&{(6\text{\textasciitilde}3)} \\ \alpha_i&\ge 0 &&&&&{(6\text{\textasciitilde}4)} \\ \\ \alpha_ig_i(x)&=0&&&&&{(6\text{\textasciitilde}5)} \end{aligned} gi(x)hj(x)∇xL(x,α,β)αiαigi(x)≤0=0=0≥0=0 (6~1)(6~2)(6~3)(6~4)(6~5)
其中,(6~1)∼(6~2)(6\text{\textasciitilde}1)\sim(6\text{\textasciitilde}2)(6~1)∼(6~2) 称为原问题可行条件,(6~3)∼(6~4)(6\text{\textasciitilde}3)\sim(6\text{\textasciitilde}4)(6~3)∼(6~4) 称为对偶可行条件,(6~5)(6\text{\textasciitilde}5)(6~5) 称为互补松弛条件。
我们虽然知道了问题具有强对偶性的前提,但是依然无法计算出最优解,而 KKT 条件的这一组方程就提供了求解方法。下面的讨论均以“原问题和对偶问题都有最优解”为前提。
两条关于 KKT 条件和强对偶性关系的基本定理:
简而言之,任何情况下,强对偶性都可以推出 KKT 条件,但是只有在某些条件成立的前提下,KKT 条件才可以推出强对偶性,此时二者等价。我们只要保证规范性条件成立,就可以利用 KKT 条件计算最优解。
KKT 条件中五个式子 (6~1)∼(6~5)(6\text{\textasciitilde}1)\sim(6\text{\textasciitilde}5)(6~1)∼(6~5) 的推导。
假设 x∗x^*x∗ 为原始问题的极小值点,α∗\alpha^*α∗ 和 β∗\beta^*β∗ 为对偶问题的极大值点,对应的极值分别为 p∗p^*p∗ 和 d∗d^*d∗ 。根据强对偶性 d∗=p∗d^*=p^*d∗=p∗ 可以得到
f(x∗)=θD(α∗,β∗)=minx(f(x)+∑i=1kαi∗gi(x)+∑j=1lβj∗hj(x))≤f(x∗)+∑i=1kαi∗gi(x∗)+∑j=1lβj∗hj(x∗)≤f(x∗)\begin{aligned} f(x^*) &=\theta_D(\alpha^*,\beta^*) \\ &=\min_x \Big( f(x) + \sum_{i=1}^k\alpha_i^* g_i(x) + \sum_{j=1}^l\beta_j^*h_j(x)\Big) \\ &\le f(x^*) + \sum_{i=1}^k\alpha_i^* g_i(x^*) + \sum_{j=1}^l\beta_j^* h_j(x^*)\\ &\le f(x^*) \end{aligned} f(x∗)=θD(α∗,β∗)=xmin(f(x)+i=1∑kαi∗gi(x)+j=1∑lβj∗hj(x))≤f(x∗)+i=1∑kαi∗gi(x∗)+j=1∑lβj∗hj(x∗)≤f(x∗)
显然上式中的不等号需要全部取等。观察第一个不等号处变为
minx(f(x)+∑i=1kαi∗gi(x)+∑j=1lβj∗hj(x))=f(x∗)+∑i=1kαi∗gi(x∗)+∑j=1lβj∗hj(x∗)\min_x \Big( f(x) + \sum_{i=1}^k\alpha_i^* g_i(x) + \sum_{j=1}^l\beta_j^*h_j(x)\Big) = f(x^*) + \sum_{i=1}^k\alpha_i^* g_i(x^*) + \sum_{j=1}^l\beta_j^* h_j(x^*) xmin(f(x)+i=1∑kαi∗gi(x)+j=1∑lβj∗hj(x))=f(x∗)+i=1∑kαi∗gi(x∗)+j=1∑lβj∗hj(x∗)
可见,x∗x^*x∗ 是 L(x,α∗,β∗)L(x,\alpha^*,\beta^*)L(x,α∗,β∗) 的一个极值点,故 L(x,α∗,β∗)L(x,\alpha^*,\beta^*)L(x,α∗,β∗) 在 x∗x^*x∗ 处的梯度为零,即
∇xf(x∗)+∑i=1kαi∗∇xgi(x∗)+∑j=1lβj∗∇xhj(x∗)=0\nabla_x f(x^*) + \sum_{i=1}^k\alpha_i^* \nabla_x g_i(x^*) + \sum_{j=1}^l\beta_j^* \nabla_xh_j(x^*)=0 ∇xf(x∗)+i=1∑kαi∗∇xgi(x∗)+j=1∑lβj∗∇xhj(x∗)=0
这与式 (6~3)(6\text{\textasciitilde}3)(6~3) 一致。
观察第二个不等号处变为
f(x∗)+∑i=1kαi∗gi(x∗)+∑j=1lβj∗hj(x∗)=f(x∗)∑i=1kαi∗gi(x∗)+∑j=1lβj∗hj(x∗)=0\begin{aligned} f(x^*) + \sum_{i=1}^k\alpha_i^* g_i(x^*) + \sum_{j=1}^l\beta_j^* h_j(x^*) &= f(x^*) \\ \sum_{i=1}^k\alpha_i^* g_i(x^*) + \sum_{j=1}^l\beta_j^* h_j(x^*) &=0 \end{aligned} f(x∗)+i=1∑kαi∗gi(x∗)+j=1∑lβj∗hj(x∗)i=1∑kαi∗gi(x∗)+j=1∑lβj∗hj(x∗)=f(x∗)=0
因为 x∗x^*x∗ 一定在可行域内,所以等式约束条件对应的项 ∑j=1lβj∗hj(x∗)=0\sum_{j=1}^l\beta_j^* h_j(x^*)=0∑j=1lβj∗hj(x∗)=0,故 ∑i=1kαi∗gi(x∗)=0\sum_{i=1}^k\alpha_i^* g_i(x^*) =0∑i=1kαi∗gi(x∗)=0。又因为 αigi(x)≤0\alpha_ig_i(x)\le 0αigi(x)≤0,所以
αi∗gi(x∗)=0,i=1,2,…,k\alpha_i^*g_i(x^*)=0,\space\space\space\space\space\space\space\space\space i=1,2,\dots,k αi∗gi(x∗)=0, i=1,2,…,k
这与互补松弛条件式 (6~5)(6\text{\textasciitilde}5)(6~5) 一致。其他 KKT 条件,(6~1)(6\text{\textasciitilde}1)(6~1)、(6~2)(6\text{\textasciitilde}2)(6~2) 和 (6~4)(6\text{\textasciitilde}4)(6~4) 均为显而易见的条件,联立这些条件得到完整 KKT 条件。
特别指出,由互补松弛条件式 (6~5)(6\text{\textasciitilde}5)(6~5) 可知,若 αi∗>0\alpha_i^*>0αi∗>0,则 gi(x∗)=0g_i(x^*)=0gi(x∗)=0;若 gi(x∗)<0g_i(x^*)<0gi(x∗)<0,则 αi∗=0\alpha_i^*=0αi∗=0。
[1] 《统计学习方法(第二版)》李航著
[2] 《机器学习》 周志华著
[3] “拉格朗日对偶问题”如何直观理解?“KKT条件” “Slater条件” “凸优化”打包理解 - bilibili
[4] 方向导数、梯度、等高线、数量场与向量场_lijil168的博客-CSDN博客
[5] 凸优化问题,凸二次规划问题QP,凸函数 - CSDN博客
[6] 策略算法工程师之路-凸二次优化 - 知乎
[7] 真正理解拉格朗日乘子法和 KKT 条件 - 博客园
[8] 支持向量机:Duality
[9] KKT条件在使用的时候有什么要求吗?是否要求强对偶 - 知乎