笔记目录:
统计学习方法(李航) 第一章 绪论
统计学习方法(李航)第二章 感知机
统计学习方法(李航)第三章 k近邻
统计学习方法(李航) 第四章 贝叶斯
统计学习方法(李航) 第五章 决策树
第二节 最大熵模型
1. 信息熵与最大熵原理
我们先从基础概念“熵”开始。在信息论中,熵(Entropy)是衡量一个随机变量不确定性的度量。对于一个离散随机变量 X X X,其可能取值为 { x 1 , x 2 , . . . , x k } \{x_1, x_2, ..., x_k\} {x1,x2,...,xk},对应的概率分布为 P ( X = x i ) = p i P(X=x_i) = p_i P(X=xi)=pi,那么 X X X 的熵定义为:
H ( P ) = H ( X ) = − ∑ i = 1 k p i log p i H(P) = H(X) = -\sum_{i=1}^{k} p_i \log p_i H(P)=H(X)=−i=1∑kpilogpi
其中,我们通常约定 0 log 0 = 0 0 \log 0 = 0 0log0=0。熵越大,表示随机变量的不确定性越大,包含的信息量也越大
最大熵原理(Principle of Maximum Entropy) 是指,在推断概率模型时,如果我们需要对一个随机现象的概率分布进行建模,我们应该选择在满足所有已知约束条件下,熵最大的那个模型。为什么要这样做呢?因为熵最大的模型,意味着我们 对未知的部分做了最少的假设,是最“均匀”或最“无偏”的估计。我们不引入任何我们不知道的偏见
1.1 离散分布的最大熵
让我们来证明一个基本结论:对于一个具有 k k k 个可能取值的离散随机变量,当且仅当它服从均匀分布时,其熵最大
问题: 找到概率分布 P = ( p 1 , p 2 , . . . , p k ) P = (p_1, p_2, ..., p_k) P=(p1,p2,...,pk) 使得 H ( P ) = − ∑ i = 1 k p i log p i H(P) = -\sum_{i=1}^{k} p_i \log p_i H(P)=−∑i=1kpilogpi 最大化
约束条件:
- 概率和为1: ∑ i = 1 k p i = 1 \sum_{i=1}^{k} p_i = 1 ∑i=1kpi=1
- 概率非负: p i ≥ 0 p_i \ge 0 pi≥0 (这个条件通常在求解过程中通过 log p i \log p_i logpi 的定义域隐式满足)
求解方法:拉格朗日乘子法
我们构建拉格朗日函数 L ( P , λ ) L(P, \lambda) L(P,λ):
L ( p 1 , . . . , p k , λ ) = − ∑ i = 1 k p i log p i + λ ( ∑ i = 1 k p i − 1 ) L(p_1, ..., p_k, \lambda) = -\sum_{i=1}^{k} p_i \log p_i + \lambda \left( \sum_{i=1}^{k} p_i - 1 \right) L(p1,...,pk,λ)=−i=1∑kpilogpi+λ(i=1∑kpi−1)
对每个 p i p_i pi 求偏导数并令其为0:
∂ L ∂ p i = − ( log p i + p i ⋅ 1 p i ) + λ = − log p i − 1 + λ = 0 \frac{\partial L}{\partial p_i} = -(\log p_i + p_i \cdot \frac{1}{p_i}) + \lambda = -\log p_i - 1 + \lambda = 0 ∂pi∂L=−(logpi+pi⋅pi1)+λ=−logpi−1+λ=0
log p i = λ − 1 \log p_i = \lambda - 1 logpi=λ−1
p i = e λ − 1 p_i = e^{\lambda - 1} pi=eλ−1
这说明,在极值点,所有的 p i p_i pi 都必须相等。设 p i = c p_i = c pi=c。代入约束条件 ∑ i = 1 k p i = 1 \sum_{i=1}^{k} p_i = 1 ∑i=1kpi=1:
∑ i = 1 k c = k ⋅ c = 1 \sum_{i=1}^{k} c = k \cdot c = 1 i=1∑kc=k⋅c=1
c = 1 k c = \frac{1}{k} c=k1
因此, p 1 = p 2 = . . . = p k = 1 k p_1 = p_2 = ... = p_k = \frac{1}{k} p1=p2=...=pk=k1。这就是均匀分布
我们还需要验证这确实是最大值点。可以通过计算Hessian矩阵来证明熵函数 H ( P ) H(P) H(P) 是关于 P P P 的凹函数(稍后会证明),因此拉格朗日法找到的是唯一最大值点
结论: 在没有任何其他约束的情况下,均匀分布具有最大的熵
1.2 加入约束条件的离散分布最大熵
现在,假设我们有一些关于这个分布的额外知识,以期望值的形式给出。例如,假设随机变量 X X X 可以取五个值 { A , B , C , D , E } \{A, B, C, D, E\} {A,B,C,D,E},对应的概率为 p 1 , p 2 , p 3 , p 4 , p 5 p_1, p_2, p_3, p_4, p_5 p1,p2,p3,p4,p5。我们有以下约束:
- ∑ i = 1 5 p i = 1 \sum_{i=1}^{5} p_i = 1 ∑i=15pi=1
- p 1 + p 2 = 3 / 10 p_1 + p_2 = 3/10 p1+p2=3/10
- p 1 + p 3 = 1 / 2 p_1 + p_3 = 1/2 p1+p3=1/2
- p i ≥ 0 p_i \ge 0 pi≥0
目标: 找到满足这些约束条件的分布 P = ( p 1 , . . . , p 5 ) P=(p_1, ..., p_5) P=(p1,...,p5),使得熵 H ( P ) = − ∑ i = 1 5 p i log p i H(P) = -\sum_{i=1}^{5} p_i \log p_i H(P)=−∑i=15pilogpi 最大
求解方法:拉格朗日乘子法
构建拉格朗日函数,引入三个乘子 λ 0 , λ 1 , λ 2 \lambda_0, \lambda_1, \lambda_2 λ0,λ1,λ2:
L ( P , λ 0 , λ 1 , λ 2 ) = − ∑ i = 1 5 p i log p i + λ 0 ( ∑ i = 1 5 p i − 1 ) + λ 1 ( p 1 + p 2 − 3 / 10 ) + λ 2 ( p 1 + p 3 − 1 / 2 ) L(P, \lambda_0, \lambda_1, \lambda_2) = -\sum_{i=1}^{5} p_i \log p_i + \lambda_0 \left( \sum_{i=1}^{5} p_i - 1 \right) + \lambda_1 (p_1 + p_2 - 3/10) + \lambda_2 (p_1 + p_3 - 1/2) L(P,λ0,λ1,λ2)=−i=1∑5pilogpi+λ0(i=1∑5pi−1)+λ1(p1+p2−3/10)+λ2(p1+p3−1/2)
对每个 p i p_i pi 求偏导数并令其为0:
∂ L ∂ p 1 = − log p 1 − 1 + λ 0 + λ 1 + λ 2 = 0 ⟹ p 1 = e λ 0 + λ 1 + λ 2 − 1 \frac{\partial L}{\partial p_1} = -\log p_1 - 1 + \lambda_0 + \lambda_1 + \lambda_2 = 0 \implies p_1 = e^{\lambda_0 + \lambda_1 + \lambda_2 - 1} ∂p1∂L=−logp1−1+λ0+λ1+λ2=0⟹p1=eλ0+λ1+λ2−1
∂ L ∂ p 2 = − log p 2 − 1 + λ 0 + λ 1 = 0 ⟹ p 2 = e λ 0 + λ 1 − 1 \frac{\partial L}{\partial p_2} = -\log p_2 - 1 + \lambda_0 + \lambda_1 = 0 \implies p_2 = e^{\lambda_0 + \lambda_1 - 1} ∂p2∂L=−logp2−1+λ0+λ1=0⟹p2=eλ0+λ1−1
∂ L ∂ p 3 = − log p 3 − 1 + λ 0 + λ 2 = 0 ⟹ p 3 = e λ 0 + λ 2 − 1 \frac{\partial L}{\partial p_3} = -\log p_3 - 1 + \lambda_0 + \lambda_2 = 0 \implies p_3 = e^{\lambda_0 + \lambda_2 - 1} ∂p3∂L=−logp3−1+λ0+λ2=0⟹p3=eλ0+λ2−1
∂ L ∂ p 4 = − log p 4 − 1 + λ 0 = 0 ⟹ p 4 = e λ 0 − 1 \frac{\partial L}{\partial p_4} = -\log p_4 - 1 + \lambda_0 = 0 \implies p_4 = e^{\lambda_0 - 1} ∂p4∂L=−logp4−1+λ0=0⟹p4=eλ0−1
∂ L ∂ p 5 = − log p 5 − 1 + λ 0 = 0 ⟹ p 5 = e λ 0 − 1 \frac{\partial L}{\partial p_5} = -\log p_5 - 1 + \lambda_0 = 0 \implies p_5 = e^{\lambda_0 - 1} ∂p5∂L=−logp5−1+λ0=0⟹p5=eλ0−1
可以看到, p i p_i pi 的形式不再是常数,而是依赖于它所涉及的约束对应的拉格朗日乘子。我们需要将这些 p i p_i pi 的表达式代回到三个约束方程中,然后解出 λ 0 , λ 1 , λ 2 \lambda_0, \lambda_1, \lambda_2 λ0,λ1,λ2 的值,进而得到 p i p_i pi 的具体数值。这个过程通常需要数值方法求解
1.3 连续分布的最大熵
对于连续随机变量 X X X,其概率密度函数为 p ( x ) p(x) p(x),熵(也称为微分熵)定义为:
h ( p ) = h ( X ) = − ∫ − ∞ ∞ p ( x ) log p ( x ) d x h(p) = h(X) = -\int_{-\infty}^{\infty} p(x) \log p(x) dx h(p)=h(X)=−∫−∞∞p(x)logp(x)dx
定理: 在所有具有相同均值 μ \mu μ 和方差 σ 2 \sigma^2 σ2 的连续分布中,正态分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2) 的熵最大
证明思路:
目标:最大化
h
(
p
)
h(p)
h(p)
约束条件:
- ∫ − ∞ ∞ p ( x ) d x = 1 \int_{-\infty}^{\infty} p(x) dx = 1 ∫−∞∞p(x)dx=1
- ∫ − ∞ ∞ x p ( x ) d x = μ \int_{-\infty}^{\infty} x p(x) dx = \mu ∫−∞∞xp(x)dx=μ
- ∫ − ∞ ∞ ( x − μ ) 2 p ( x ) d x = σ 2 \int_{-\infty}^{\infty} (x-\mu)^2 p(x) dx = \sigma^2 ∫−∞∞(x−μ)2p(x)dx=σ2
使用变分法和拉格朗日乘子法。构建泛函:
L [ p ] = − ∫ p ( x ) log p ( x ) d x + λ 0 ( ∫ p ( x ) d x − 1 ) + λ 1 ( ∫ x p ( x ) d x − μ ) + λ 2 ( ∫ ( x − μ ) 2 p ( x ) d x − σ 2 ) L[p] = -\int p(x) \log p(x) dx + \lambda_0 \left( \int p(x) dx - 1 \right) + \lambda_1 \left( \int x p(x) dx - \mu \right) + \lambda_2 \left( \int (x-\mu)^2 p(x) dx - \sigma^2 \right) L[p]=−∫p(x)logp(x)dx+λ0(∫p(x)dx−1)+λ1(∫xp(x)dx−μ)+λ2(∫(x−μ)2p(x)dx−σ2)
取关于 p ( x ) p(x) p(x) 的变分导数并令其为0:
δ L δ p ( x ) = − ( log p ( x ) + 1 ) + λ 0 + λ 1 x + λ 2 ( x − μ ) 2 = 0 \frac{\delta L}{\delta p(x)} = -(\log p(x) + 1) + \lambda_0 + \lambda_1 x + \lambda_2 (x-\mu)^2 = 0 δp(x)δL=−(logp(x)+1)+λ0+λ1x+λ2(x−μ)2=0
log p ( x ) = λ 0 − 1 + λ 1 x + λ 2 ( x − μ ) 2 \log p(x) = \lambda_0 - 1 + \lambda_1 x + \lambda_2 (x-\mu)^2 logp(x)=λ0−1+λ1x+λ2(x−μ)2
p ( x ) = exp ( λ 0 − 1 + λ 1 x + λ 2 ( x − μ ) 2 ) p(x) = \exp(\lambda_0 - 1 + \lambda_1 x + \lambda_2 (x-\mu)^2) p(x)=exp(λ0−1+λ1x+λ2(x−μ)2)
为了使这个
p
(
x
)
p(x)
p(x) 满足均值和方差的约束,并且形式上匹配正态分布
p
(
x
)
=
1
2
π
σ
2
e
−
(
x
−
μ
)
2
2
σ
2
p(x) = \frac{1}{\sqrt{2\pi\sigma^2}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
p(x)=2πσ21e−2σ2(x−μ)2, 我们可以比较指数部分
指数部分是一个关于
x
x
x 的二次函数。为了匹配正态分布的形式
A
e
−
B
(
x
−
μ
)
2
A e^{-B(x-\mu)^2}
Ae−B(x−μ)2,我们需要
x
x
x 的一次项系数为0,即
λ
1
=
0
\lambda_1 = 0
λ1=0 (这可以通过代入均值约束严格证明)
然后比较二次项系数:
λ
2
=
−
1
2
σ
2
\lambda_2 = -\frac{1}{2\sigma^2}
λ2=−2σ21
最后,常数项
λ
0
−
1
\lambda_0 - 1
λ0−1 由归一化条件确定,使得
exp
(
λ
0
−
1
)
=
1
2
π
σ
2
\exp(\lambda_0 - 1) = \frac{1}{\sqrt{2\pi\sigma^2}}
exp(λ0−1)=2πσ21
因此,解出的 p ( x ) p(x) p(x) 正是 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2)
结论: 正态分布是在给定均值和方差下熵最大的连续分布
2. 最大熵模型 (MaxEnt Model)
现在我们把最大熵原理应用到条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 的建模上。在监督学习中,我们通常有训练数据 ( x 1 , y 1 ) , . . . , ( x N , y N ) (x_1, y_1), ..., (x_N, y_N) (x1,y1),...,(xN,yN),我们可以从中计算出经验分布 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y) 或 P ~ ( x ) \tilde{P}(x) P~(x)
目标: 学习条件概率模型 P ( Y ∣ X ) P(Y|X) P(Y∣X)
最大熵模型的定义: 给定训练数据和一个特征函数集合 { f 1 , f 2 , . . . , f n } \{f_1, f_2, ..., f_n\} {f1,f2,...,fn},最大熵模型的目标是,在所有满足约束条件的模型集合 C C C 中,选取条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X) 最大的那个模型
条件熵:
H ( Y ∣ X ) = − ∑ x , y P ( x , y ) log P ( y ∣ x ) H(Y|X) = -\sum_{x, y} P(x, y) \log P(y|x) H(Y∣X)=−x,y∑P(x,y)logP(y∣x)
由于 P ( x , y ) = P ( x ) P ( y ∣ x ) P(x,y) = P(x) P(y|x) P(x,y)=P(x)P(y∣x), 我们可以写成:
H ( Y ∣ X ) = − ∑ x P ( x ) ∑ y P ( y ∣ x ) log P ( y ∣ x ) H(Y|X) = -\sum_{x} P(x) \sum_{y} P(y|x) \log P(y|x) H(Y∣X)=−x∑P(x)y∑P(y∣x)logP(y∣x)
在实际应用中,我们通常使用经验分布 P ~ ( x ) \tilde{P}(x) P~(x) 来代替未知的真实分布 P ( x ) P(x) P(x):
H ( Y ∣ X ) ≈ − ∑ x P ~ ( x ) ∑ y P ( y ∣ x ) log P ( y ∣ x ) H(Y|X) \approx -\sum_{x} \tilde{P}(x) \sum_{y} P(y|x) \log P(y|x) H(Y∣X)≈−x∑P~(x)y∑P(y∣x)logP(y∣x)
特征函数
f
i
(
x
,
y
)
f_i(x, y)
fi(x,y):
特征函数是描述输入
x
x
x 和输出
y
y
y 之间某种关系的二值函数或实值函数。例如,在文本分类中,
x
x
x 是一句话,
y
y
y 是类别,一个特征函数可以是:
f
1
(
x
,
y
)
=
1
f_1(x, y) = 1
f1(x,y)=1 如果
x
x
x 中包含词 “学习” 并且 y=‘教育’ ,否则为
0
0
0
约束条件:
最大熵模型的核心思想是让模型预测的特征期望值与从训练数据(经验分布)中观察到的特征期望值相匹配
对于每个特征
f
i
f_i
fi,我们要求:
E P [ f i ] = E P ~ [ f i ] E_P[f_i] = E_{\tilde{P}}[f_i] EP[fi]=EP~[fi]
其中:
- 模型期望: E P [ f i ] = ∑ x , y P ( x ) P ( y ∣ x ) f i ( x , y ) ≈ ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) E_P[f_i] = \sum_{x, y} P(x) P(y|x) f_i(x, y) \approx \sum_{x, y} \tilde{P}(x) P(y|x) f_i(x, y) EP[fi]=∑x,yP(x)P(y∣x)fi(x,y)≈∑x,yP~(x)P(y∣x)fi(x,y)
- 经验期望: E P ~ [ f i ] = ∑ x , y P ~ ( x , y ) f i ( x , y ) = 1 N ∑ j = 1 N f i ( x j , y j ) E_{\tilde{P}}[f_i] = \sum_{x, y} \tilde{P}(x, y) f_i(x, y) = \frac{1}{N} \sum_{j=1}^{N} f_i(x_j, y_j) EP~[fi]=∑x,yP~(x,y)fi(x,y)=N1∑j=1Nfi(xj,yj) ( N N N 是训练样本数)
模型集合 C:
C = { P ∈ P ∣ E P [ f i ] = E P ~ [ f i ] , i = 1 , . . . , n } C = \{ P \in \mathcal{P} \mid E_P[f_i] = E_{\tilde{P}}[f_i], \quad i=1, ..., n \} C={P∈P∣EP[fi]=EP~[fi],i=1,...,n}
其中 P \mathcal{P} P 是所有可能的条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 的集合(满足 ∑ y P ( y ∣ x ) = 1 \sum_y P(y|x) = 1 ∑yP(y∣x)=1)
最大熵模型的优化问题(Primal Problem):
P ∗ = arg max P ∈ C H ( Y ∣ X ) = arg max P ∈ C ( − ∑ x P ~ ( x ) ∑ y P ( y ∣ x ) log P ( y ∣ x ) ) P^* = \arg \max_{P \in C} H(Y|X) = \arg \max_{P \in C} \left( -\sum_{x} \tilde{P}(x) \sum_{y} P(y|x) \log P(y|x) \right) P∗=argP∈CmaxH(Y∣X)=argP∈Cmax(−x∑P~(x)y∑P(y∣x)logP(y∣x))
同时需要满足约束:
- E P [ f i ] = E P ~ [ f i ] E_P[f_i] = E_{\tilde{P}}[f_i] EP[fi]=EP~[fi] for i = 1 , . . . , n i=1, ..., n i=1,...,n
- ∑ y P ( y ∣ x ) = 1 \sum_y P(y|x) = 1 ∑yP(y∣x)=1 for all x x x
这是一个约束优化问题。直接求解 P ( y ∣ x ) P(y|x) P(y∣x) 比较困难,我们通常转向其对偶问题
3. 优化理论:拉格朗日对偶性
在求解最大熵模型之前,我们先回顾一下带约束优化问题的拉格朗日对偶理论。考虑一般的优化问题(最小化问题为例):
原始问题 (Primal Problem):
min w f ( w ) \min_{w} f(w) wminf(w)
subject to: g i ( w ) ≤ 0 , i = 1 , . . . , k \text{subject to: } \quad g_i(w) \le 0, \quad i = 1, ..., k subject to: gi(w)≤0,i=1,...,k
h j ( w ) = 0 , j = 1 , . . . , l \quad \quad \quad \quad h_j(w) = 0, \quad j = 1, ..., l hj(w)=0,j=1,...,l
广义拉格朗日函数 (Generalized Lagrangian):
引入拉格朗日乘子
α
=
(
α
1
,
.
.
.
,
α
k
)
\alpha = (\alpha_1, ..., \alpha_k)
α=(α1,...,αk) 和
β
=
(
β
1
,
.
.
.
,
β
l
)
\beta = (\beta_1, ..., \beta_l)
β=(β1,...,βl):
L ( w , α , β ) = f ( w ) + ∑ i = 1 k α i g i ( w ) + ∑ j = 1 l β j h j ( w ) L(w, \alpha, \beta) = f(w) + \sum_{i=1}^{k} \alpha_i g_i(w) + \sum_{j=1}^{l} \beta_j h_j(w) L(w,α,β)=f(w)+i=1∑kαigi(w)+j=1∑lβjhj(w)
其中,要求 α i ≥ 0 \alpha_i \ge 0 αi≥0
原始问题的等价形式 (Minimax Problem):
考虑关于
α
,
β
\alpha, \beta
α,β 最大化
L
(
w
,
α
,
β
)
L(w, \alpha, \beta)
L(w,α,β):
θ P ( w ) = max α ≥ 0 , β L ( w , α , β ) \theta_P(w) = \max_{\alpha \ge 0, \beta} L(w, \alpha, \beta) θP(w)=α≥0,βmaxL(w,α,β)
为什么说等价呢?
- 如果 w w w 违反了某个约束,比如 g i ( w ) > 0 g_i(w) > 0 gi(w)>0,那么我们可以让对应的 α i → ∞ \alpha_i \to \infty αi→∞,使得 θ P ( w ) → ∞ \theta_P(w) \to \infty θP(w)→∞
- 如果 w w w 违反了某个约束,比如 h j ( w ) ≠ 0 h_j(w) \ne 0 hj(w)=0,那么我们可以让对应的 β j \beta_j βj 取合适的符号并使其绝对值 → ∞ \to \infty →∞,也使得 θ P ( w ) → ∞ \theta_P(w) \to \infty θP(w)→∞
- 如果 w w w 满足所有约束条件 ( g i ( w ) ≤ 0 , h j ( w ) = 0 g_i(w) \le 0, h_j(w) = 0 gi(w)≤0,hj(w)=0),那么为了最大化 L L L,我们需要让 α i g i ( w ) \alpha_i g_i(w) αigi(w) 项最大。由于 g i ( w ) ≤ 0 g_i(w) \le 0 gi(w)≤0 且 α i ≥ 0 \alpha_i \ge 0 αi≥0,这项最大值为 0 0 0(当 α i = 0 \alpha_i = 0 αi=0 或 g i ( w ) = 0 g_i(w) = 0 gi(w)=0 时取到)。而 β j h j ( w ) \beta_j h_j(w) βjhj(w) 项因为 h j ( w ) = 0 h_j(w)=0 hj(w)=0 恒为 0 0 0。因此,此时 θ P ( w ) = f ( w ) \theta_P(w) = f(w) θP(w)=f(w)
所以,原始问题等价于:
p ∗ = min w θ P ( w ) = min w max α ≥ 0 , β L ( w , α , β ) p^* = \min_{w} \theta_P(w) = \min_{w} \max_{\alpha \ge 0, \beta} L(w, \alpha, \beta) p∗=wminθP(w)=wminα≥0,βmaxL(w,α,β)
这里的 p ∗ p^* p∗ 是原始问题的最优值。这个 min max \min \max minmax 的形式解释了原始问题中的“极小极大值”
对偶问题 (Dual Problem):
我们先定义拉格朗日对偶函数 (Lagrange Dual Function)
θ
D
(
α
,
β
)
\theta_D(\alpha, \beta)
θD(α,β):
θ D ( α , β ) = min w L ( w , α , β ) \theta_D(\alpha, \beta) = \min_{w} L(w, \alpha, \beta) θD(α,β)=wminL(w,α,β)
对偶函数 θ D ( α , β ) \theta_D(\alpha, \beta) θD(α,β) 是关于 ( α , β ) (\alpha, \beta) (α,β) 的凹函数(即使原始问题非凸)
对偶问题是最大化这个对偶函数:
d ∗ = max α ≥ 0 , β θ D ( α , β ) = max α ≥ 0 , β min w L ( w , α , β ) d^* = \max_{\alpha \ge 0, \beta} \theta_D(\alpha, \beta) = \max_{\alpha \ge 0, \beta} \min_{w} L(w, \alpha, \beta) d∗=α≥0,βmaxθD(α,β)=α≥0,βmaxwminL(w,α,β)
这里的 d ∗ d^* d∗ 是对偶问题的最优值。这个 max min \max \min maxmin 的形式解释了对偶问题中的“极大极小值”
注: 对于max和min顺序的问题
1. 原始问题的 Minimax 形式: min w max α ≥ 0 , β L ( w , α , β ) \min_{w} \max_{\alpha \ge 0, \beta} L(w, \alpha, \beta) minwmaxα≥0,βL(w,α,β)
目标: 我们的原始目标是求解带有约束的最小化问题: min w f ( w ) \min_{w} f(w) minwf(w),约束为 g i ( w ) ≤ 0 g_i(w) \le 0 gi(w)≤0 和 h j ( w ) = 0 h_j(w) = 0 hj(w)=0
拉格朗日函数的作用: 拉格朗日函数 L ( w , α , β ) = f ( w ) + ∑ α i g i ( w ) + ∑ β j h j ( w ) L(w, \alpha, \beta) = f(w) + \sum \alpha_i g_i(w) + \sum \beta_j h_j(w) L(w,α,β)=f(w)+∑αigi(w)+∑βjhj(w) (其中 α i ≥ 0 \alpha_i \ge 0 αi≥0) 将约束条件融入了目标函数
内层 Maximize (对 α , β \alpha, \beta α,β): 考虑固定一个 w w w。我们来看 max α ≥ 0 , β L ( w , α , β ) \max_{\alpha \ge 0, \beta} L(w, \alpha, \beta) maxα≥0,βL(w,α,β) 的值是多少:
- 如果 w w w 违反了某个约束 g i ( w ) > 0 g_i(w) > 0 gi(w)>0,因为 α i ≥ 0 \alpha_i \ge 0 αi≥0,我们可以让 α i → ∞ \alpha_i \to \infty αi→∞,从而使得 L ( w , α , β ) → ∞ L(w, \alpha, \beta) \to \infty L(w,α,β)→∞
- 如果 w w w 违反了某个约束 h j ( w ) ≠ 0 h_j(w) \ne 0 hj(w)=0,我们可以让 β j \beta_j βj 取合适的符号并使其绝对值 → ∞ \to \infty →∞,从而使得 L ( w , α , β ) → ∞ L(w, \alpha, \beta) \to \infty L(w,α,β)→∞
- 如果 w w w 满足所有约束 ( g i ( w ) ≤ 0 , h j ( w ) = 0 g_i(w) \le 0, h_j(w) = 0 gi(w)≤0,hj(w)=0),那么 ∑ β j h j ( w ) = 0 \sum \beta_j h_j(w) = 0 ∑βjhj(w)=0。对于 ∑ α i g i ( w ) \sum \alpha_i g_i(w) ∑αigi(w),因为 α i ≥ 0 \alpha_i \ge 0 αi≥0 和 g i ( w ) ≤ 0 g_i(w) \le 0 gi(w)≤0,这一项总是 ≤ 0 \le 0 ≤0。为了最大化 L L L,我们需要让这一项尽可能接近 0,其最大值就是 0 (当 α i = 0 \alpha_i=0 αi=0 或 g i ( w ) = 0 g_i(w)=0 gi(w)=0 时取到)。因此,当 w w w 可行时, max α ≥ 0 , β L ( w , α , β ) = f ( w ) + 0 + 0 = f ( w ) \max_{\alpha \ge 0, \beta} L(w, \alpha, \beta) = f(w) + 0 + 0 = f(w) maxα≥0,βL(w,α,β)=f(w)+0+0=f(w)
外层 Minimize (对 w w w): 现在我们来看 min w ( max α ≥ 0 , β L ( w , α , β ) ) \min_{w} \left( \max_{\alpha \ge 0, \beta} L(w, \alpha, \beta) \right) minw(maxα≥0,βL(w,α,β))。根据上面的分析,这个表达式等价于:
i n w { f ( w ) if w is feasible ∞ if w is infeasible in_{w} \begin{cases} f(w) & \text{if } w \text{ is feasible} \\ \infty & \text{if } w \text{ is infeasible} \end{cases} inw{f(w)∞if w is feasibleif w is infeasible
这正好就是原始带约束的优化问题的定义!我们要在所有满足约束的 w w w 中找到使 f ( w ) f(w) f(w) 最小的那个 w w w。
小结 (Primal): 所以,对于原始问题,我们先对 α , β \alpha, \beta α,β 求
max
是为了利用拉格朗日乘子将约束条件编码进去:如果 w w w 不满足约束,就给一个无穷大的“惩罚”,如果满足约束,就得到原始的 f ( w ) f(w) f(w)。然后,外层的min
就是在所有 w w w(包括满足和不满足约束的)中找到那个最优值,因为无穷大的惩罚,最优解必然会落在满足约束的 w w w 上。顺序是 min ( over w ) [ max ( over α , β ) L ] \min (\text{over } w) [\max (\text{over } \alpha, \beta) L] min(over w)[max(over α,β)L]。2. 对偶问题的 Maximin 形式: max α ≥ 0 , β min w L ( w , α , β ) \max_{\alpha \ge 0, \beta} \min_{w} L(w, \alpha, \beta) maxα≥0,βminwL(w,α,β)
对偶函数的定义: 对偶问题是围绕拉格朗日对偶函数 θ D ( α , β ) \theta_D(\alpha, \beta) θD(α,β) 构建的。这个函数定义为:对于固定的乘子 α ( ≥ 0 ) , β \alpha (\ge 0), \beta α(≥0),β,我们在所有可能的 w w w 上最小化拉格朗日函数 L ( w , α , β ) L(w, \alpha, \beta) L(w,α,β)
θ D ( α , β ) = min w L ( w , α , β ) \theta_D(\alpha, \beta) = \min_{w} L(w, \alpha, \beta) θD(α,β)=wminL(w,α,β)
这个 θ D ( α , β ) \theta_D(\alpha, \beta) θD(α,β) 对任何 α ≥ 0 , β \alpha \ge 0, \beta α≥0,β 都给出了原始问题最优值 p ∗ p^* p∗ 的一个下界(这就是弱对偶性 d ∗ ≤ p ∗ d^* \le p^* d∗≤p∗ 的基础)
内层 Minimize (对 w w w): 所以,这里的
min
操作是定义对偶函数 θ D \theta_D θD 的一部分。我们先固定乘子,然后找到使 L L L 最小的 w w w(这个 w w w 通常会依赖于 α , β \alpha, \beta α,β)外层 Maximize (对 α , β \alpha, \beta α,β): 对偶问题的目标是什么?是找到那个最好的下界,也就是让下界 θ D ( α , β ) \theta_D(\alpha, \beta) θD(α,β) 尽可能地大。因此,我们需要在所有合法的乘子( α ≥ 0 \alpha \ge 0 α≥0, β \beta β 任意)范围内,最大化 θ D ( α , β ) \theta_D(\alpha, \beta) θD(α,β)
d ∗ = max α ≥ 0 , β θ D ( α , β ) = max α ≥ 0 , β ( min w L ( w , α , β ) ) d* = \max_{\alpha \ge 0, \beta} \theta_D(\alpha, \beta) = \max_{\alpha \ge 0, \beta} \left( \min_{w} L(w, \alpha, \beta) \right) d∗=α≥0,βmaxθD(α,β)=α≥0,βmax(wminL(w,α,β))
小结 (Dual): 对于对偶问题,我们先对 w w w 求
min
是为了计算出给定乘子下的最好下界(即对偶函数的值)。然后,外层的max
是在所有可能的乘子中寻找那个最大的下界。顺序是 max ( over α , β ) [ min ( over w ) L ] \max (\text{over } \alpha, \beta) [\min (\text{over } w) L] max(over α,β)[min(over w)L]这个顺序的差异源于它们各自要解决的问题:
- 原始问题 (minimax): 目的是求解原始带约束问题。内层 max 将约束编码成惩罚,外层 min 找到最优解
- 对偶问题 (maximin): 目的是找到原始问题最优值的最佳下界。内层 min 定义了下界函数(对偶函数),外层 max 找到最佳的下界值
理解了这个逻辑, min max \min \max minmax 和 max min \max \min maxmin 的顺序就自然了
弱对偶性 (Weak Duality):
对于任何优化问题(无论是否凸),对偶问题的最优值总是小于等于原始问题的最优值:
d ∗ ≤ p ∗ d^* \le p^* d∗≤p∗
证明:
对于任意的
α
≥
0
\alpha \ge 0
α≥0 和
β
\beta
β,以及任意满足原始约束的
w
′
w'
w′:
θ D ( α , β ) = min w L ( w , α , β ) ≤ L ( w ′ , α , β ) = f ( w ′ ) + ∑ i = 1 k α i g i ( w ′ ) + ∑ j = 1 l β j h j ( w ′ ) \theta_D(\alpha, \beta) = \min_{w} L(w, \alpha, \beta) \le L(w', \alpha, \beta) = f(w') + \sum_{i=1}^{k} \alpha_i g_i(w') + \sum_{j=1}^{l} \beta_j h_j(w') θD(α,β)=wminL(w,α,β)≤L(w′,α,β)=f(w′)+i=1∑kαigi(w′)+j=1∑lβjhj(w′)
因为
w
′
w'
w′ 满足约束,
g
i
(
w
′
)
≤
0
g_i(w') \le 0
gi(w′)≤0 且
h
j
(
w
′
)
=
0
h_j(w') = 0
hj(w′)=0。又因为
α
i
≥
0
\alpha_i \ge 0
αi≥0,所以
∑
α
i
g
i
(
w
′
)
≤
0
\sum \alpha_i g_i(w') \le 0
∑αigi(w′)≤0
因此,
L
(
w
′
,
α
,
β
)
≤
f
(
w
′
)
L(w', \alpha, \beta) \le f(w')
L(w′,α,β)≤f(w′)
我们得到
θ
D
(
α
,
β
)
≤
f
(
w
′
)
\theta_D(\alpha, \beta) \le f(w')
θD(α,β)≤f(w′)
这个不等式对所有满足约束的
w
′
w'
w′ 和所有
α
≥
0
,
β
\alpha \ge 0, \beta
α≥0,β 都成立
所以,
max
α
≥
0
,
β
θ
D
(
α
,
β
)
≤
min
w
′
feasible
f
(
w
′
)
\underset{\alpha \ge 0, \beta}{\max} \theta_D(\alpha, \beta) \le \min_{w' \text{ feasible}} f(w')
α≥0,βmaxθD(α,β)≤minw′ feasiblef(w′),即
d
∗
≤
p
∗
d^* \le p^*
d∗≤p∗
强对偶性 (Strong Duality):
在某些条件下,对偶问题的最优值等于原始问题的最优值,即
d
∗
=
p
∗
d^* = p^*
d∗=p∗。这时,我们可以通过求解对偶问题来得到原始问题的解
常见的使强对偶性成立的条件是:
- 原始问题是凸优化问题:目标函数 f ( w ) f(w) f(w) 是凸函数,不等式约束 g i ( w ) g_i(w) gi(w) 是凸函数,等式约束 h j ( w ) h_j(w) hj(w) 是仿射函数(即 h j ( w ) = A j T w + b j h_j(w) = A_j^T w + b_j hj(w)=AjTw+bj)
- 满足某种约束规范 (Constraint Qualification),例如 Slater 条件。Slater 条件是指存在一个严格满足所有不等式约束的可行点 w w w,即存在 w w w 使得 g i ( w ) < 0 g_i(w) < 0 gi(w)<0 对所有 i i i 成立,且 h j ( w ) = 0 h_j(w) = 0 hj(w)=0 对所有 j j j 成立
KKT 条件 (Karush-Kuhn-Tucker Conditions):
如果强对偶性成立,并且原始问题和对偶问题的最优解分别为
w
∗
w^*
w∗ 和
(
α
∗
,
β
∗
)
(\alpha^*, \beta^*)
(α∗,β∗),那么它们必须满足以下 KKT 条件:
- Stationarity (稳定性): ∇ w L ( w ∗ , α ∗ , β ∗ ) = 0 \nabla_w L(w^*, \alpha^*, \beta^*) = 0 ∇wL(w∗,α∗,β∗)=0 (拉格朗日函数对 w w w 的梯度为0)
- Primal feasibility (原始可行性): g i ( w ∗ ) ≤ 0 g_i(w^*) \le 0 gi(w∗)≤0 for all i i i, h j ( w ∗ ) = 0 h_j(w^*) = 0 hj(w∗)=0 for all j j j
- Dual feasibility (对偶可行性): α i ∗ ≥ 0 \alpha_i^* \ge 0 αi∗≥0 for all i i i
- Complementary Slackness (互补松弛性): α i ∗ g i ( w ∗ ) = 0 \alpha_i^* g_i(w^*) = 0 αi∗gi(w∗)=0 for all i i i
对于凸优化问题,KKT 条件是 w ∗ w^* w∗ 和 ( α ∗ , β ∗ ) (\alpha^*, \beta^*) (α∗,β∗) 分别为原始问题和对偶问题最优解的充要条件