前段时间学了拉格朗日乘子法,学会了构造拉格朗日函数,也就是学会了把带约束(等式或不等式)的优化问题转化为无约束优化问题,私以为这部分就学完了到此为止了,没想到今天推导SVM的数学模型,要推原问题的对偶问题,愣是艰难地卡了大半天,一直没明白对偶问题的含义,原来拉格朗日函数得到以后还要进一步往下推出拉格朗日对偶函数,对偶函数的极值问题就是原问题的对偶问题,本文专门梳理和总结一下,以作学习记录。
本文是此文的续集,需要补充前面的知识可去逛逛,本文有的地方没仔细解释。
对偶理论,1947年提出,最早出现在线性规划中,所以现在的最优化课本里讲对偶问题都是从线性规划开始的,注意初学者看了线性规划里的对偶问题,很容易误以为对偶问题就是原问题的一个等价问题,其实这么想是不正确不严密的,对偶和等价是不同的概念。
本文只讨论拉格朗日对偶问题,线性规划的先不考虑。
考虑最优化模型:
min
f
(
x
)
s
.
t
.
h
k
(
x
)
=
0
,
g
j
(
x
)
≤
0
j
=
1
,
2
…
,
n
;
k
=
1
,
2
…
,
l
\min f(x) \quad s.t.\quad h_k(x)=0\quad,\quad g_j(x)\leq0\quad j=1,2\ldots,n;k=1,2\ldots,l
minf(x)s.t.hk(x)=0,gj(x)≤0j=1,2…,n;k=1,2…,l
(1)通过下面两步,构造拉格朗日函数为:
- 引入 松弛变量 / KKT乘子 μ j ( μ j ≥ 0 ) \mu_j(\mu_j\geq0) μj(μj≥0),把不等式约束条件转化为等式约束条件。
- 引入拉格朗日乘子 λ k \lambda_k λk,把等式约束转化为无约束优化问题。
L ( x , λ , μ ) = f ( x ) + ∑ k = 1 l λ k h k ( x ) + ∑ j = 1 n μ j g j ( x ) , μ j ≥ 0 \boldsymbol L(x,\boldsymbol \lambda,\boldsymbol\mu)=f(x)+\sum_{k=1}^l\lambda_kh_k(x)+\sum_{j=1}^n\mu_jg_j(x),\mu_j\geq0 L(x,λ,μ)=f(x)+k=1∑lλkhk(x)+j=1∑nμjgj(x),μj≥0
(2)定义拉格朗日对偶函数为拉格朗日函数把 λ , μ \boldsymbol\lambda,\boldsymbol\mu λ,μ当作常数,关于 x x x取最小值得到的函数:
g
(
λ
,
μ
)
=
inf
x
(
L
(
x
,
λ
,
μ
)
)
g(\boldsymbol\lambda,\boldsymbol\mu)=\inf_{x}(\boldsymbol L(x,\boldsymbol\lambda,\boldsymbol\mu))
g(λ,μ)=xinf(L(x,λ,μ))
inf 表示下确界,infimum(sup,上确界,supremum)
它只是
λ
,
μ
\boldsymbol\lambda,\boldsymbol\mu
λ,μ的函数,与
x
x
x无关。
它一定是凹函数。这里有证明。
(3)拉格朗日对偶问题
原问题是最小化
f
(
x
)
f(x)
f(x),显然,
f
(
x
)
≥
L
(
x
,
λ
,
μ
)
f(x)\geq \boldsymbol L(x,\boldsymbol\lambda,\boldsymbol\mu)
f(x)≥L(x,λ,μ)
假设
f
∗
f^*
f∗是满足原问题约束下的最优解,则
f
∗
=
min
f
(
x
)
≥
min
L
(
x
,
λ
,
μ
)
≥
g
(
λ
,
μ
)
,
μ
i
≥
0
f^*=\min f(x)\geq\min \boldsymbol L(x,\boldsymbol\lambda,\boldsymbol\mu)\geq g(\boldsymbol\lambda,\boldsymbol\mu) ,\mu_i\geq0
f∗=minf(x)≥minL(x,λ,μ)≥g(λ,μ),μi≥0
所以
g
(
λ
,
μ
)
g(\boldsymbol\lambda,\boldsymbol\mu)
g(λ,μ)是原问题最优解的下界。
找下界当然是要找最大的下界,所以导出拉格朗日对偶问题
max
g
(
λ
,
μ
)
,
s
.
t
.
μ
i
≥
0
\max g(\boldsymbol\lambda,\boldsymbol\mu), s.t.\quad\mu_i\geq0
maxg(λ,μ),s.t.μi≥0
由于
g
(
λ
,
μ
)
g(\boldsymbol\lambda,\boldsymbol\mu)
g(λ,μ)一定是凹函数,所以拉格朗日对偶问题一定是凸优化问题。
原问题的关于 x x x的最小化转化为了对偶问题关于 λ , μ \boldsymbol\lambda,\boldsymbol\mu λ,μ的最大化。
(4)strong duality & weak duality
设
d
∗
d^*
d∗是拉格朗日对偶问题的最优解,则不管原问题是不是凸优化问题,都一定有
d
∗
=
f
∗
d^*= f^*
d∗=f∗
则强对偶成立。这时对偶函数是原问题的紧致下界。
d
∗
≤
f
∗
d^*\leq f^*
d∗≤f∗
则弱对偶成立。
能不能取到强对偶条件取决于目标函数和约束条件的性质。如果满足原问题是凸优化问题,并且至少存在一个绝对可行点(Slater’s condition)(一个可以让所有不等式约束都不取等号的可行点),那么就具有强对偶性。
slater条件:存在x,使得所以不等式约束
g
(
x
)
≤
0
g(x)\leq0
g(x)≤0严格成立(即严格小于)。
slater条件性质: slater条件是原问题P可以等价于对偶问题Q的一个充分条件,该条件确保了鞍点的存在。