最大熵(max entropy)模型原理小结
适用问题:多类分类
模型特点:对数线性模型
模型类型:判别模型
损失函数:对数似然损失
学习策略:极大似然估计,或者正则化的极大似然估计
学习算法:改进的迭代尺度算法 IIS、 牛顿法或拟牛顿法
1. 认识各种“熵”
"熵"
是一个很重要的概念,熵在决策树、随机森林中,指引树的生成;在深度学习中作为能量函数,指引参数的调整;在最大熵模型中,又作为模型学习的目标。
1.1 信息量:信息的度量
h
(
x
i
)
=
−
l
o
g
p
(
x
i
)
=
l
o
g
1
p
(
x
i
)
h(x_i)=-logp(x_i)=log\frac{1}{p(x_i)}
h(xi)=−logp(xi)=logp(xi)1
从公式可以看出,概率p与信息量成反比:概率p越高,信息量越低。
1.2 熵:信息量的期望,不确定性的度量
H
(
X
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
1
p
(
x
i
)
⏟
信
息
量
⏟
期
望
H(X)=-\sum_{i=1}^n p(x_i)log p(x_i)=\underbrace{\sum_{i=1}^n p(x_i)\underbrace{ log \frac{1}{p(x_i)}}_{信息量}}_{期望}
H(X)=−i=1∑np(xi)logp(xi)=期望
i=1∑np(xi)信息量
logp(xi)1
其中假设X有n种取值,
X
∈
x
1
,
x
2
,
.
.
.
,
x
n
X\in{x_1,x_2,...,x_n}
X∈x1,x2,...,xn,且人为定义了
lim
p
→
0
+
p
l
o
g
p
=
0
\lim_{p\to0^+}plogp=0
limp→0+plogp=0。
熵的物理含义:熵反映了不确定性,是一个度量
。
例如掷骰子时, p ( x i ) = 1 6 , i = 1 , 2 , . . . , 6 p(xi)=\frac{1}{6},i=1,2,...,6 p(xi)=61,i=1,2,...,6,概率分布式均匀的,此时熵最大,即不确定性最高。
1.3 联合熵
H
(
X
,
Y
)
=
−
∑
i
=
1
n
∑
j
=
1
n
p
(
x
i
,
y
j
)
l
o
g
p
(
x
i
,
y
j
)
H(X,Y)=-\sum_{i=1}^n\sum_{j=1}^n p(x_i, y_j)log p(x_i, y_j)
H(X,Y)=−i=1∑nj=1∑np(xi,yj)logp(xi,yj)
H
(
X
1
,
X
2
,
.
.
.
,
X
n
)
=
−
∑
i
=
1
n
∑
j
=
1
n
.
.
.
∑
k
=
1
n
p
(
x
i
,
x
j
,
.
.
.
,
x
k
)
l
o
g
p
(
x
i
,
x
j
,
.
.
.
,
x
k
)
H(X_1,X_2,...,X_n)=-\sum_{i=1}^n\sum_{j=1}^n...\sum_{k=1}^n p(x_i,x_j,...,x_k)log p(x_i,x_j,...,x_k)
H(X1,X2,...,Xn)=−i=1∑nj=1∑n...k=1∑np(xi,xj,...,xk)logp(xi,xj,...,xk)
联合熵的性质
- m a x { H ( X ) , H ( Y ) } ≤ H ( X , Y ) ≤ H ( X ) + H ( Y ) max\{H(X), H(Y)\}\le H(X,Y)\le H(X)+H(Y) max{H(X),H(Y)}≤H(X,Y)≤H(X)+H(Y)
- m a x { H ( X 1 ) , . . , H ( X n ) } ≤ H ( X 1 , X 2 , . . . , X n ) ≤ H ( X 1 ) + . . H ( X n ) max\{H(X_1),..,H(X_n)\} \le H(X_1, X_2,...,X_n) \le H(X_1)+..H(X_n) max{H(X1),..,H(Xn)}≤H(X1,X2,...,Xn)≤H(X1)+..H(Xn)
- H ( X , Y ) = H ( X ) + H ( Y ∣ X ) = H ( Y ) + H ( X ∣ Y ) H(X,Y)=H(X)+H(Y|X)=H(Y)+H(X|Y) H(X,Y)=H(X)+H(Y∣X)=H(Y)+H(X∣Y)
1.4 条件熵
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
(
x
i
)
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum_{i=1}^n p(x_i)H(Y|X=x_i)
H(Y∣X)=i=1∑np(xi)H(Y∣X=xi)
而
H
(
Y
∣
x
i
)
=
−
∑
j
=
1
n
p
(
y
j
∣
x
i
)
l
o
g
p
(
y
j
∣
x
i
)
H(Y|x_i)=-\sum_{j=1}^n p(y_j|x_i)log p(y_j|x_i)
H(Y∣xi)=−∑j=1np(yj∣xi)logp(yj∣xi),所以得到:
H
(
Y
∣
X
)
=
−
∑
i
=
1
n
∑
j
=
1
n
p
(
x
i
)
p
(
y
j
∣
x
i
)
l
o
g
p
(
y
j
∣
x
i
)
H(Y|X)=-\sum_{i=1}^n \sum_{j=1}^n p(x_i)p(y_j|x_i)log p(y_j|x_i)
H(Y∣X)=−i=1∑nj=1∑np(xi)p(yj∣xi)logp(yj∣xi)
而根据条件概率公式,可知
p
(
x
i
)
p
(
y
j
∣
x
i
)
=
p
(
x
i
,
y
j
)
p(x_i)p(y_j|x_i)=p(x_i,y_j)
p(xi)p(yj∣xi)=p(xi,yj),
p
(
y
j
∣
x
i
)
=
p
(
x
i
,
y
j
)
p
(
x
i
)
p(y_j|x_i)=\frac{p(x_i,y_j)}{p(x_i)}
p(yj∣xi)=p(xi)p(xi,yj),所以得到:
H ( Y ∣ X ) = − ∑ i = 1 n ∑ j = 1 n p ( x i , y j ) l o g p ( y j ∣ x i ) = ∑ i = 1 n ∑ j = 1 n p ( x i , y j ) l o g p ( x i ) p ( x i , y j ) H(Y|X)=-\sum_{i=1}^n \sum_{j=1}^n p(x_i,y_j)log p(y_j|x_i)\\=\sum_{i=1}^n \sum_{j=1}^n p(x_i,y_j)log \frac{p(x_i)}{p(x_i,y_j)} H(Y∣X)=−i=1∑nj=1∑np(xi,yj)logp(yj∣xi)=i=1∑nj=1∑np(xi,yj)logp(xi,yj)p(xi)
公式: H ( Y ∣ X ) = H ( X , Y ) − H ( X ) H(Y|X)=H(X,Y)-H(X) H(Y∣X)=H(X,Y)−H(X)
1.5 互信息:变量间相互依赖的度量
I
(
X
,
Y
)
=
∑
i
=
1
n
∑
j
=
1
n
p
(
x
i
,
y
j
)
l
o
g
p
(
x
i
,
y
j
)
p
(
x
i
)
p
(
y
j
)
I(X,Y)=\sum_{i=1}^n \sum_{j=1}^n p(x_i,y_j)log\frac{p(x_i,y_j)}{p(x_i)p(y_j)}
I(X,Y)=i=1∑nj=1∑np(xi,yj)logp(xi)p(yj)p(xi,yj)
互信息常用于:
- (1)特征选择 feature selection
- (2)降维
- (3)特征之间的“关联性” features’ correlation
与“相关系数”
ρ
\rho
ρ(
C
o
r
r
(
X
,
Y
)
=
C
o
v
(
X
,
Y
)
V
a
r
(
X
)
V
a
r
(
Y
)
=
C
o
v
(
X
,
Y
)
σ
x
σ
y
Corr(X,Y)=\frac{Cov(X,Y)}{\sqrt{Var(X)}\sqrt{Var(Y)}}=\frac{Cov(X,Y)}{\sigma_x \sigma_y}
Corr(X,Y)=Var(X)Var(Y)Cov(X,Y)=σxσyCov(X,Y))的差别:相关系数
ρ
\rho
ρ 只能刻画线性相关性
(正相关或者负相关,例如x的数值变大,Y的数值也变大,或者的数值变小),而互信息
主要是在刻画非线性相关性
(例如Y=|X|)。
公式: I ( X , Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) I(X,Y)=H(X)-H(X|Y)=H(Y)-H(Y|X) I(X,Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)
1.6 相对熵:(KL散度)刻画的是2个分布之间的差异
通过某种度量的方式,去度量概率上的差异,以此刻画2个分布之间的差异性
:
- (1)KL(p||q)
- (2)Wasserstein
- (3)MMD
- (4)Kernel Hibert density distance
p q是2个分布,或者说是2个概率密度函数,那么2个概率分布之间的相对熵是:
D
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
q
(
x
i
)
D(p||q)=\sum_{i=1}^n p(x_i)log\frac{p(x_i)}{q(x_i)}
D(p∣∣q)=i=1∑np(xi)logq(xi)p(xi)
相对熵的特点:
- 不对称性, D ( p ∣ ∣ q ) ≠ D ( q ∣ ∣ p ) D(p||q)\ne D(q||p) D(p∣∣q)=D(q∣∣p),除非p和q完全一样时才相等;当 D ( p ∣ ∣ q ) D(p||q) D(p∣∣q)很大时,表示分布p与q的差异性非常明显
- D ( p ∣ ∣ q ) ≥ 0 D(p||q)\ge 0 D(p∣∣q)≥0,证明要用到“琴生不等式”(Jensen不等式)
Jensen不等式:
(1)当f(x)是凸函数时,
f
(
x
1
+
x
2
2
)
≤
1
2
[
f
(
x
1
)
+
f
(
x
2
)
]
f(\frac{x_1+x_2}{2}) \le \frac{1}{2}[f(x_1)+f(x_2)]
f(2x1+x2)≤21[f(x1)+f(x2)],即
f
(
E
(
x
)
)
≤
E
(
f
(
x
)
)
f(E(x)) \le E(f(x))
f(E(x))≤E(f(x))
(2)当f(x)是凹函数时,
f
(
x
1
+
x
2
2
)
≥
1
2
[
f
(
x
1
)
+
f
(
x
2
)
]
f(\frac{x_1+x_2}{2}) \ge \frac{1}{2}[f(x_1)+f(x_2)]
f(2x1+x2)≥21[f(x1)+f(x2)],即
f
(
E
(
x
)
)
≥
E
(
f
(
x
)
)
f(E(x)) \ge E(f(x))
f(E(x))≥E(f(x))
D ( p ∣ ∣ q ) ≥ 0 D(p||q)\ge 0 D(p∣∣q)≥0 证明:
D
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
q
(
x
i
)
D(p||q)=\sum_{i=1}^n p(x_i)log\frac{p(x_i)}{q(x_i)}
D(p∣∣q)=∑i=1np(xi)logq(xi)p(xi),
令
y
i
=
q
i
p
i
y_i = \frac{q_i}{p_i}
yi=piqi,
f
(
y
i
)
=
l
o
g
y
i
=
l
o
g
q
i
p
i
f(y_i)=log y_i=log \frac{q_i}{p_i}
f(yi)=logyi=logpiqi~凹函数
(关于
y
i
y_i
yi的),
则根据Jensen不等式
,有
E
(
f
(
x
)
)
≤
f
(
E
(
x
)
)
E(f(x)) \le f(E(x))
E(f(x))≤f(E(x)),
即有
∑
i
=
1
n
p
i
l
o
g
y
i
≤
l
o
g
(
∑
i
=
1
n
p
i
y
i
)
\sum_{i=1}^n p_ilogy_i \le log(\sum_{i=1}^n p_i yi)
∑i=1npilogyi≤log(∑i=1npiyi),即:
∑
i
=
1
n
p
i
l
o
g
q
i
p
i
≤
l
o
g
(
∑
i
=
1
n
p
i
q
i
p
i
)
=
l
o
g
(
∑
i
=
1
n
q
i
)
=
l
o
g
1
=
0
\sum_{i=1}^n p_ilog\frac{q_i}{p_i} \le log(\sum_{i=1}^n p_i \frac{q_i}{p_i})=log(\sum_{i=1}^n q_i)=log1=0
∑i=1npilogpiqi≤log(∑i=1npipiqi)=log(∑i=1nqi)=log1=0,即得到:
∑
i
=
1
n
p
i
l
o
g
q
i
p
i
≤
0
\sum_{i=1}^n p_ilog\frac{q_i}{p_i} \le0
∑i=1npilogpiqi≤0 ⇒
∑
i
=
1
n
p
i
l
o
g
p
i
q
i
≥
0
\sum_{i=1}^n p_ilog\frac{p_i}{q_i} \ge0
∑i=1npilogqipi≥0 ⇒
D
(
p
∣
∣
q
)
≥
0
D(p||q)\ge 0
D(p∣∣q)≥0
1.7 交叉熵
深度学习中最常用的目标函数。也是刻画2个分布之间的关系
。
C
E
(
p
,
q
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
q
(
x
i
)
CE(p,q)=-\sum_{i=1}^np(x_i)logq(x_i)
CE(p,q)=−i=1∑np(xi)logq(xi)
交叉熵与KL散度的关系:
C
E
(
p
,
q
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
q
(
x
i
)
CE(p,q)=-\sum_{i=1}^np(x_i)logq(x_i)
CE(p,q)=−∑i=1np(xi)logq(xi)
=
−
∑
i
=
1
n
p
i
l
o
g
p
i
+
∑
i
=
1
n
p
i
l
o
g
p
i
−
∑
i
=
1
n
p
i
l
o
g
q
i
=-\sum_{i=1}^np_ilogp_i+\sum_{i=1}^np_ilogp_i-\sum_{i=1}^np_ilogq_i
=−∑i=1npilogpi+∑i=1npilogpi−∑i=1npilogqi
=
H
(
p
)
+
∑
i
=
1
n
p
i
l
o
g
p
i
q
i
=H(p)+\sum_{i=1}^np_ilog\frac{p_i}{q_i}
=H(p)+∑i=1npilogqipi
=
H
(
p
)
+
D
(
p
∣
∣
q
)
=H(p)+D(p||q)
=H(p)+D(p∣∣q)
1.8 最大熵
最大熵的原则
:承认已知事物,对未知事物没有任何偏见。即在承认已知事物的情况下,未知事物的概率平均分布,等价于熵最大。
2. 最大熵模型
2.1 最大熵原理
最大熵原理
是概率模型
学习的一个准则。最大熵原理
认为:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模是最好的模型。通常用 约束条件 来确定概率模型的集合,所以,最大熵原理也可以表述为:在满足约束条件
的模型集合中选取熵最大的模型。
2.2 模型的定义
将最大熵原理应用到分类,就得到最大熵模型。学习的目标就是用最大熵原理选择最好
的模型。
最大熵模型是指“条件熵”最大的模型。
给定训练样本集(假设含有N个样本)
T
=
{
(
x
(
1
)
,
y
(
1
)
,
(
x
(
2
)
,
y
(
2
)
,
.
.
.
,
(
x
(
N
)
,
y
(
N
)
}
T=\{(x^{(1)},y^{(1)},(x^{(2)},y^{(2)},...,(x^{(N)},y^{(N)}\}
T={(x(1),y(1),(x(2),y(2),...,(x(N),y(N)},x为输入,是n维特征向量,Y为输出。从样本集中可以得到联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的经验分布
P
^
(
X
,
Y
)
\hat{P}(X,Y)
P^(X,Y),以及边缘分布
P
(
X
)
P(X)
P(X)的经验分布
P
^
(
X
)
\hat{P}(X)
P^(X),并且有
P
^
(
X
,
Y
)
=
c
o
u
n
t
(
X
=
x
,
Y
=
y
)
N
\hat{P}(X,Y)=\frac{count(X=x,Y=y)}{N}
P^(X,Y)=Ncount(X=x,Y=y),
P
^
(
X
)
=
c
o
u
n
t
(
X
=
x
,
⋅
)
N
\hat{P}(X)=\frac{count(X=x,\;\;\cdot)}{N}
P^(X)=Ncount(X=x,⋅)。
条件熵
定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵为:
H
(
P
)
=
−
∑
x
,
y
P
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
≈
−
∑
x
,
y
P
^
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
H(P)=-\sum_{x,y}P(x)P(y|x)logP(y|x)\approx-\sum_{x,y}\hat{P}(x)P(y|x)logP(y|x)
H(P)=−x,y∑P(x)P(y∣x)logP(y∣x)≈−x,y∑P^(x)P(y∣x)logP(y∣x)
特征函数
f
(
x
,
y
)
=
{
1
,
x
与
y
满
足
某
一
事
实
0
,
o
t
h
e
r
f(x,y)=\begin{cases}1,&x与y满足某一事实\\0,&other\end{cases}
f(x,y)={1,0,x与y满足某一事实other
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
^
(
X
,
Y
)
\hat{P}(X,Y)
P^(X,Y)的期望值:
E
P
^
(
f
)
=
∑
x
,
y
P
^
(
x
,
y
)
f
(
x
,
y
)
E_{\hat{P}}(f)=\sum_{x,y}\hat{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
)
\hat{P}(X)
P^(X)的期望值:
E
P
(
f
)
=
∑
x
,
y
P
^
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
E_{P}(f)=\sum_{x,y}\hat{P}(x)P(y|x)f(x,y)
EP(f)=x,y∑P^(x)P(y∣x)f(x,y)
假设能从训练集中获得足够的信息,那么可以认为
E
P
(
f
)
=
E
P
^
(
f
)
E_{P}(f)=E_{\hat{P}}(f)
EP(f)=EP^(f),即有:
∑
x
,
y
P
^
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
=
∑
x
,
y
P
^
(
x
,
y
)
f
(
x
,
y
)
\sum_{x,y}\hat{P}(x)P(y|x)f(x,y)=\sum_{x,y}\hat{P}(x,y)f(x,y)
x,y∑P^(x)P(y∣x)f(x,y)=x,y∑P^(x,y)f(x,y)
约束条件
- 约束1: E P ( f i ) − E P ^ ( f i ) = 0 E_{P}(f_i)-E_{\hat{P}}(f_i)=0 EP(fi)−EP^(fi)=0,假设有n个特征函数,i=1,2,…,n,那么这里就有n个约束条件
- 约束2: ∑ y P ( y ∣ x ) = 1 \sum\limits_y P(y|x)=1 y∑P(y∣x)=1
最大熵模型
约束条件决定了模型的集合,假设满足所有约束条件的模型集合为
C
\pmb{C}
CCC,那么在
C
\pmb{C}
CCC中,使得条件熵
H
(
P
)
H(P)
H(P)最大的模型称为最大熵模型。其中
H
(
P
)
H(P)
H(P)是定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵
。
3. 损失函数
目标是求满足条件的
H
(
P
)
H(P)
H(P)的最大值,将最大值问题转化为求最小值问题,则损失函数
即为
−
H
(
P
)
-H(P)
−H(P),那么求解最大熵模型的过程可等价于求解如下约束最优化问题
:
m
i
n
⏟
P
∈
C
−
H
(
P
)
=
∑
x
,
y
P
^
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
\underbrace{min}_{P\in C}-H(P)=\sum_{x,y}\hat{P}(x)P(y|x)logP(y|x)
P∈C
min−H(P)=x,y∑P^(x)P(y∣x)logP(y∣x)
s
.
t
.
E
P
(
f
i
)
−
E
P
^
(
f
i
)
=
0
,
i
=
1
,
2
,
.
.
.
,
n
1
−
∑
y
P
(
y
∣
x
)
=
0
s.t. \;\;\;E_{P}(f_i)-E_{\hat{P}}(f_i)=0,\;\;i=1,2,...,n\\\qquad\qquad\qquad\qquad\qquad\;\;1-\sum_y P(y|x)=0
s.t.EP(fi)−EP^(fi)=0,i=1,2,...,n1−∑yP(y∣x)=0
4. 学习算法
4.1 对偶函数
首先写出有约束最优化的原始问题的拉格朗日无约束优化函数:
L
(
p
,
λ
)
=
−
H
(
P
)
+
λ
0
(
1
−
∑
y
P
(
y
∣
x
)
)
+
∑
i
=
1
n
λ
i
(
E
P
(
f
i
)
−
E
P
^
(
f
i
)
)
L(p,\lambda)=-H(P)+\lambda_0(1-\sum_y P(y|x))+\sum_{i=1}^n \lambda_i(E_{P}(f_i)-E_{\hat{P}}(f_i))
L(p,λ)=−H(P)+λ0(1−y∑P(y∣x))+i=1∑nλi(EP(fi)−EP^(fi))
那么由约束最优化的原始问题可以转化为与其等价的拉格朗日极小极大问题:
m
i
n
⏟
P
∈
C
m
a
x
⏟
λ
L
(
P
,
λ
)
\underbrace{min}_{P\in C}\;\underbrace{max}_\lambda\;L(P,\lambda)
P∈C
minλ
maxL(P,λ)
其相应的对偶问题是:
m
a
x
⏟
λ
m
i
n
⏟
P
∈
C
L
(
P
,
λ
)
\underbrace{max}_{\lambda}\;\underbrace{min}_{P\in C}\;L(P,\lambda)
λ
maxP∈C
minL(P,λ)
由于
L
(
p
,
λ
)
L(p,\lambda)
L(p,λ)是凸函数,且约束条件为仿射函数,且满足KKT条件,则原始问题的解与对偶问题的解是等价的,那么可以通过求解对偶问题来求解原始问题。
首先求解对偶问题的内部极小化问题
m
i
n
⏟
P
∈
C
L
(
P
,
λ
)
\underbrace{min}_{P\in C}\;L(P,\lambda)
P∈C
minL(P,λ),记为
ψ
(
λ
)
\psi(\lambda)
ψ(λ),称为对偶函数,即:
ψ
(
λ
)
=
m
i
n
⏟
P
L
(
P
,
λ
)
=
L
(
P
λ
,
λ
)
\psi(\lambda) = \underbrace{ min }_{P}L(P, \lambda) = L(P_\lambda, \lambda)
ψ(λ)=P
minL(P,λ)=L(Pλ,λ)
可通过求其关于
P
(
y
∣
x
)
P(y|x)
P(y∣x)的偏导数,求得其解
P
λ
=
a
r
g
m
i
n
⏟
P
L
(
P
,
λ
)
=
P
λ
(
y
∣
x
)
P_\lambda = arg\; \underbrace{ min }_{P}\;L(P, \lambda) = P_\lambda(y|x)
Pλ=argP
minL(P,λ)=Pλ(y∣x)。
∂
L
(
P
,
λ
)
∂
P
(
y
∣
x
)
=
∑
x
,
y
P
^
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
)
−
∑
y
λ
0
−
∑
x
,
y
(
P
^
(
x
)
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
)
\frac{\partial L(P, \lambda)}{\partial P(y|x)} = \sum\limits_{x,y}\hat{P}(x)(logP(y|x) +1) - \sum\limits_y\lambda_0 - \sum\limits_{x,y}(\hat{P}(x)\sum\limits_{i=1}^{n}\lambda_if_i(x,y))
∂P(y∣x)∂L(P,λ)=x,y∑P^(x)(logP(y∣x)+1)−y∑λ0−x,y∑(P^(x)i=1∑nλifi(x,y))
=
∑
x
,
y
P
^
(
x
)
(
l
o
g
P
(
y
∣
x
)
+
1
−
λ
0
−
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
= \sum\limits_{x,y}\hat{P}(x)(logP(y|x) +1- \lambda _0 -\sum\limits_{i=1}^{n}w_if_i(x,y))
=x,y∑P^(x)(logP(y∣x)+1−λ0−i=1∑nwifi(x,y))
注意:
∑
y
λ
0
=
∑
y
∑
x
P
^
(
x
)
⏟
等
于
1
λ
0
=
∑
x
,
y
P
^
(
x
)
λ
0
\sum\limits_y\lambda_0=\sum\limits_y \underbrace{\sum\limits_x\hat{P}(x)}_{等于1}\lambda_0=\sum\limits_{x,y}\hat{P}(x)\lambda_0
y∑λ0=y∑等于1
x∑P^(x)λ0=x,y∑P^(x)λ0。
令偏导数=0,解得:
P
(
y
∣
x
)
=
e
x
p
(
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
+
λ
0
−
1
)
=
e
x
p
(
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
)
e
x
p
(
1
−
λ
0
)
P(y|x) = exp(\sum\limits_{i=1}^{n}\lambda_if_i(x,y) +\lambda_0 -1) = \frac{exp(\sum\limits_{i=1}^{n}\lambda_if_i(x,y))}{exp(1-\lambda_0)}
P(y∣x)=exp(i=1∑nλifi(x,y)+λ0−1)=exp(1−λ0)exp(i=1∑nλifi(x,y))
令
Z
λ
=
e
x
p
(
1
−
λ
0
)
Z_\lambda=exp(1-\lambda_0)
Zλ=exp(1−λ0),则:
P
λ
=
1
Z
λ
e
x
p
(
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
)
P_\lambda=\frac{1}{Z_\lambda} exp(\sum\limits_{i=1}^{n}\lambda_if_i(x,y))
Pλ=Zλ1exp(i=1∑nλifi(x,y))。
又由于
∑
y
P
(
y
∣
x
)
=
1
\sum_y P(y|x)=1
∑yP(y∣x)=1,则
Z
λ
=
∑
y
e
x
p
(
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
)
Z_\lambda=\sum_y exp(\sum\limits_{i=1}^{n}\lambda_if_i(x,y))
Zλ=∑yexp(i=1∑nλifi(x,y)),
Z
λ
Z_\lambda
Zλ成为规范化因子。这样
P
λ
(
y
∣
x
)
P_\lambda(y|x)
Pλ(y∣x)就被表示为
λ
\lambda
λ的表达式,然后就是求解
λ
\lambda
λ,通过求解对偶问题的外部极大化问题来求解
λ
\lambda
λ,即求解:
m
a
x
⏟
λ
ψ
(
λ
)
\underbrace{max}_{\lambda}\; \psi(\lambda)
λ
maxψ(λ)
其解记为
λ
∗
\lambda^*
λ∗,
λ
∗
=
a
r
g
m
a
x
⏟
λ
ψ
(
λ
)
\lambda^*= arg\;\underbrace{max}_\lambda\; \psi(\lambda)
λ∗=argλ
maxψ(λ)。
λ
\lambda
λ的求解使用的是“改进的迭代尺度算法 Improved Iterative Scalling(IIS)”
,即找到
ψ
(
λ
+
δ
)
−
ψ
(
λ
)
\psi(\lambda+\delta)-\psi(\lambda)
ψ(λ+δ)−ψ(λ)的一个下界
B
(
λ
∣
δ
)
B(\lambda|\delta)
B(λ∣δ),通过对
B
(
λ
∣
δ
)
B(\lambda|\delta)
B(λ∣δ)极大化来得到对应的
δ
\delta
δ的值,此时的
δ
\delta
δ使得下界提高,那么对数似然函数也会提高,那么就可以使用:
λ
→
λ
+
δ
\lambda \rightarrow \lambda+\delta
λ→λ+δ,来更新参数向量,进而来迭代求解使得对数似然函数达到最大值的
λ
∗
\lambda^*
λ∗。
求 λ ∗ \lambda^* λ∗后,然后求 P ∗ P^* P∗: λ → λ ∗ → P ∗ → P ∗ ( y ∣ x ) \lambda \rightarrow\lambda^* \rightarrow P^*\rightarrow P^*(y|x) λ→λ∗→P∗→P∗(y∣x)。
4.2 对数似然函数
已知训练数据的联合分布
的经验分布
P
^
(
X
,
Y
)
\hat{P}(X,Y)
P^(X,Y),那么联合概率分布
P
(
x
,
y
)
P(x,y)
P(x,y)的似然函数可表示为:
L
P
^
(
P
λ
)
=
∏
x
,
y
P
(
x
,
y
)
P
^
(
x
,
y
)
L_{\hat{P}}(P_\lambda)=\prod\limits_{x,y} P(x,y)^{\hat{P}(x,y)}
LP^(Pλ)=x,y∏P(x,y)P^(x,y),其对数似然函数为:
l
o
g
L
P
^
(
P
λ
)
=
∑
x
,
y
P
^
(
x
,
y
)
l
o
g
P
(
x
,
y
)
logL_{\hat{P}}(P_\lambda)=\sum\limits_{x,y}\hat{P}(x,y)logP(x,y)
logLP^(Pλ)=x,y∑P^(x,y)logP(x,y)
=
∑
x
,
y
P
^
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
P
^
(
x
)
=
∑
x
,
y
P
^
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
+
∑
x
,
y
P
^
(
x
,
y
)
P
^
(
x
)
\qquad\qquad\qquad\qquad\qquad\qquad\qquad=\sum\limits_{x,y}\hat{P}(x,y)logP(y|x)\hat{P}(x)\\ \qquad\qquad\qquad\qquad\qquad\qquad\qquad=\sum\limits_{x,y}\hat{P}(x,y)logP(y|x)+\sum\limits_{x,y}\hat{P}(x,y)\hat{P}(x)
=x,y∑P^(x,y)logP(y∣x)P^(x)=x,y∑P^(x,y)logP(y∣x)+x,y∑P^(x,y)P^(x)
给定训练样本集后,上述第2项就是个常数项,那么整理之后就可以得到如下的对数似然函数:
L
P
^
(
P
λ
)
=
∑
x
,
y
P
^
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
L_{\hat{P}}(P_\lambda)=\sum\limits_{x,y}\hat{P}(x,y)logP(y|x)
LP^(Pλ)=x,y∑P^(x,y)logP(y∣x)
当
P
(
y
∣
x
)
P(y|x)
P(y∣x)是最大熵模型时,带入上式可得到:
L
P
^
(
P
λ
)
=
∑
x
,
y
P
^
(
x
,
y
)
l
o
g
P
(
y
∣
x
)
L_{\hat{P}}(P_\lambda)=\sum\limits_{x,y}\hat{P}(x,y)logP(y|x)
LP^(Pλ)=x,y∑P^(x,y)logP(y∣x)
=
∑
x
,
y
P
^
(
x
,
y
)
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
−
∑
x
,
y
P
^
(
x
,
y
)
l
o
g
Z
λ
=
∑
x
,
y
P
^
(
x
,
y
)
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
−
∑
x
P
^
(
x
)
l
o
g
Z
λ
\qquad\qquad\qquad\qquad\qquad\qquad\qquad=\sum\limits_{x,y}\hat{P}(x,y)\sum\limits_{i=1}^{n}\lambda_if_i(x,y)-\sum\limits_{x,y}\hat{P}(x,y)logZ_{\lambda}\\ \qquad\qquad\qquad\qquad\qquad\qquad\qquad=\sum\limits_{x,y}\hat{P}(x,y)\sum\limits_{i=1}^{n}\lambda_if_i(x,y)-\sum\limits_{x}\hat{P}(x)logZ_{\lambda}
=x,y∑P^(x,y)i=1∑nλifi(x,y)−x,y∑P^(x,y)logZλ=x,y∑P^(x,y)i=1∑nλifi(x,y)−x∑P^(x)logZλ
再看对偶函数:
ψ
(
λ
)
=
L
(
P
λ
,
λ
)
=
−
H
(
P
λ
)
+
λ
0
(
1
−
∑
y
P
λ
(
y
∣
x
)
)
+
∑
i
=
1
n
λ
i
(
E
P
λ
(
f
i
)
−
E
P
λ
^
(
f
i
)
)
=
∑
x
,
y
P
^
(
x
)
P
λ
(
y
∣
x
)
l
o
g
P
λ
(
y
∣
x
)
+
0
+
∑
i
=
1
n
λ
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
n
λ
i
f
i
(
x
,
y
)
−
∑
x
P
^
(
x
)
l
o
g
Z
λ
\psi(\lambda)= L(P_\lambda, \lambda)\\ \qquad\;=-H(P_\lambda)+\lambda_0(1-\sum_y P_\lambda(y|x))+\sum_{i=1}^n \lambda_i(E_{P_\lambda}(f_i)-E_{\hat{P_\lambda}}(f_i))\\ \qquad\;=\sum_{x,y}\hat{P}(x)P_\lambda(y|x)logP_\lambda(y|x)+0\\ \qquad\quad\;+\sum_{i=1}^n \lambda_i\big( \sum_{x,y}\hat{P}(x,y)f_i(x,y)-\sum_{x,y}\hat{P}(x)P(y|x)f_i(x,y)\big)\\ \qquad\;=\sum\limits_{x,y}\hat{P}(x,y)\sum\limits_{i=1}^{n}\lambda_if_i(x,y)-\sum\limits_{x}\hat{P}(x)logZ_{\lambda}
ψ(λ)=L(Pλ,λ)=−H(Pλ)+λ0(1−∑yPλ(y∣x))+∑i=1nλi(EPλ(fi)−EPλ^(fi))=∑x,yP^(x)Pλ(y∣x)logPλ(y∣x)+0+∑i=1nλi(∑x,yP^(x,y)fi(x,y)−∑x,yP^(x)P(y∣x)fi(x,y))=x,y∑P^(x,y)i=1∑nλifi(x,y)−x∑P^(x)logZλ
由前面两式子可看出:
ψ
(
λ
)
=
L
P
^
(
P
λ
)
\psi(\lambda)=L_{\hat{P}}(P_\lambda)
ψ(λ)=LP^(Pλ)
即对偶函数
ψ
(
λ
)
\psi(\lambda)
ψ(λ)等价于对数似然函数
L
P
^
(
P
λ
)
L_{\hat{P}} (P_\lambda)
LP^(Pλ),说明最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然函数估计这一事实。
另外,由前面的内容可知,
P
λ
=
1
Z
λ
e
x
p
(
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
)
P_\lambda=\frac{1}{Z_\lambda} exp(\sum\limits_{i=1}^{n}\lambda_if_i(x,y))
Pλ=Zλ1exp(i=1∑nλifi(x,y)),而其中
Z
λ
=
∑
y
e
x
p
(
∑
i
=
1
n
λ
i
f
i
(
x
,
y
)
)
Z_\lambda=\sum_y exp(\sum\limits_{i=1}^{n}\lambda_if_i(x,y))
Zλ=∑yexp(i=1∑nλifi(x,y)),
Z
λ
Z_\lambda
Zλ称为规范化因子,其中
λ
∈
R
n
\lambda \in R^n
λ∈Rn 为权值向量。这也是最大熵模型更为一般的形式,此形式与逻辑斯蒂回归模型有类似的形式,所以他们又都称为“对数线性模型”
,学习的策略都是极大似然估计
或者正则化的极大似然估计
。
5. 模型综合评价
优点
- a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。
- b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度。
缺点
- a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难。
最后:如果本文中出现任何错误,请您一定要帮忙指正,感激~
6. 参考
- [1] 统计学习方法(第2版) 李航
- [2] 最大熵模型原理小结 刘建平
- [3] 最大熵模型中的对数似然函数的解释
- [4] 机器学习(西瓜书) 周志华