引言
逻辑斯谛回归(logistic regression)是统计学习中的经典分类方法。最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。
由于后面最优化方法中用到了最优化理论中的一些知识,建议先阅读最优化简介。
逻辑斯谛回归模型
定义 6.1(逻辑斯谛分布) 设
X
X
X施连续随机变量,
X
X
X服从逻辑斯谛分布是指
X
X
X具有下列分布函数和密度函数:
F
(
x
)
=
P
(
X
≤
x
)
=
1
1
+
e
−
(
x
−
μ
)
/
γ
(6.1)
F(x) = P(X \leq x) = \frac{1}{1 + e^{-(x-\mu)/\gamma}} \tag{6.1}
F(x)=P(X≤x)=1+e−(x−μ)/γ1(6.1)
f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) (6.2) f(x) = F^\prime(x) = \frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})}\tag{6.2} f(x)=F′(x)=γ(1+e−(x−μ)/γ)e−(x−μ)/γ(6.2)
其中, μ \mu μ为位置参数, γ > 0 \gamma >0 γ>0为形状参数。
这里推导一下
f
(
x
)
f(x)
f(x)。
F
′
(
x
)
=
(
1
1
+
e
−
(
x
−
μ
)
/
γ
)
′
=
−
d
(
1
+
e
−
(
x
−
μ
)
/
γ
)
/
d
x
(
1
+
e
−
(
x
−
μ
)
/
γ
)
2
=
−
e
−
(
x
−
μ
)
/
γ
⋅
−
1
γ
(
1
+
e
−
(
x
−
μ
)
/
γ
)
2
=
e
−
(
x
−
μ
)
/
γ
γ
(
1
+
e
−
(
x
−
μ
)
/
γ
)
2
\begin{aligned} F^\prime(x) &= \left(\frac{1}{1 + e^{-(x-\mu)/\gamma}}\right)^\prime \\ &= -\frac{d(1+ e^{-(x-\mu)/\gamma})/dx}{(1 + e^{-(x-\mu)/\gamma})^2} \\ &= -\frac{e^{-(x-\mu)/\gamma} \cdot -\frac{1}{\gamma}}{(1 + e^{-(x-\mu)/\gamma})^2} \\ &= \frac{e^{-(x-\mu)/\gamma}}{\gamma(1 + e^{-(x-\mu)/\gamma})^2} \end{aligned}
F′(x)=(1+e−(x−μ)/γ1)′=−(1+e−(x−μ)/γ)2d(1+e−(x−μ)/γ)/dx=−(1+e−(x−μ)/γ)2e−(x−μ)/γ⋅−γ1=γ(1+e−(x−μ)/γ)2e−(x−μ)/γ
逻辑斯谛分布的密度函数
f
(
x
)
f(x)
f(x)和分布函数
F
(
x
)
F(x)
F(x)的图形如图6.1所示。分布函数属于逻辑斯谛函数,其图形式一条S形曲线。该曲线以点
(
μ
,
1
2
)
(\mu, \frac{1}{2})
(μ,21)为中心对称,即满足
F
(
−
x
+
μ
)
−
1
2
=
−
F
(
x
+
μ
)
+
1
2
F(-x+\mu) - \frac{1}{2} = -F(x+\mu) + \frac{1}{2}
F(−x+μ)−21=−F(x+μ)+21
二项逻辑斯谛回归模型
二项逻辑斯谛回归模型(binomial logistic regression model)是一种分类模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)表示,形式为参数化的逻辑斯谛分布。
随机变量 X X X取值为实数,随机变量 Y Y Y的取值为 1 1 1或 0 0 0。
定义6.2(逻辑斯谛回归模型) 二项逻辑斯谛回归模型是如下的条件概率分布:
P
(
Y
=
1
∣
X
)
=
exp
(
w
⋅
x
+
b
)
1
+
exp
(
w
⋅
x
+
b
)
(6.3)
P(Y=1|X) = \frac{\exp(w \cdot x + b)}{1 + \exp(w\cdot x + b)} \tag{6.3}
P(Y=1∣X)=1+exp(w⋅x+b)exp(w⋅x+b)(6.3)
P ( Y = 0 ∣ X ) = 1 1 + exp ( w ⋅ x + b ) (6.4) P(Y=0|X) = \frac{1}{1 + \exp(w\cdot x + b)} \tag{6.4} P(Y=0∣X)=1+exp(w⋅x+b)1(6.4)
其中, x ∈ R n x \in \Bbb{R}^n x∈Rn是输入, Y ∈ { 0 , 1 } Y\in \{0,1\} Y∈{0,1}是输出, w ∈ R n w \in \Bbb{R}^n w∈Rn和 b ∈ R b \in \Bbb R b∈R是参数, w w w称为权值向量, b b b称为偏置, w ⋅ x w\cdot x w⋅x为 w w w和 x x x的内积。
对于给定的输入实例 x x x,按照上面两式分别求得属于 Y = 1 Y=1 Y=1和 Y = 0 Y=0 Y=0的概率,然后比较两个概率的大小,将实例 x x x分为概率值较大的那一类。
为了方便,即消掉偏置 b b b,有时将权值向量和输入向量加以扩充,仍然记作 w , x w,x w,x,此时 w = ( w ( 1 ) , w ( 2 ) ⋯ , w ( n ) , b ) T , x = ( x ( 1 ) , x ( 2 ) ⋯ , x ( n ) , 1 ) T w=(w^{(1)},w^{(2)}\cdots,w^{(n)},b)^T,x=(x^{(1)},x^{(2)}\cdots,x^{(n)},1)^T w=(w(1),w(2)⋯,w(n),b)T,x=(x(1),x(2)⋯,x(n),1)T。
此时,逻辑斯谛回归模型可以写成如下形式:
P
(
Y
=
1
∣
X
)
=
exp
(
w
⋅
x
)
1
+
exp
(
w
⋅
x
)
(6.5)
P(Y=1|X) = \frac{\exp(w \cdot x )}{1 + \exp(w\cdot x)} \tag{6.5}
P(Y=1∣X)=1+exp(w⋅x)exp(w⋅x)(6.5)
P ( Y = 0 ∣ X ) = 1 1 + exp ( w ⋅ x ) (6.6) P(Y=0|X) = \frac{1}{1 + \exp(w\cdot x)} \tag{6.6} P(Y=0∣X)=1+exp(w⋅x)1(6.6)
一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果记事件发生的概率为
p
p
p,那么该事件的几率是
p
1
−
p
\frac{p}{1-p}
1−pp,该事件的对数几率(log odds)或logit函数为
logit
(
p
)
=
log
p
1
−
p
\text{logit}(p) =\log \frac{p}{1-p}
logit(p)=log1−pp
对于逻辑斯谛回归而言,由式
(
6.5
)
(6.5)
(6.5)与式
(
6.6
)
(6.6)
(6.6)得
log
P
(
Y
=
1
∣
x
)
1
−
P
(
Y
=
1
∣
x
)
=
log
exp
(
w
⋅
x
)
1
=
w
⋅
x
\log \frac{P(Y=1|x)}{1 - P(Y=1|x)} = \log\frac{\exp(w\cdot x)}{1} = w\cdot x
log1−P(Y=1∣x)P(Y=1∣x)=log1exp(w⋅x)=w⋅x
也就是说,在逻辑斯谛回归模型中,输出
Y
=
1
Y=1
Y=1的对数几率是输入
x
x
x的线性函数表示的模型,即逻辑斯谛回归模型。
模型参数估计
逻辑斯谛回归模型学习中,对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},可以应用极大似然估计法估计模型参数,从而得到逻辑斯谛回归模型。
设:
P
(
Y
=
1
∣
x
)
=
π
(
x
)
,
P
(
Y
=
0
∣
x
)
=
1
−
π
(
x
)
P(Y=1|x) = \pi (x),\quad P(Y=0|x)= 1-\pi(x)
P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)
似然函数为
∏
i
=
1
N
[
π
(
x
i
)
]
y
i
[
1
−
π
(
x
i
)
]
1
−
y
i
\prod_{i=1}^N [\pi(x_i)]^{y_i} [1-\pi(x_i)]^{1-y_i}
i=1∏N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为
L
(
w
)
=
∑
i
=
1
N
[
y
i
log
π
(
x
i
)
+
(
1
−
y
i
)
log
(
1
−
π
(
x
i
)
)
]
=
∑
i
=
1
N
[
y
i
log
π
(
x
i
)
+
log
(
1
−
π
(
x
i
)
−
y
i
log
(
1
−
π
(
x
i
)
]
=
∑
i
=
1
N
[
y
i
log
π
(
x
i
)
1
−
π
(
x
i
)
+
log
(
1
−
π
(
x
i
)
)
]
=
∑
i
=
1
N
[
y
i
(
w
⋅
x
i
)
+
log
(
1
1
+
exp
(
w
⋅
x
i
)
)
]
=
∑
i
=
1
N
[
y
i
(
w
⋅
x
i
)
−
log
(
1
+
exp
(
w
⋅
x
i
)
)
]
\begin{aligned} L(w) &= \sum_{i=1}^N [y_i \log \pi(x_i) +(1-y_i)\log (1-\pi(x_i))] \\ &= \sum_{i=1}^N \left[ y_i \log\pi(x_i) + \log (1-\pi(x_i) - y_i \log (1-\pi(x_i) \right] \\ &= \sum_{i=1}^N \left[ y_i \log\frac{\pi(x_i)}{1-\pi(x_i)} + \log (1-\pi(x_i))\right] \\ &= \sum_{i=1}^N \left[y_i(w \cdot x_i) + \log(\frac{1}{1 + \exp(w\cdot x_i)}) \right] \\ &= \sum_{i=1}^N [y_i(w \cdot x_i) - \log(1 + \exp(w\cdot x_i))] \end{aligned}
L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]=i=1∑N[yilogπ(xi)+log(1−π(xi)−yilog(1−π(xi)]=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]=i=1∑N[yi(w⋅xi)+log(1+exp(w⋅xi)1)]=i=1∑N[yi(w⋅xi)−log(1+exp(w⋅xi))]
对
L
(
w
)
L(w)
L(w)求极大值,得到
w
w
w的估计值。
这样,问题就变成了以对数似然函数为目标函数的最优化问题。
假设
w
w
w的极大似然估计是
w
^
\hat w
w^,那么学到的逻辑斯谛回归模型为
P
(
Y
=
1
∣
X
)
=
exp
(
w
^
⋅
x
)
1
+
exp
(
w
^
⋅
x
)
P
(
Y
=
0
∣
X
)
=
1
1
+
exp
(
w
^
⋅
x
)
P(Y=1|X) = \frac{\exp(\hat w \cdot x )}{1 + \exp(\hat w\cdot x)} \\ P(Y=0|X) = \frac{1}{1 + \exp(\hat w\cdot x)}
P(Y=1∣X)=1+exp(w^⋅x)exp(w^⋅x)P(Y=0∣X)=1+exp(w^⋅x)1
多项逻辑斯谛回归
上面介绍的逻辑斯谛回归模型用于二分类,可以将其推广为多项逻辑斯谛回归模型(multi-nominal logistic regression model),用于多分类。
假设离散型随机变量
Y
Y
Y的取值集合是
{
1
,
2
,
⋯
,
K
}
\{1,2,\cdots,K\}
{1,2,⋯,K},那么多项逻辑斯谛回归模型是
P
(
Y
=
k
∣
x
)
=
exp
(
w
k
⋅
x
)
1
+
∑
k
=
1
K
−
1
exp
(
w
k
⋅
x
)
,
k
=
1
,
2
,
⋯
,
K
−
1
(6.7)
P(Y=k|x) = \frac{\exp(w_k \cdot x)}{1 + \sum_{k=1}^{K-1} \exp(w_k \cdot x)} ,\quad k=1,2,\cdots, K-1 \tag{6.7}
P(Y=k∣x)=1+∑k=1K−1exp(wk⋅x)exp(wk⋅x),k=1,2,⋯,K−1(6.7)
这里也分成了两部分,上面是
k
k
k为
1
1
1到
K
−
1
K-1
K−1的部分,那么为了保证概率和为
1
1
1,
P
(
Y
=
K
∣
x
)
=
1
−
∑
k
=
1
K
−
1
P
(
Y
=
k
∣
x
)
P(Y=K|x) = 1- \sum_{k=1}^{K-1} P(Y=k|x)
P(Y=K∣x)=1−∑k=1K−1P(Y=k∣x):
P
(
Y
=
K
∣
x
)
=
1
1
+
∑
k
=
1
K
−
1
exp
(
w
k
⋅
x
)
P(Y=K|x) = \frac{1}{1 + \sum_{k=1}^{K-1} \exp(w_k \cdot x)}
P(Y=K∣x)=1+∑k=1K−1exp(wk⋅x)1
最大熵模型
最大熵原理
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型分布中,熵最大的模型就是最好的模型。
通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合汇总选取熵最大的模型。
假设离散随机变量
X
X
X的概率分布式
P
(
X
)
P(X)
P(X),则其熵是
H
(
P
)
=
−
∑
x
P
(
x
)
log
P
(
x
)
(6.9)
H(P) = -\sum_x P(x) \log P(x) \tag{6.9}
H(P)=−x∑P(x)logP(x)(6.9)
熵的公式可以参考一文弄懂信息熵。
熵满足下列不等式:
0
≤
H
(
P
)
≤
log
∣
X
∣
0 \leq H(P) \leq \log |X|
0≤H(P)≤log∣X∣
其中,
∣
X
∣
|X|
∣X∣是
X
X
X的取值个数,当且仅当
X
X
X的分布式均匀分布时
H
(
P
)
=
log
∣
X
∣
H(P) = \log |X|
H(P)=log∣X∣。即,当
X
X
X服从均匀分布时,熵最大。
最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性。
下面,通过一个例子来介绍一下最大熵原理。
例 6.1 假设随机变量 X X X有5个取值 { A , B , C , D , E } \{A,B,C,D,E\} {A,B,C,D,E},要估计各个值的概率 P ( A ) , P ( B ) , P ( C ) , P ( D ) , P ( E ) P(A),P(B),P(C),P(D),P(E) P(A),P(B),P(C),P(D),P(E)。
解 这些概率值满足以下约束条件:
P
(
A
)
+
P
(
B
)
+
P
(
C
)
+
P
(
D
)
+
P
(
E
)
=
1
P(A) +P(B) +P(C) + P(D) + P(E) = 1
P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这个约束条件的概率分布有无穷多个。如果没有任何其他信息,一个办法就是认为这个分布中取各个值的概率都是相等的:
P
(
A
)
=
P
(
B
)
=
P
(
C
)
=
P
(
D
)
=
P
(
E
)
=
1
5
P(A) =P(B) =P(C) =P(D) = P(E) = \frac{1}{5}
P(A)=P(B)=P(C)=P(D)=P(E)=51
有时,能从一些先验知识中得到一些对概率值的约束条件,例如:
P
(
A
)
+
P
(
B
)
=
3
10
P
(
A
)
+
P
(
B
)
+
P
(
C
)
+
P
(
D
)
+
P
(
E
)
=
1
P(A) +P(B) = \frac{3}{10} \\ P(A) +P(B) +P(C) + P(D) + P(E) = 1
P(A)+P(B)=103P(A)+P(B)+P(C)+P(D)+P(E)=1
满足这两个约束条件的概率分布仍然有无穷多个。在缺少其他信息的情况下,可以认为
A
A
A与
B
B
B是等概率的,
C
,
D
,
E
C,D,E
C,D,E是等概率的,于是,
P
(
A
)
=
P
(
B
)
=
3
20
P
(
C
)
=
P
(
D
)
=
P
(
E
)
=
7
30
P(A) =P(B) = \frac{3}{20} \\ P(C)=P(D)= P(E) = \frac{7}{30}
P(A)=P(B)=203P(C)=P(D)=P(E)=307
如果还有第3个约束条件:
P
(
A
)
+
P
(
C
)
=
1
2
P
(
A
)
+
P
(
B
)
=
3
10
P
(
A
)
+
P
(
B
)
+
P
(
C
)
+
P
(
D
)
+
P
(
E
)
=
1
P(A) +P(C) = \frac{1}{2} \\ P(A) + P(B) = \frac{3}{10} \\ P(A) +P(B) +P(C) + P(D) + P(E) = 1\\
P(A)+P(C)=21P(A)+P(B)=103P(A)+P(B)+P(C)+P(D)+P(E)=1
可以继续安装满足约束条件下求等概率的方法估计概率分布。这里稍微复杂一点,可以让
P
(
B
)
,
P
(
C
)
,
P
(
D
)
,
P
(
E
)
P(B),P(C),P(D),P(E)
P(B),P(C),P(D),P(E)都用
P
(
A
)
P(A)
P(A)来表示,最终计算出
P
(
A
)
P(A)
P(A)。
最大熵模型的定义
最大熵原理应用到分类得到最大熵模型。
假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X), X ∈ X ⊆ R n X \in \mathcal X \subseteq \Bbb R^n X∈X⊆Rn表示输入, Y ∈ Y Y \in \cal Y Y∈Y表示输出, X \cal X X和 Y \cal Y Y分别是输入和输出的集合。这个模型表示的是对于给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)输出 Y Y Y。
给定一个训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
N
,
y
N
)
}
T= \{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
学习的目标是用最大熵原理选择最好的分类模型。
首先考虑模型应该满足的条件。给定训练数据集,可以确定联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的经验分布和边缘分布
P
(
X
)
P(X)
P(X)的经验分布,分别以
P
~
(
X
,
Y
)
\tilde P(X,Y)
P~(X,Y)和
P
~
(
X
)
\tilde P(X)
P~(X)表示。这两个经验分布计算如下:
P
~
(
X
=
x
,
Y
=
y
)
=
v
(
X
=
x
,
Y
=
y
)
N
P
~
(
X
=
x
)
=
v
(
X
=
x
)
N
\tilde P(X=x,Y=y) = \frac{v(X=x,Y=y)}{N} \\ \tilde P(X=x) = \frac{v(X=x)}{N}
P~(X=x,Y=y)=Nv(X=x,Y=y)P~(X=x)=Nv(X=x)
其中,
v
(
X
=
x
,
Y
=
y
)
v(X=x,Y=y)
v(X=x,Y=y)表示训练数据中样本
(
x
,
y
)
(x,y)
(x,y)出现的频数,
v
(
X
=
x
)
v(X=x)
v(X=x)表示输入
x
x
x出现的频数,
N
N
N表示训练样本总量。
用特征函数(feature function)
f
(
x
,
y
)
f(x,y)
f(x,y)描述输入
x
x
x和输出
y
y
y之间的某一个事实。其定义是
f
(
x
,
y
)
=
{
1
,
x
与
y
满足某一事实
0
,
否则
f(x,y) = \left\{ \begin{array}{lr} 1, & x与y满足某一事实\\ 0, & 否则 \end{array} \right.
f(x,y)={1,0,x与y满足某一事实否则
当
x
,
y
x,y
x,y满足这个事实时区直为
1
1
1,否则取值为
0
0
0。
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
~
(
X
,
Y
)
\tilde P(X,Y)
P~(X,Y)的期望值,用
E
P
~
(
f
)
E_{\tilde P}(f)
EP~(f)表示:
E
P
~
(
f
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
E_{\tilde P}(f) = \sum_{x,y} \tilde P(x,y)f(x,y)
EP~(f)=x,y∑P~(x,y)f(x,y)
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于模型
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)与经验分布
P
~
(
X
)
\tilde P(X)
P~(X)的期望值,用
E
p
(
f
)
E_p(f)
Ep(f)表示:
E
P
(
f
)
=
∑
x
,
y
P
(
x
,
y
)
f
(
x
,
y
)
=
∑
x
,
y
P
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
E_P(f) = \sum_{x,y} P(x,y)f(x,y)= \sum_{x,y} P(x) P(y|x)f(x,y) = \sum_{x,y} \tilde P(x) P(y|x)f(x,y)
EP(f)=x,y∑P(x,y)f(x,y)=x,y∑P(x)P(y∣x)f(x,y)=x,y∑P~(x)P(y∣x)f(x,y)
这里用
x
x
x的经验分布
P
~
(
x
)
\tilde P(x)
P~(x)来代替真实分布
P
(
x
)
P(x)
P(x)。
我们无法保证训练数据集得到的经验分布和真实分布完全相同,但我们可以假设它们的期望相同,即
E
P
(
f
)
=
E
P
~
(
f
)
(6.10)
E_P(f) = E_{\tilde P}(f) \tag{6.10}
EP(f)=EP~(f)(6.10)
或者说
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
(6.11)
\sum_{x,y} \tilde P(x) P(y|x)f(x,y) = \sum_{x,y} \tilde P(x,y)f(x,y) \tag{6.11}
x,y∑P~(x)P(y∣x)f(x,y)=x,y∑P~(x,y)f(x,y)(6.11)
我们将式
(
6.10
)
(6.10)
(6.10)或
(
6.11
)
(6.11)
(6.11)作为模型学习的约束条件。假设有
n
n
n个特征函数
f
i
(
x
,
y
)
,
i
=
1
,
2
,
⋯
,
n
f_i(x,y),\,i=1,2,\cdots,n
fi(x,y),i=1,2,⋯,n,那么就有
n
n
n个约束条件。
定义6.3 (最大熵模型) 假设满足所有约束条件的模型集合为
C
≡
{
P
∈
P
∣
E
p
(
f
i
)
=
E
P
~
(
f
i
)
,
i
=
1
,
2
,
⋯
,
n
}
(6.12)
\mathcal C \equiv \{ P \in \mathcal P| E_p(f_i)=E_{\tilde P}(f_i),\quad i=1,2,\cdots,n \} \tag{6.12}
C≡{P∈P∣Ep(fi)=EP~(fi),i=1,2,⋯,n}(6.12)
那么定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵为
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
(6.13)
H(P) = -\sum_{x,y} \tilde P(x)P(y|x) \log P(y|x) \tag{6.13}
H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)(6.13)
则模型集合
C
\cal C
C中条件熵
H
(
P
)
H(P)
H(P)最大的模型称为最大熵模型,式中的对数为自然对数。
条件熵 H ( Y ∣ X = x ) H(Y|X=x) H(Y∣X=x)为变量 Y Y Y在变量 X X X取特定值 x x x条件下的熵,那么 H ( Y ∣ X ) H(Y|X) H(Y∣X)就是 H ( Y ∣ X = x ) H(Y|X=x) H(Y∣X=x)在 X X X取遍所有可能的 x x x后取平均的结果。
给定随机变量
X
X
X和
Y
Y
Y,取值分别为
X
\cal X
X和
Y
\cal Y
Y,在给定
X
X
X条件下
Y
Y
Y的条件熵定义为:
H
(
Y
∣
X
)
=
∑
x
∈
X
p
(
x
)
H
(
Y
∣
X
=
x
)
=
−
∑
x
∈
X
p
(
x
)
∑
y
∈
Y
p
(
y
∣
x
)
log
p
(
y
∣
x
)
=
−
∑
x
∈
X
∑
y
∈
Y
p
(
x
)
p
(
y
∣
x
)
log
p
(
y
∣
x
)
=
−
∑
x
∈
X
,
y
∈
Y
p
(
x
)
p
(
y
∣
x
)
log
p
(
y
∣
x
)
\begin{aligned} H(Y|X) &= \sum_{x \in \cal X} p(x)H(Y|X=x) \\ &= - \sum_{x \in \cal X} p(x) \sum_{y\in \cal Y} p(y|x) \log p(y|x) \\ &= - \sum_{x \in \cal X} \sum_{y\in \cal Y} p(x)p(y|x) \log p(y|x) \\ &= - \sum_{x \in \mathcal X,y \in \mathcal Y} p(x)p(y|x) \log p(y|x) \\ \end{aligned}
H(Y∣X)=x∈X∑p(x)H(Y∣X=x)=−x∈X∑p(x)y∈Y∑p(y∣x)logp(y∣x)=−x∈X∑y∈Y∑p(x)p(y∣x)logp(y∣x)=−x∈X,y∈Y∑p(x)p(y∣x)logp(y∣x)
用
x
x
x的经验分布
P
~
(
x
)
\tilde P(x)
P~(x)来代替真实分布
P
(
x
)
P(x)
P(x),就得到了
(
6.13
)
(6.13)
(6.13)。
最大熵模型的学习
最大熵模型的学习过程就是求解最大熵模型的过程。最大熵模型的学习可以形式化为约束最优化问题。
对于给定的训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)}以及特征函数
f
i
(
x
,
y
)
,
i
=
1
,
2
,
⋯
,
n
f_i(x,y),\,i=1,2,\cdots,n
fi(x,y),i=1,2,⋯,n,最大熵模型的学习等价于约束最优化问题:
max
P
∈
C
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
s.t.
E
P
(
f
i
)
=
E
P
~
(
f
i
)
,
i
=
1
,
…
,
n
∑
y
P
(
y
∣
x
)
=
1
\begin{aligned} &\max_{P \in C} \quad &&H(P) = -\sum_{x,y} \tilde P(x)P(y|x)\log P(y|x)\\ &\text{s.t.}\quad &&E_P(f_i) =E_{\tilde P}(f_i),\quad i=1,\dots,n\\ &&&\sum_y P(y|x) = 1 \end{aligned}
P∈Cmaxs.t.H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)EP(fi)=EP~(fi),i=1,…,ny∑P(y∣x)=1
我们倾向于最小化,所以将最大值问题改写为等价的求最小值问题:
min
P
∈
C
−
H
(
P
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
(6.14)
\min_{P \in C} -H(P) = \sum_{x,y} \tilde P(x)P(y|x) \log P(y|x) \tag{6.14}
P∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x)(6.14)
s.t. E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , … , n (6.15) \text{s.t.}\quad E_P(f_i) - E_{\tilde P}(f_i)=0,\quad i=1,\dots,n \tag{6.15} s.t.EP(fi)−EP~(fi)=0,i=1,…,n(6.15)
∑ y P ( y ∣ x ) = 1 (6.16) \sum_y P(y|x) = 1 \tag{6.16} y∑P(y∣x)=1(6.16)
只要求解约束最优化问题 ( 6.14 ) ∼ ( 6.16 ) (6.14)\sim(6.16) (6.14)∼(6.16),所得出的解,就是最大熵模型学习的解。下面来推导一下。
根据补充知识,将约束最优化问题的原始问题转换为无约束最优化的对偶问题。通过求解对偶问题求解原始问题。
首先,引进拉格朗日乘子
w
0
,
w
1
,
⋯
,
w
n
w_0,w_1,\cdots,w_n
w0,w1,⋯,wn,定义拉格朗日函数
L
(
P
,
w
)
L(P,w)
L(P,w):
L
(
P
,
w
)
≡
−
H
(
P
)
+
w
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
=
1
n
w
i
(
E
P
~
(
f
i
)
−
(
E
P
(
f
i
)
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
+
w
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
=
1
n
w
i
(
∑
x
,
y
P
~
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
i
(
x
,
y
)
)
(6.17)
\begin{aligned} L(P,w) &\equiv -H(P) + w_0\left(1- \sum_y P(y|x) \right) + \sum_{i=1}^n w_i (E_{\tilde P}(f_i) -(E_P(f_i)) \\ &= \sum_{x,y} \tilde P(x)P(y|x) \log P(y|x) + w_0\left(1- \sum_y P(y|x) \right) + \sum_{i=1}^n w_i \left( \sum_{x,y} \tilde P(x,y)f_i(x,y) - \sum_{x,y} \tilde P(x) P(y|x)f_i(x,y) \right) \end{aligned} \tag{6.17}
L(P,w)≡−H(P)+w0(1−y∑P(y∣x))+i=1∑nwi(EP~(fi)−(EP(fi))=x,y∑P~(x)P(y∣x)logP(y∣x)+w0(1−y∑P(y∣x))+i=1∑nwi(x,y∑P~(x,y)fi(x,y)−x,y∑P~(x)P(y∣x)fi(x,y))(6.17)
最优化的原始问题是
min
P
∈
C
max
w
L
(
P
,
w
)
(6.18)
\min_{P \in C} \max_w L(P,w) \tag{6.18}
P∈CminwmaxL(P,w)(6.18)
对偶问题是
max
w
min
P
∈
C
L
(
P
,
w
)
(6.19)
\max_w \min_{P \in C} L(P,w) \tag{6.19}
wmaxP∈CminL(P,w)(6.19)
由于拉格朗日函数
L
(
P
,
w
)
L(P,w)
L(P,w)是
P
P
P的凸函数,原始问题
(
6.18
)
(6.18)
(6.18)的解与对偶问题
(
6.19
)
(6.19)
(6.19)的解是等价的。这样可以通过求解对偶问题
(
6.19
)
(6.19)
(6.19)来求解原始问题
(
6.18
)
(6.18)
(6.18)。
这里暂时不证明这个拉格朗日函数是 P P P的凸函数。
首先,求解对偶问题
(
6.19
)
(6.19)
(6.19)内部的极小化问题
min
P
∈
C
L
(
P
,
w
)
\min_{P \in C} L(P,w)
minP∈CL(P,w)。
min
P
∈
C
L
(
P
,
w
)
\min_{P \in C} L(P,w)
minP∈CL(P,w)是
w
w
w的函数,将其记作
Ψ
(
w
)
=
min
P
∈
C
L
(
P
,
w
)
=
L
(
P
w
,
w
)
(6.20)
\Psi(w) = \min_{P \in C} L(P,w) = L(P_w,w) \tag{6.20}
Ψ(w)=P∈CminL(P,w)=L(Pw,w)(6.20)
Ψ
(
w
)
\Psi(w)
Ψ(w)称为对偶函数。同时,将其解记作
P
w
=
arg
min
P
∈
C
L
(
P
,
w
)
=
P
w
(
y
∣
x
)
(6.21)
P_w = \arg\,\min_{P \in C} L(P,w) = P_w(y|x) \tag{6.21}
Pw=argP∈CminL(P,w)=Pw(y∣x)(6.21)
首先,求
L
(
P
,
w
)
L(P,w)
L(P,w)对
P
(
y
∣
x
)
P(y|x)
P(y∣x)的偏导数
∂
L
(
P
,
w
)
∂
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
)
(
log
P
(
y
∣
x
)
+
1
)
−
∑
y
w
0
−
∑
x
,
y
P
~
(
x
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
)
(
log
P
(
y
∣
x
)
+
1
−
w
0
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
\begin{aligned} \frac{\partial L(P,w)}{\partial P(y|x)} &= \sum_{x,y} \tilde P(x)(\log P(y|x) +1) -\sum_y w_0 -\sum_{x,y} \tilde P(x) \sum_{i=1}^n w_i f_i(x,y) \\ &= \sum_{x,y} \tilde P(x) \left(\log P(y|x) + 1 - w_0 - \sum_{i=1}^n w_i f_i(x,y) \right) \end{aligned}
∂P(y∣x)∂L(P,w)=x,y∑P~(x)(logP(y∣x)+1)−y∑w0−x,y∑P~(x)i=1∑nwifi(x,y)=x,y∑P~(x)(logP(y∣x)+1−w0−i=1∑nwifi(x,y))
令偏导数等于0,在
P
~
(
x
)
>
0
\tilde P(x) > 0
P~(x)>0的情况下,上式可得
log
P
(
y
∣
x
)
+
1
−
w
0
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
=
0
log
P
(
y
∣
x
)
=
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
+
w
0
−
1
P
(
y
∣
x
)
=
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
+
w
0
−
1
)
P
(
y
∣
x
)
=
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
1
−
w
0
)
\log P(y|x) + 1 - w_0 - \sum_{i=1}^n w_i f_i(x,y) = 0\\ \log P(y|x) = \sum_{i=1}^n w_i f_i(x,y) + w_0 -1 \\ P(y|x) = \exp\left(\sum_{i=1}^n w_i f_i(x,y) + w_0 -1 \right) \\ P(y|x) = \frac{\exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\exp(1-w_0)}
logP(y∣x)+1−w0−i=1∑nwifi(x,y)=0logP(y∣x)=i=1∑nwifi(x,y)+w0−1P(y∣x)=exp(i=1∑nwifi(x,y)+w0−1)P(y∣x)=exp(1−w0)exp(∑i=1nwifi(x,y))
这样我们把最大熵问题转换成了计算
w
i
w_i
wi的问题,即与拉格朗日乘子有关。
再利用
∑
y
P
(
y
∣
x
)
=
1
\sum_y P(y|x) =1
∑yP(y∣x)=1,把上式两边加上
∑
y
\sum_y
∑y:
∑
y
P
(
y
∣
x
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
∑
y
exp
(
1
−
w
0
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
1
−
w
0
)
∑
y
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
1
−
w
0
)
=
1
⇒
exp
(
1
−
w
0
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
\sum_y P(y|x) = \frac{\sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\sum_y\exp(1-w_0)}= \frac{\sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\exp(1-w_0)\sum_y} \\ \frac{\sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)}{\exp(1-w_0)} = 1 \Rightarrow \exp(1-w_0) = \sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right)
y∑P(y∣x)=∑yexp(1−w0)∑yexp(∑i=1nwifi(x,y))=exp(1−w0)∑y∑yexp(∑i=1nwifi(x,y))exp(1−w0)∑yexp(∑i=1nwifi(x,y))=1⇒exp(1−w0)=y∑exp(i=1∑nwifi(x,y))
上式这个
exp
(
1
−
w
0
)
\exp(1-w_0)
exp(1−w0)的表达式我们计算出来了,就是所谓的规范化因子,改变
w
w
w就得到了不同的函数,所以是和
w
w
w有关的,而
y
y
y已经被求和约掉了,只剩下参数
x
x
x,记为
Z
w
(
x
)
Z_w(x)
Zw(x),称作规范化因子。
即
Z
w
(
x
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(6.22)
Z_w(x) = \sum _y \exp\left(\sum_{i=1}^n w_if_i(x,y)\right) \tag{6.22}
Zw(x)=y∑exp(i=1∑nwifi(x,y))(6.22)
把
Z
w
(
x
)
Z_w(x)
Zw(x)代入到上面的
exp
(
1
−
w
0
)
\exp(1-w_0)
exp(1−w0),得到
P
(
y
∣
x
)
P(y|x)
P(y∣x)的表达式:
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(6.23)
P_w(y|x) = \frac{1}{Z_w(x)} \exp\left(\sum_{i=1}^n w_if_i(x,y)\right) \tag{6.23}
Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))(6.23)
不同的一组
w
w
w会得到不同的概率分布,所以写成
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x)。
其中 f i ( x , y ) f_i(x,y) fi(x,y)是特征函数; w i w_i wi对应的权重。
由式 ( 6.22 ) (6.22) (6.22)和 ( 6.23 ) (6.23) (6.23)表示的模型 P w = P w ( y ∣ x ) P_w=P_w(y|x) Pw=Pw(y∣x)就是最大熵模型。这里 w w w是最大熵模型中的参数向量。
所以,最大熵模型的学习,学的就是特征函数对应的权重。
之后,求解对偶问题外部的极大化问题
max
w
Ψ
(
w
)
(6.24)
\max_w \Psi(w) \tag{6.24}
wmaxΨ(w)(6.24)
将它的解记为
w
∗
w^*
w∗,即
w
∗
=
arg
max
w
Ψ
(
w
)
(6.25)
w^* = \arg \max_w \Psi(w) \tag{6.25}
w∗=argwmaxΨ(w)(6.25)
此时,可以应用最优化算法求对偶函数
Ψ
(
w
)
\Psi(w)
Ψ(w)的极大化,得到
w
∗
w^*
w∗,用来表示
P
∗
∈
C
P^* \in \cal C
P∗∈C。
这里, P ∗ = P w ∗ = P w ∗ ( y ∣ x ) P^*=P_{w^*} = P_{w^*} (y|x) P∗=Pw∗=Pw∗(y∣x)是学习到的最优模型(最大熵模型)。
说明最大熵模型的学习归结为对偶函数 Ψ ( w ) \Psi(w) Ψ(w)的极大化。
我们来看一个例题。
例 6.2 学习例6.1中的最大熵模型。
解 为了方便,分别以
y
1
,
y
2
,
y
3
,
y
4
,
y
5
y_1,y_2,y_3,y_4,y_5
y1,y2,y3,y4,y5表示
A
,
B
,
C
,
D
,
E
A,B,C,D,E
A,B,C,D,E,于是最大熵模型学习的最优化问题是
min
−
H
(
P
)
=
∑
i
=
1
5
P
(
y
i
)
log
P
(
y
i
)
s.t.
P
(
y
1
)
+
P
(
y
2
)
=
P
~
(
y
1
)
+
P
~
(
y
2
)
=
3
10
∑
i
=
1
5
P
(
y
i
)
=
∑
i
=
1
5
P
~
(
y
i
)
=
1
\begin{aligned} &\min \quad &&-H(P) = \sum_{i=1}^5 P(y_i)\log P(y_i) \\ &\text{s.t.}\quad &&P(y_1) + P(y_2) = \tilde P(y_1) + \tilde P(y_2) = \frac{3}{10}\\ &&&\sum_{i=1}^5 P(y_i) = \sum_{i=1}^5 \tilde P(y_i)=1 \end{aligned}
mins.t.−H(P)=i=1∑5P(yi)logP(yi)P(y1)+P(y2)=P~(y1)+P~(y2)=103i=1∑5P(yi)=i=1∑5P~(yi)=1
这里我们要找到使得负熵最小的那个分布
P
P
P。
引进拉格朗日乘子
w
0
,
w
1
w_0,w_1
w0,w1,定义拉格朗日函数
L
(
P
,
w
)
=
∑
i
=
1
5
P
(
y
i
)
log
P
(
y
i
)
+
w
1
(
P
(
y
1
)
+
P
(
y
2
)
−
3
10
)
+
w
0
(
∑
i
=
1
5
P
(
y
i
)
−
1
)
L(P,w) =\sum_{i=1}^5 P(y_i)\log P(y_i) + w_1\left(P(y_1) + P(y_2) -\frac{3}{10} \right) + w_0\left( \sum_{i=1}^5 P(y_i) - 1\right)
L(P,w)=i=1∑5P(yi)logP(yi)+w1(P(y1)+P(y2)−103)+w0(i=1∑5P(yi)−1)
根据拉格朗日对偶性,可以通过求解对偶最优化问题得到原始最优化问题的解,所以求
max
w
min
P
L
(
P
,
w
)
\max_w \,\min_P L(P,w)
wmaxPminL(P,w)
首先求解
L
(
P
,
w
)
L(P,w)
L(P,w)关于
P
P
P的极小化问题。为此,固定
w
0
,
w
1
w_0,w_1
w0,w1,求偏导数:
∂
L
(
P
,
w
)
∂
P
(
y
1
)
=
log
P
(
y
1
)
+
1
+
w
1
+
w
0
∂
L
(
P
,
w
)
∂
P
(
y
2
)
=
log
P
(
y
2
)
+
1
+
w
1
+
w
0
∂
L
(
P
,
w
)
∂
P
(
y
3
)
=
log
P
(
y
3
)
+
1
+
w
0
∂
L
(
P
,
w
)
∂
P
(
y
4
)
=
log
P
(
y
4
)
+
1
+
w
0
∂
L
(
P
,
w
)
∂
P
(
y
5
)
=
log
P
(
y
5
)
+
1
+
w
0
\frac{\partial L(P,w)}{\partial P(y_1)} = \log P(y_1) + 1 + w_1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_2)} = \log P(y_2) + 1 + w_1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_3)} = \log P(y_3) + 1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_4)} = \log P(y_4) + 1 + w_0 \\ \frac{\partial L(P,w)}{\partial P(y_5)} = \log P(y_5) + 1 + w_0 \\
∂P(y1)∂L(P,w)=logP(y1)+1+w1+w0∂P(y2)∂L(P,w)=logP(y2)+1+w1+w0∂P(y3)∂L(P,w)=logP(y3)+1+w0∂P(y4)∂L(P,w)=logP(y4)+1+w0∂P(y5)∂L(P,w)=logP(y5)+1+w0
令各偏导数等于0,解得
P
(
y
1
)
=
P
(
y
2
)
=
e
−
w
1
−
w
0
−
1
P
(
y
3
)
=
P
(
y
4
)
=
P
(
y
5
)
=
e
−
w
0
−
1
P(y_1)=P(y_2) = e^{-w_1-w_0-1}\\ P(y_3) =P(y_4)=P(y_5) = e^{-w_0-1}
P(y1)=P(y2)=e−w1−w0−1P(y3)=P(y4)=P(y5)=e−w0−1
把它们代入到
L
(
P
,
w
)
L(P,w)
L(P,w)中,于是,
min
P
L
(
P
,
w
)
=
L
(
P
w
,
w
)
=
−
2
e
−
w
1
−
w
0
−
1
−
3
e
−
w
0
−
1
−
3
10
w
1
−
w
0
\min_P L(P,w) = L(P_w,w) = -2e^{-w_1-w_0-1} - 3e^{-w_0-1} -\frac{3}{10}w_1 -w_0
PminL(P,w)=L(Pw,w)=−2e−w1−w0−1−3e−w0−1−103w1−w0
再求解
L
(
P
w
,
w
)
L(P_w,w)
L(Pw,w)关于
w
w
w的极大化问题:
max
w
L
(
P
w
,
w
)
=
−
2
e
−
w
1
−
w
0
−
1
−
3
e
−
w
0
−
1
−
3
10
w
1
−
w
0
\max_w L(P_w,w) = -2e^{-w_1-w_0-1} - 3e^{-w_0-1} -\frac{3}{10}w_1 -w_0
wmaxL(Pw,w)=−2e−w1−w0−1−3e−w0−1−103w1−w0
分别求
L
(
P
w
,
w
)
L(P_w,w)
L(Pw,w)对
w
0
,
w
1
w_0,w_1
w0,w1的偏导数并令其为0,得到
e
−
w
1
−
w
0
−
1
=
3
20
e
−
w
0
−
1
=
7
30
e^{-w_1-w_0-1} = \frac{3}{20}\\ e^{-w_0-1}= \frac{7}{30}
e−w1−w0−1=203e−w0−1=307
于是得到所要求的概率分布为
P
(
y
1
)
=
P
(
y
2
)
=
3
20
P
(
y
3
)
=
P
(
y
4
)
=
P
(
y
5
)
=
7
30
P(y_1) = P(y_2) = \frac{3}{20} \\ P(y_3) = P(y_4) =P(y_5)= \frac{7}{30}
P(y1)=P(y2)=203P(y3)=P(y4)=P(y5)=307