引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识。
假设 f ( x ) , c i ( x ) , h j ( x ) f(x),c_i(x),h_j(x) f(x),ci(x),hj(x)是定义在 R n R^n Rn上的连续可微函数,考虑约束最优化问题:
min x ∈ R n f ( x ) s . t . c i ( x ) ≤ 0 , i = 1 , 2 , … , k h j ( x ) = 0 , j = 1 , 2 , … , k \begin{aligned} \min_{x \in R^n}\quad &f(x) \\ s.t.\quad&c_i(x) \le 0 , i=1,2,\ldots,k\\ &h_j(x) = 0 , j=1,2,\ldots,k \end{aligned} x∈Rnmins.t.f(x)ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,k
称为约束最优化问题的原始问题。
现在如果不考虑约束条件,原始问题就是:
min x ∈ R n f ( x ) \min_{x \in R^n} f(x) x∈Rnminf(x)
因为假设其连续可微,利用高中的知识,对 f ( x ) f(x) f(x)求导数,然后令导数为0,就可解出最优解很简单. 但是问题来了,这里有约束条件,必须想办法把约束条件去掉才行, 拉格朗日函数派上用场了。
引进广义拉格朗日函数(generalized Lagrange function):
L ( x , α , β ) = f ( x ) + ∑ i = 0 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) \mathcal{L}(x,\alpha,\beta) = f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x) L(x,α,β)=f(x)+i=0∑kαici(x)+j=1∑lβjhj(x)
不要怕这个式子,也不要被拉格朗日的名字给唬住了,让我们慢慢剖析!这里, x = ( x ( 1 ) , x ( 2 ) , … , x ( n ) ) ∈ R n , α i , β j x=(x^{(1)},x^{(2)},\ldots,x^{(n)}) \in R^n,\alpha_i,\beta_j x=(x(1),x(2),…,x(n))∈Rn,αi,βj是拉格朗日乘子(其实就是上面函数中的参数而已),特别要求 α i ≥ 0 \alpha_i \ge 0 αi≥0。
现在,如果把 L ( x , α , β ) \mathcal{L}(x,\alpha,\beta) L(x,α,β)看作是关于 α i , β j \alpha_i,\beta_j αi,βj的函数,要求其最大值,即
max α , β : α i ≥ 0 L ( x , α , β ) \max_{\alpha,\beta:\alpha_i \ge 0}\mathcal{L}(x,\alpha,\beta) α,β:αi≥0maxL(x,α,β)
再次注意 L ( x , α , β ) \mathcal{L}(x,\alpha,\beta) L(x,α,β)是一个关于 α i , β j \alpha_i,\beta_j αi,βj的函数,优化就是确定 α i , β j \alpha_i,\beta_j αi,βj的值使得 L ( x , α , β ) \mathcal{L}(x,\alpha,\beta) L(x,α,β)取得最大值(此过程中把 x x x看做常量),确定了 α i , β j \alpha_i,\beta_j αi,βj的值,就可以得到 L ( x , α , β ) \mathcal{L}(x,\alpha,\beta) L(x,α,β)的最大值,因为 α i , β j \alpha_i,\beta_j αi,βj已经确定,显然最大值$\max\limits_{\alpha,\beta:\alpha_i \ge 0}\mathcal{L}(x,\alpha,\beta) 就 是 < f o n t c o l o r = r e d s i z e = 3 > 只 和 就是只和 就是<fontcolor=redsize=3>只和x$有关的函数,定义这个函数为:
θ P ( x ) = max α , β : α i ≥ 0 L ( x , α , β ) \theta_P(x) = \max_{\alpha,\beta:\alpha_i \ge 0}\mathcal{L}(x,\alpha,\beta) θP(x)=α,β:αi≥0maxL(x,α,β)
其中
L ( x , α , β ) = f ( x ) + ∑ i = 0 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) \mathcal{L}(x,\alpha,\beta) = f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x) L(x,α,β)=f(x)+i=0∑kαici(x)+j=1∑lβjhj(x)
下面通过 x x x是否满足约束条件两方面来分析这个函数:
注意通过 α i , β j \alpha_i,\beta_j αi,βj最大化 θ P \theta_P θP的过程中,若 c i ( x ) > 0 c_i(x)\gt0 ci(x)>0,可令 α i → + ∞ \alpha_i\to+\infty αi→+∞,若 h j ( x ) ≠ 0 h_j(x)\neq0 hj(x)=0,很容易取值使得 β j h j ( x ) → + ∞ \beta_jh_j(x)\to+\infty βjhj(x)→+∞,即不满足原始约束时, θ P ( x ) \theta_P(x) θP(x)的结果为无穷大。
θ P ( x ) = max α , β : α i ≥ 0 [ f ( x ) + ∑ i = 0 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) ] = max α , β : α i ≥ 0 [ f ( x ) ] = f ( x ) \begin{aligned} \theta_P(x) & = \max_{\alpha,\beta:\alpha_i \ge 0}[f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x)] \\ &=\max_{\alpha,\beta:\alpha_i \ge 0}[f(x)]=f(x) \end{aligned} θP(x)=α,β:αi≥0max[f(x)+i=0∑kαici(x)+j=1∑lβjhj(x)]=α,β:αi≥0max[f(x)]=f(x)
通过 α i , β j \alpha_i,\beta_j αi,βj最大化 θ P \theta_P θP的过程中,由于 h j ( x ) = 0 h_j(x) = 0 hj(x)=0,无论 β j \beta_j βj取何值,第三项可直接消去。若 c i ( x ) ≤ 0 c_i(x) \le 0 ci(x)≤0最大化 θ P \theta_P θP时 α i \alpha_i αi只能取值为0,这样第二项也可以消去。将 f ( x ) f(x) f(x)看成一个常量,常量的最大值就是其本身。
通过上面两条分析可以得出:
θ P ( x ) = { f ( x ) , x 满 足 原 始 问 题 约 束 + ∞ , 其 他 \theta_P(x)= \begin{cases} f(x), &x满足原始问题约束\\ +\infty, &其他 \end{cases} θP(x)={f(x),+∞,x满足原始问题约束其他
那么在满足约束条件下:
min x θ P ( x ) = min x max α , β : α i ≥ 0 L ( x , α , β ) = min x f ( x ) \min_x\theta_P(x)=\min_x\max_{\alpha,\beta:\alpha_i\ge0}L(x,\alpha,\beta)=\min_xf(x) xminθP(x)=xminα,β:αi≥0maxL(x,α,β)=xminf(x)
即 min x θ P ( x ) \min\limits_x\theta_P(x) xminθP(x)与原始优化问题等价,所以 min x θ P ( x ) \min\limits_x\theta_P(x) xminθP(x)常用代表原始问题,下标 P 表示原始问题,定义原始问题的最优值:
p ∗ = min x θ P ( x ) p^*=\min_x\theta_P(x) p∗=xminθP(x)
原始问题讨论就到这里,做一个总结:通过拉格朗日的办法重新定义一个无约束问题这个无约束问题等价于原来的约束优化问题,从而将约束问题无约束化!
定义关于 α , β \alpha,\beta α,β的函数:
θ D ( α , β ) = min x L ( x , α , β ) \theta_D(\alpha,\beta)=\min_x\mathcal{L}(x,\alpha,\beta) θD(α,β)=xminL(x,α,β)
注意等式右边是关于 x x x的函数的最小化,确定 x x x以后,最小值就只与 α , β \alpha,\beta α,β有关,所以是一个关于 α , β \alpha,\beta α,β的函数.
考虑极大化 θ D ( α , β ) = min x L ( x , α , β ) \theta_D(\alpha,\beta)=\min\limits_x \mathcal{L}(x,\alpha,\beta) θD(α,β)=xminL(x,α,β),即
max α , β : α i ≥ 0 θ D ( α , β ) = max α , β : α i ≥ 0 min x L ( x , α , β ) \max_{\alpha,\beta:\alpha_i\ge0}\theta_D(\alpha,\beta)=\max_{\alpha,\beta:\alpha_i\ge0}\min_x\mathcal{L}(x,\alpha,\beta) α,β:αi≥0maxθD(α,β)=α,β:αi≥0maxxminL(x,α,β)
这就是原始问题的对偶问题,再把原始问题写出来:
min x θ P ( x ) = min x max α , β : α i ≥ 0 L ( x , α , β ) \min_x\theta_P(x)=\min_x\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta) xminθP(x)=xminα,β:αi≥0maxL(x,α,β)
形式上可以看出很对称,只不过原始问题是先固定 L ( x , α , β ) \mathcal{L}(x,\alpha,\beta) L(x,α,β)中的 x x x,优化出参数 α , β \alpha,\beta α,β,再优化最优 x x x,而对偶问题是先固定 α , β \alpha,\beta α,β,优化出最优 x x x,然后再确定参数 α , β \alpha,\beta α,β。
定义对偶问题的最优值:
d ∗ = max α , β : α i ≥ 0 θ D ( α , β ) d^*=\max_{\alpha,\beta:\alpha_i\ge0}\theta_D(\alpha,\beta) d∗=α,β:αi≥0maxθD(α,β)
定理:若原始问题与对偶问题都有最优值,则
d ∗ = max α , β : α i ≥ 0 min x L ( x , α , β ) ≤ min x max α , β : α i ≥ 0 L ( x , α , β ) = p ∗ \begin{aligned} d^*&=\max_{\alpha,\beta:\alpha_i\ge0}\min_x\mathcal{L}(x,\alpha,\beta)\\ &\le\min_x\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta)=p^* \end{aligned} d∗=α,β:αi≥0maxxminL(x,α,β)≤xminα,β:αi≥0maxL(x,α,β)=p∗
证明:对任意的和,有
θ D ( α , β ) = min x L ( x , α , β ) ≤ L ( x , α , β ) ≤ max α , β : α i ≥ 0 L ( x , α , β ) = θ P ( x ) \begin{aligned} \theta_D(\alpha,\beta)&=\min_x\mathcal{L}(x,\alpha,\beta)\le \mathcal{L}(x,\alpha,\beta)\\ &\le\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta)=\theta_P(x) \end{aligned} θD(α,β)=xminL(x,α,β)≤L(x,α,β)≤α,β:αi≥0maxL(x,α,β)=θP(x)
即
θ D ( α , β ) ≤ θ P ( x ) \theta_D(\alpha,\beta)\le\theta_P(x) θD(α,β)≤θP(x)
由于原始问题与对偶问题都有最优值,所以
max α , β : α i ≥ 0 θ D ( α , β ) ≤ min x θ P ( x ) \max_{\alpha,\beta:\alpha_i\ge0}\theta_D(\alpha,\beta)\le\min_x\theta_P(x) α,β:αi≥0maxθD(α,β)≤xminθP(x)
即
d ∗ = max α , β : α i ≥ 0 min x L ( x , α , β ) ≤ min x max α , β : α i ≥ 0 L ( x , α , β ) = p ∗ \begin{aligned} d^*&=\max_{\alpha,\beta:\alpha_i\ge0}\min_x\mathcal{L}(x,\alpha,\beta)\\ &\le\min_x\max_{\alpha,\beta:\alpha_i\ge0}\mathcal{L}(x,\alpha,\beta)=p^* \end{aligned} d∗=α,β:αi≥0maxxminL(x,α,β)≤xminα,β:αi≥0maxL(x,α,β)=p∗
也就是说原始问题的最优值不小于对偶问题的最优值,但是我们要通过对偶问题来求解原始问题,就必须使得原始问题的最优值与对偶问题的最优值相等,于是可以得出下面的推论:
推论:设 x ∗ x^* x∗和 α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗分别是原始问题和对偶问题的可行解,如果 d ∗ = p ∗ d^*=p^* d∗=p∗,那么 x ∗ x^* x∗和 α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗都是原始问题和对偶问题的最优解。
所以,当原始问题和对偶问题的最优值相等: d ∗ = p ∗ d^*=p^* d∗=p∗时,可以用求解对偶问题来求解原始问题(当然是对偶问题求解比直接求解原始问题简单的情况下),但是到底满足什么样的条件才能使得 d ∗ = p ∗ d^*=p^* d∗=p∗呢,这就是下面要阐述的KKT 条件。
定理:对于原始问题和对偶问题,假设函数 f ( x ) f(x) f(x)和 c i ( x ) c_i(x) ci(x)是凸函数, h i ( x ) h_i(x) hi(x)是仿射函数(即由一阶多项式构成的函数,f(x)=Ax + b, A是矩阵,x,b是向量);并且假设不等式约束 c i ( x ) c_i(x) ci(x)是严格可行的,即存在 x x x,对所有 i i i有 c i ( x ) < 0 c_i(x)\lt0 ci(x)<0,则 x ∗ x^* x∗和 α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗分别是原始问题和对偶问题的最优解的充分必要条件是 x ∗ x^* x∗和 α ∗ , β ∗ \alpha^*,\beta^* α∗,β∗满足下面的Karush-Kuhn-Tucker(KKT)条件:
∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ α L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ β L ( x ∗ , α ∗ , β ∗ ) = 0 α i ∗ c i ( x ) = 0 , i = 1 , 2 , … , k ( K K T 对 偶 互 补 条 件 ) c i ( x ) ≤ 0 , i = 1 , 2 , … , k α i ∗ ≥ 0 , i = 1 , 2 , … , k h j ( x ∗ ) = 0 , j = 1 , 2 , … , l \begin{aligned} & \nabla_xL(x^*,\alpha^*,\beta^*)=0\\ &\nabla_\alpha L(x^*,\alpha^*,\beta^*)=0\\ &\nabla_\beta L(x^*,\alpha^*,\beta^*)=0\\ &\alpha_i^*c_i(x)=0,i=1,2,\ldots,k(KKT对偶互补条件)\\ &c_i(x)\le0,i=1,2,\ldots,k\\ &\alpha_i^*\ge0,i=1,2,\ldots,k\\ &h_j(x^*)=0,j=1,2,\ldots,l \end{aligned} ∇xL(x∗,α∗,β∗)=0∇αL(x∗,α∗,β∗)=0∇βL(x∗,α∗,β∗)=0αi∗ci(x)=0,i=1,2,…,k(KKT对偶互补条件)ci(x)≤0,i=1,2,…,kαi∗≥0,i=1,2,…,khj(x∗)=0,j=1,2,…,l
关于KKT 条件的理解:前面三个条件是由解析函数的知识,对于各个变量的偏导数为0(这就解释了为什么假设三个函数连续可微,如果不连续可微的话,这里的偏导数存不存在就不能保证),后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束。
特别注意当 α i ∗ > 0 \alpha_i^*\gt0 αi∗>0时,由KKT对偶互补条件可知: c i ( x ∗ ) = 0 c_i(x^*)=0 ci(x∗)=0,这个知识点会在 SVM 的推导中用到.
一句话,把原始的约束问题通过拉格朗日函数转化为无约束问题,如果原始问题求解棘手,在满足KKT的条件下用求解对偶问题来代替求解原始问题,使得问题求解更加容易。