预备知识
熵
离散型变量X的概率分布是P(X)。它的熵
H
(
X
)
o
r
H
(
P
)
{H(X) \; or \; H(P)}
H(X)orH(P)越大,代表越均匀、越混乱、越不确定。熵的公式如下:
H
(
P
)
=
−
∑
x
∈
X
P
(
x
)
log
P
(
x
)
{H(P)} = {- \sum_{x \in X}P(x) \log P(x)}
H(P)=−x∈X∑P(x)logP(x)
当X服从均匀分布时,熵最大。
联合熵
熟悉了一个变量X的熵,很容易推广到多个个变量的联合熵,这里给出两个变量X和Y的联合熵表达式:
H
(
X
,
Y
)
=
−
∑
i
=
1
n
p
(
x
i
,
y
i
)
l
o
g
p
(
x
i
,
y
i
)
H(X,Y) = -\sum\limits_{i=1}^{n}p(x_i,y_i)logp(x_i,y_i)
H(X,Y)=−i=1∑np(xi,yi)logp(xi,yi)
条件熵
有了联合熵,又可以得到条件熵的表达式H(Y|X),条件熵类似于条件概率,它度量了我们的Y在知道X以后剩下的不确定性。表达式如下:
H
(
Y
∣
X
)
=
∑
j
=
1
n
p
(
x
j
)
H
(
Y
∣
x
j
)
=
−
∑
i
=
1
n
p
(
x
i
,
y
i
)
l
o
g
p
(
y
i
∣
x
i
)
H(Y|X) = \sum\limits_{j=1}^{n}p(x_j)H(Y|x_j) = -\sum\limits_{i=1}^{n}p(x_i,y_i)logp(y_i|x_i)
H(Y∣X)=j=1∑np(xj)H(Y∣xj)=−i=1∑np(xi,yi)logp(yi∣xi)
最大熵的原理
最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。
假如某个事件包含两个部分:确定的部分(约束条件)和不确定的部分。选择模型时需要:
-
要满足所有的约束条件,即满足已有的确定的事实
-
均分不确定的部分
举个例子: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
)
=
3
10
P(A) + P(B) = \frac{3}{10}
P(A)+P(B)=103
则,满足约束条件的情况下,不确定的部分的概率平分(条件熵最大):这样的模型是最好的模型:
P
(
A
)
=
P
(
B
)
=
3
20
,
P
(
C
)
=
P
(
D
)
=
P
(
E
)
=
7
30
P(A) = P(B) = \frac{3}{20}, \quad P(C)=P(D)=P(E) = \frac{7}{30}
P(A)=P(B)=203,P(C)=P(D)=P(E)=307
**条件熵最大意味着:在给定了约束条件情况下,剩余事件的概率最均衡,因此模型最好。**于是可以得出,最大熵模型就是要:满足约束条件,并且使得“条件熵”最大。
最大熵模型
给定一个训练集 ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . , ( x ( m ) , y ( m ) ) {(x^{(1)},y^{(1)}), (x^{(2)},y^{(2)}), ... ,(x^{(m)},y^{(m)})} (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),其中x为n维特征向量,y为类别输出。我们的目标就是用最大熵模型选择一个最好的分类类型。
在给定训练集的情况下,我们可以得到总体联合分布 P ( X , Y ) P(X,Y) P(X,Y)的经验分布 P ~ ( X , Y ) \widetilde {P}(X,Y) P (X,Y)和边缘分布 P ( X ) P(X) P(X)的经验分布 P ~ ( X ) \widetilde {P}(X) P (X)。 P ~ ( X , Y ) \widetilde {P}(X,Y) P (X,Y)即为训练集中X,Y同时出现的次数除以样本总数m, P ~ ( X ) \widetilde {P}(X) P (X)即为训练集中X出现的次数除以样本总数m。
用特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)描述输入x和输出y之间的关系。定义为:
f
(
x
,
y
)
=
{
1
x
与
y
满
足
某
个
关
系
0
否
则
f(x,y)= \begin{cases} 1& {x与y满足某个关系}\\ 0& {否则} \end{cases}
f(x,y)={10x与y满足某个关系否则
同一个训练样本可以有多个约束特征函数。
一、约束条件
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
~
(
X
,
Y
)
\widetilde {P}(X,Y)
P
(X,Y)的期望值,表示为:
E
P
~
(
f
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
E_{ \widetilde {P}}(f) = \sum\limits_{x,y} \widetilde {P}(x,y)f(x,y)
EP
(f)=x,y∑P
(x,y)f(x,y)
由于特征函数是个二值函数,因此期望
E
P
~
(
f
)
E_{ \widetilde {P}}(f)
EP
(f)可以理解为:所有满足x与y某个关系
f
f
f的样本对经验分布
P
~
(
X
,
Y
)
\widetilde {P}(X,Y)
P
(X,Y)的计数并求和。
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于条件分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)和经验分布
P
~
(
X
)
\widetilde {P}(X)
P
(X)的期望值,用
E
P
(
f
)
E_{P}(f)
EP(f)表示为:
E
P
(
f
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
E_{P}(f) = \sum\limits_{x,y} \widetilde {P}(x)P(y|x)f(x,y)
EP(f)=x,y∑P
(x)P(y∣x)f(x,y)
如果抽取到的样本具有足够的代表性,那么我们可以认为:
P
~
(
x
,
y
)
=
P
~
(
x
)
P
(
y
∣
x
)
\widetilde {P}(x,y) = \widetilde {P}(x)P(y|x)
P
(x,y)=P
(x)P(y∣x)
进而可以假设上面的两个期望值相等:
E
P
~
(
f
)
=
E
P
(
f
)
E_{ \widetilde {P}}(f) = E_{P}(f)
EP
(f)=EP(f)
上式就是最大熵模型学习的约束条件,假如我们有N个特征函数
f
i
(
x
,
y
)
(
i
=
1
,
2...
,
N
)
f_i(x,y) (i=1,2...,N)
fi(x,y)(i=1,2...,N)就有N个约束条件。可以理解为我们如果训练集里有m个样本,就有和这m个样本对应的N个约束条件。于是有约束条件如下:
E
P
~
(
f
i
)
=
E
P
(
f
i
)
(
i
=
1
,
2
,
.
.
.
N
)
E_{ \widetilde {P}}(f_i) = E_{P}(f_i) (i=1,2,...N)
EP
(fi)=EP(fi)(i=1,2,...N)
二、条件熵最大
最大熵模型假设分类模型是一个条件概率分布P(Y|X),X为特征,Y为输出。条件熵衡量了条件概率分布的均匀性,给定某个约束条件的情况下,当不确定事件的概率都相同的时候条件熵最大。于是条件熵是最大熵原理提出的基础,最大的是条件熵。
定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵为:
H
(
P
)
=
−
∑
x
,
y
P
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
\begin{aligned} H(P) &= -\sum\limits_{x,y}P(x,y)logP(y|x)\\ &= -\sum\limits_{x,y} \widetilde {P}(x)P(y|x)logP(y|x) \end{aligned}
H(P)=−x,y∑P(x,y)logP(y∣x)=−x,y∑P
(x)P(y∣x)logP(y∣x)
我们的目标是得到使
H
(
P
)
H(P)
H(P)最大的时候对应的
P
(
y
∣
x
)
P(y|x)
P(y∣x),这里可以对
H
(
P
)
H(P)
H(P)加了个负号求极小值,这样做的目的是为了使
−
H
(
P
)
−H(P)
−H(P)为凸函数,方便使用凸优化的方法来求极值。
最大熵模型的推导
最大熵模型的学习可以形式化为约束最优化问题:
min
P
∈
C
−
H
(
P
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
\min \limits_{P\in \mathcal {C}}-H(P)=\sum\limits_{x,y}\widetilde P(x)P(y|x)\log P(y|x)
P∈Cmin−H(P)=x,y∑P
(x)P(y∣x)logP(y∣x)
约束条件为:
s
.
t
.
∑
y
P
(
y
∣
x
)
=
1
E
P
(
f
i
)
−
E
P
~
(
f
i
)
=
0
,
i
=
1
,
2
,
…
,
n
s.t. \sum \limits_y P(y|x)=1\\ E_P(f_i)-E_{\widetilde P}(f_i)=0, i =1,2,\dots,n
s.t.y∑P(y∣x)=1EP(fi)−EP
(fi)=0,i=1,2,…,n
上面的问题可以用拉格朗日函数将其转化为无约束优化函数,此时损失函数对应的拉格朗日函数
L
(
P
,
w
)
L(P,w)
L(P,w)定义为:
L
(
P
,
w
)
=
−
H
(
P
)
+
w
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
=
1
M
w
i
(
E
P
~
(
f
i
)
−
E
P
(
f
i
)
)
L(P,w) = -H(P) + w_0(1 - \sum\limits_yP(y|x)) + \sum\limits_{i=1}^{M}w_i(E_{ \widetilde {P}}(f_i) - E_{P}(f_i))
L(P,w)=−H(P)+w0(1−y∑P(y∣x))+i=1∑Mwi(EP
(fi)−EP(fi))
其中
w
i
(
i
=
1
,
2
,
.
.
.
m
)
w_i(i=1,2,...m)
wi(i=1,2,...m)为拉格朗日乘子。我们的拉格朗日函数
L
(
P
,
w
)
L(P,w)
L(P,w),即为凸优化的原始问题:
min
P
∈
C
max
w
L
(
P
,
w
)
\min \limits_{P \in C} \max \limits_{w} L(P, w)
P∈CminwmaxL(P,w),对偶问题为:
max
w
min
P
∈
C
L
(
P
,
w
)
\max \limits_{w} \min \limits_{P \in C} L(P, w)
wmaxP∈CminL(P,w)
求极小
求解对偶问题的第一步就是求
min
P
∈
C
L
(
P
,
w
)
\min \limits_{P \in C} L(P, w)
P∈CminL(P,w):
Ψ
(
w
)
=
min
P
∈
C
L
(
P
,
w
)
{ \Psi (w)} = {\min \limits_{P \in C} L(P, w)}
Ψ(w)=P∈CminL(P,w)
上面的
Ψ
(
w
)
{ \Psi (w)}
Ψ(w)即为对偶函数。具体而言,要求
L
(
P
,
w
)
L(P, w)
L(P,w)关于
P
(
y
∣
x
)
P(y \mid x)
P(y∣x)的偏导数:
∂
L
(
P
,
w
)
∂
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
∑
y
w
0
−
∑
x
,
y
(
P
~
(
x
)
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
=
∑
x
,
y
P
~
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
−
w
0
−
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
\begin{aligned} \frac{\partial L(P, w)}{\partial P(y|x)} &= \sum\limits_{x,y} \widetilde {P}(x)(logP(y|x) +1) - \sum\limits_yw_0 - \sum\limits_{x,y}( \widetilde {P}(x)\sum\limits_{i=1}^{M}w_if_i(x,y)) \\ &= \sum\limits_{x,y} \widetilde {P}(x)(logP(y|x) +1- w_0 -\sum\limits_{i=1}^{M}w_if_i(x,y)) \end{aligned}
∂P(y∣x)∂L(P,w)=x,y∑P
(x)(logP(y∣x)+1)−y∑w0−x,y∑(P
(x)i=1∑Mwifi(x,y))=x,y∑P
(x)(logP(y∣x)+1−w0−i=1∑Mwifi(x,y))
令上式等于0,可以得到:
P
(
y
∣
x
)
=
e
x
p
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
+
w
0
−
1
)
=
e
x
p
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
e
x
p
(
1
−
w
0
)
P(y|x) = exp(\sum\limits_{i=1}^{M}w_if_i(x,y) +w_0 -1) = \frac{exp(\sum\limits_{i=1}^{M}w_if_i(x,y))}{exp(1-w_0)}
P(y∣x)=exp(i=1∑Mwifi(x,y)+w0−1)=exp(1−w0)exp(i=1∑Mwifi(x,y))
又因为对
P
(
y
∣
x
)
P(y|x)
P(y∣x)而言,有
∑
y
P
(
y
∣
x
)
=
1
\sum\limits{_y}P(y|x)=1
∑yP(y∣x)=1,则可以把上面式子的分母替换为归一化因子
Z
w
Z_w
Zw,于是得到了最大熵模型:
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
exp
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
Z
w
(
x
)
=
∑
y
exp
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
(1)
P_w(y|x)=\frac{1}{Z_w(x)}\exp{\sum\limits_{i=1}^{M}w_if_i(x,y)}\\ Z_w(x)=\sum_y\exp{\sum_{i=1}^{M}w_if_i(x,y)} \tag 1
Pw(y∣x)=Zw(x)1expi=1∑Mwifi(x,y)Zw(x)=y∑expi=1∑Mwifi(x,y)(1)
式子中
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x)的角标w意味着是关于w的表达式。从而可以把对偶函数
ψ
(
w
)
\psi(w)
ψ(w)里面的所有的
P
(
y
∣
x
)
P(y|x)
P(y∣x)替换成用w表示的形式,这样对偶函数
ψ
(
w
)
\psi(w)
ψ(w)就是全部用w表示了:
Ψ
(
w
)
=
min
P
∈
C
L
(
P
,
w
)
=
L
(
P
w
,
w
)
{ \Psi (w)} = {\min \limits_{P \in C} L(P, w) = L(P_w, w)}
Ψ(w)=P∈CminL(P,w)=L(Pw,w)
具体的,将
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x)结果带入
ψ
(
w
)
\psi(w)
ψ(w) 得:
ψ
(
w
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
+
w
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
=
1
M
w
i
(
E
P
~
(
f
i
)
−
E
P
(
f
i
)
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
P
(
y
∣
x
)
+
∑
i
=
1
M
w
i
(
∑
x
,
y
P
~
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
i
(
x
,
y
)
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
+
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
(
log
P
(
y
∣
x
)
−
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
+
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
(
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
−
log
Z
(
x
)
−
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
Z
(
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
P
~
(
x
)
log
(
Z
w
(
x
)
)
∑
y
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
P
~
(
x
)
log
(
Z
w
(
x
)
)
\begin{aligned}\psi(w)&=\sum\limits_{x,y}\widetilde P(x)P(y|x)\log P(y|x)+w_0(1 - \sum\limits_yP(y|x)) + \sum\limits_{i=1}^{M}w_i(E_{\widetilde{P}}(f_i) - E_{P}(f_i))\\&= \sum\limits_{x,y}\widetilde P(x)P(y|x)\log P(y|x)+ \sum\limits_{i=1}^{M}w_i( \sum\limits_{x,y}\widetilde{P}(x,y)f_i(x,y) - \sum\limits_{x,y}\widetilde{P}(x)P(y|x)f_i(x,y) )\\&= \sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^{M}w_if_i(x,y)+\sum\limits_{x,y}\widetilde P(x)P(y|x)\left(\log P(y|x)-\sum\limits_{i=1}^{M}w_if_i(x,y)\right)\\&= \sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^{M}w_if_i(x,y)+\sum\limits_{x,y}\widetilde P(x)P(y|x)\left(\sum\limits_{i=1}^{M}w_if_i(x,y)-\log Z(x)-\sum\limits_{i=1}^{M}w_if_i(x,y)\right)\\&=\sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^{M}w_if_i(x,y)-\sum\limits_{x,y}\widetilde P(x)P(y|x)\log Z(x)\\&=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))}\sum_{y}P(y|x)\\&=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))}\end{aligned}
ψ(w)=x,y∑P
(x)P(y∣x)logP(y∣x)+w0(1−y∑P(y∣x))+i=1∑Mwi(EP
(fi)−EP(fi))=x,y∑P
(x)P(y∣x)logP(y∣x)+i=1∑Mwi(x,y∑P
(x,y)fi(x,y)−x,y∑P
(x)P(y∣x)fi(x,y))=x,y∑P
(x,y)i=1∑Mwifi(x,y)+x,y∑P
(x)P(y∣x)(logP(y∣x)−i=1∑Mwifi(x,y))=x,y∑P
(x,y)i=1∑Mwifi(x,y)+x,y∑P
(x)P(y∣x)(i=1∑Mwifi(x,y)−logZ(x)−i=1∑Mwifi(x,y))=x,y∑P
(x,y)i=1∑Mwifi(x,y)−x,y∑P
(x)P(y∣x)logZ(x)=x,y∑P
(x,y)i=1∑nwifi(x,y)−x∑P
(x)log(Zw(x))y∑P(y∣x)=x,y∑P
(x,y)i=1∑nwifi(x,y)−x∑P
(x)log(Zw(x))
最后一步用到
∑
y
P
(
y
∣
x
)
=
1
\sum \limits_y P(y|x) =1
y∑P(y∣x)=1 。
从极大似然估计角度理解
实际上,对偶函数 ψ ( w ) \psi(w) ψ(w)的极大化等价于最大熵模型的极大似然估计。
已知经验概率分布
P
~
(
X
,
Y
)
\widetilde P(X,Y)
P
(X,Y),条件概率P(Y|X)的对数似然函数为:
L
P
~
(
P
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
(
y
∣
x
)
L_{\widetilde P}(P_w) = \sum_{x,y} \widetilde P(x,y)log(y|x)
LP
(Pw)=x,y∑P
(x,y)log(y∣x)
将上面求得的
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x)代入得到:
L
P
~
(
P
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
log
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
,
y
)
log
(
Z
w
(
x
)
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
log
(
Z
w
(
x
)
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
P
~
(
x
)
log
(
Z
w
(
x
)
)
∑
y
P
(
y
∣
x
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
P
~
(
x
)
log
(
Z
w
(
x
)
)
\begin{aligned} L_{\widetilde {P}}(P_w)&=\sum \limits_{x,y}\widetilde {P}(x,y)\log{P}(y|x)\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x,y}\widetilde{P}(x,y)\log{(Z_w(x))}\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x,y}\widetilde{P}(x)P(y|x)\log{(Z_w(x))}\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))}\sum_{y}P(y|x)\\ &=\sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y) -\sum \limits_{x}\widetilde{P}(x)\log{(Z_w(x))} \end{aligned}
LP
(Pw)=x,y∑P
(x,y)logP(y∣x)=x,y∑P
(x,y)i=1∑nwifi(x,y)−x,y∑P
(x,y)log(Zw(x))=x,y∑P
(x,y)i=1∑nwifi(x,y)−x,y∑P
(x)P(y∣x)log(Zw(x))=x,y∑P
(x,y)i=1∑nwifi(x,y)−x∑P
(x)log(Zw(x))y∑P(y∣x)=x,y∑P
(x,y)i=1∑nwifi(x,y)−x∑P
(x)log(Zw(x))
最后一步的推导用到了
∑
y
P
(
y
∣
x
)
=
1
\sum\limits_yP(y|x)=1
y∑P(y∣x)=1。
拟牛顿法最大熵模型参数学习
上一节我们完成了求极小的过程,现在我们来完成求极大的过程。
对于最大熵模型而言,
P
w
(
y
∣
x
)
=
exp
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
∑
y
exp
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
P_w(y|x)=\frac{\exp{\sum\limits_{i=1}^{M}w_if_i(x,y)}}{\sum_y\exp{\sum_{i=1}^{M}w_if_i(x,y)}}
Pw(y∣x)=∑yexp∑i=1Mwifi(x,y)expi=1∑Mwifi(x,y)
第二步骤要求:
max
w
Ψ
(
w
)
\max\limits_{w} \Psi (w)
wmaxΨ(w)
目标函数
L
P
~
(
P
w
)
L_{\widetilde {P}}(P_w)
LP
(Pw)转换成求极小后式子为:
min
w
∈
R
n
f
(
w
)
=
min
w
∈
R
n
−
ψ
(
w
)
=
∑
x
P
~
(
x
)
log
(
∑
y
exp
∑
i
=
1
M
w
i
f
i
(
x
,
y
)
)
−
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
\min\limits_{w \in R^n} f(w) =\min\limits_{w \in R^n} -\psi(w) = \sum \limits_{x}\widetilde{P}(x)\log{(\sum_y\exp{\sum_{i=1}^{M}w_if_i(x,y)})} - \sum \limits_{x,y}\widetilde {P}(x,y)\sum \limits_{i=1}^{n}w_if_i(x,y)
w∈Rnminf(w)=w∈Rnmin−ψ(w)=x∑P
(x)log(y∑expi=1∑Mwifi(x,y))−x,y∑P
(x,y)i=1∑nwifi(x,y)
梯度为:
g
(
w
)
=
(
∂
f
(
w
)
∂
w
1
,
∂
f
(
w
)
∂
w
2
,
.
.
.
,
∂
f
(
w
)
∂
w
n
)
g(w) = \left( \frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},...,\frac{\partial f(w)}{\partial w_n}\right)
g(w)=(∂w1∂f(w),∂w2∂f(w),...,∂wn∂f(w))
其中:
∂
f
(
w
)
∂
w
i
=
∑
x
,
y
P
~
(
x
)
p
w
(
y
∣
x
)
f
i
(
x
,
y
)
−
E
P
~
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
m
\frac{\partial f(w)}{\partial w_i} = \sum_{x,y} \widetilde P(x) p_w(y|x)f_i(x, y)-E_{\widetilde P}(f_i)\;, \quad i=1,2,...,m
∂wi∂f(w)=x,y∑P
(x)pw(y∣x)fi(x,y)−EP
(fi),i=1,2,...,m
相应的拟牛顿法BFGS算法如下:
输入:特征函数 f i , f 2 , ⋯ , f n f_i,f_2,\cdots,f_n fi,f2,⋯,fn;经验分布 P ~ ( X , Y ) \widetilde{P}(X,Y) P (X,Y),目标函数 f ( w ) f(w) f(w),梯度 $g(w) $,精度要求 ϵ \epsilon ϵ;
输出:最优参数 w ^ \hat w w^ ; 最优模型 P w ( y ∣ x ) P_w(y|x) Pw(y∣x) 。
(1)选定初始点 w ( 0 ) w^{(0)} w(0) 取 B 0 \mathbf B_0 B0 为正定对称矩阵, k = 0 k=0 k=0。
(2)计算 g k = g ( w ( k ) ) g_k=g(w^{(k)}) gk=g(w(k)) 。若 g k = 0 g_k=0 gk=0 则停止计算,否则转(3)。
(3)由 B k p k = − g k B_kp_k=-g_k Bkpk=−gk 求出 p k p_k pk
(4)一维搜索:求
λ
k
\lambda_k
λk 使得:
f
(
w
(
k
)
+
λ
k
p
k
)
=
min
λ
≥
0
f
(
w
(
k
)
+
λ
p
k
)
f(w^{(k)}+\lambda_kp_k)= \min\limits_{\lambda \geq 0}f(w^{(k)}+\lambda p_k)
f(w(k)+λkpk)=λ≥0minf(w(k)+λpk)
(5)置
w
(
k
+
1
)
=
w
(
k
)
+
λ
k
p
k
w^{(k+1)} = w^{(k)} + \lambda_k p_k
w(k+1)=w(k)+λkpk
(6)计算
g
k
+
1
=
g
(
w
(
k
+
1
)
)
g_{k+1} = g(w^{(k+1)})
gk+1=g(w(k+1)) ,若
g
k
+
1
=
0
g_{k+1} = 0
gk+1=0 ,则停止计算,否则,按下式更新
B
k
+
1
B_{k+1}
Bk+1:
B
k
+
1
=
B
k
+
y
k
y
k
T
y
k
T
δ
k
−
B
k
δ
k
δ
k
T
B
k
δ
k
T
B
k
δ
k
\mathbf B_{k+1} = \mathbf B_{k}+\frac{y_ky_k^T}{y_k^T\delta_k}-\frac{\mathbf B_k\delta_k \delta_k^T\mathbf B_k}{\delta_k^T\mathbf B_k\delta_k}
Bk+1=Bk+ykTδkykykT−δkTBkδkBkδkδkTBk
其中:
y
k
=
g
k
+
1
−
g
k
,
δ
k
=
w
(
k
+
1
)
−
w
k
y_k = g_{k+1} - g_k, \qquad\delta_k=w^{(k+1)} - w^{k}
yk=gk+1−gk,δk=w(k+1)−wk
(7)置
k
=
k
+
1
k=k+1
k=k+1 , 转(3)
参考文章:
《统计学习方法 第二版》
1455



被折叠的 条评论
为什么被折叠?



