参考http://www.cnblogs.com/jerrylead
引入拉格朗日乘法
对于下面的最优化问题:
minw f(w)
s.t. hi(w)=0, i=1,...,l
通常的解法是引入拉格朗日算子:
L(w,β)=f(w)+∑i=1lβihi(w)
注:
1、所谓最优化问题,即在约束条件(这里是等式约束
hi(w)=0, i=1,...,l )下,求解目标函数(这里是
f(w) )的最大值,或最小值。
2、
l 是等式约束的个数
3、
βi 是拉格朗日算子。
我们求
L(w,β) 关于
w 和
β 的偏导数:
∂L∂wi=0; ∂L∂βi=0
计算得到
w 和
β .
下面讨论广义拉格朗日算子(带有不等式约束)
给出原始优化问题(primal optimization problem):
minw f(w)
s.t. gi(w)≤0, i=1,...,khi(w)=0, i=1,...,l
定义广义拉格朗日算子:
L(w,α,β)=f(w)+∑i=1kαigi(w)+∑i=1lβihi(w).
这里的
αi,βi 都是拉格朗算子
下面定义: θP(w)=maxα,β:αi≥0L(w,α,β)
注: θP 中的”P”是”primal”的缩写
上式中若 w 违反原始约束条件( gi(w)>0或者hi(w)≠0 )我么必然可以通过调整 αi 的值使得 θP(w)=maxα,β:αi≥0f(w)+∑ki=1αigi(w)+∑li=1βihi(w)=∞
相反的,如果原始约束条件都满足,则可得: θP(w)=f(w) ,因此可以写出下面的式子:
θP(w)={f(w)∞if w satisfies primal constraintsotherwise
因此我们再考虑下面的式子:
minwθP(w)=minw maxα,β:αi≥0L(w,α,β)
注:当原始约束条件满足时,
minwθP(w)⟺minf(w)
定义 p∗=minwθP(w) ,即用 p∗ 代表优化问题的值。此时如果直接求解,首先面对的是两个参数,而 αi 也是不等式约束,然后再在 w 上求最小值。这个过程可不容易做。
引入对偶问题
现在我们考虑下面的问题,定义:
θD(α,β)=minwL(w,α,β)
注:
1、这里” D ”是“ dual ”的缩写
2、在之前定义的 θP 中,我们是取的 max
下面给出原问题的对偶问题公式:
maxα,β:αi≥0θD(α,β)=maxα,β:αi≥0minwL(w,α,β)
明显和原问题相比只是交换了
max和min 的 位置。
和之前定义
p∗ 一样,定义
d∗=maxα,β:αi≥0θD(α,β)
一般的有
maxminf(x)≤minmaxf(x)
因此可得:
d∗=maxα,β:αi≥0minwL(w,α,β)≤minw maxα,β:αi≥0L(w,α,β)=p∗
在一定的条件下对偶问题等价于原问题,即在一定条件下我们可以得到
d∗=p∗ ,这样我们就可以用求解对偶问题代替求解原始问题了。
下面让我们来看看
d∗=p∗ 的条件
假设
f和gi 都是凸函数,
hi 是仿射(affine)的,(仿射函数即由1阶多项式构成的函数,一般形式为 f (x) = A x + b,这里,A 是一个 m×k 矩阵,x 是一个 k 向量,b是一个m向量,实际上反映了一种从 k 维到 m 维的空间映射关系。)
,且对于所有
gi(w) 存在
w 使得
gi(w)≤0
注:
仿射函数:I.e., there exists
ai , bi, so that
hi(w)=aTiw+bi . “Affine” means the same thing as linear, except that we also allow the extra intercept term
bi .也就是说,去掉
bi 他就是一个线性函数,加上
bi 就叫仿射函数。
基于上面的假设必然存在 w∗,α∗,β∗ ,使得 w∗ 是原问题的解, α∗,β∗ 是对偶问题的解,且满足 p∗=d∗=L(w∗,α∗,β∗) 。最重要的是这样的 w∗,α∗,β∗ 满足Karush-Kuhn-Tucker (KKT)conditions,KKT规则如下:
∂∂wiL(w∗,α∗,β∗)=0, i=1,...,n∂∂βiL(w∗,α∗,β∗)=0, i=1,...,lα∗igi(w∗)=0, i=1,...,kgi(w∗)≤0, i=1,...,kα∗≥0, i=1,...,k
对于满足KKT规则的
w∗,α∗,β∗ ,其必然同时满足原始问题和对偶问题。
上式中公式
α∗igi(w∗)=0 被称为KKT对偶互补条件(
KKT dual complementarity condition),它隐含了下面的条件:
如果
α∗i>0 ,则
gi(w∗)=0 。(即约束条件
gi(w)≤0 成立,只是将不等式约束变成了等式约束)