最大熵模型简介
最大熵模型是对数线性模型,属于判别模型。
这里的推导与李航博士的统计学习方法相关,可能看起来不太简洁易懂,实际上最大熵与Logistic回归比较相似,区别在于一个是输入X作为特征,这是是X和Y会去构造一系列的特征函数,作为输入。
推荐知乎:https://www.zhihu.com/question/24094554
这里其实可以看看这篇文章的介绍,也是非常生动形象。
从逻辑回归到最大熵模型
最大熵模型(maximum entropy model)由最大熵原理推导实现。 这里首先叙述一般的最大熵原理,然后讲解最大熵模型的推导,最后给出最大熵模型学习的形式。
顾名思义,最大熵模型就是:给定一个训练数据集 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={(x1,y1),(x2,y2),...,(xN,yN)}学习的目标是用最大熵原理选择最好的分类模型。
最大熵原理
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
假设离散随机变量X的概率分布是P(X),则其熵是
H
(
P
)
=
−
∑
x
P
(
x
)
l
o
g
P
(
x
)
H(P) = - \sum\limits _{x} P(x)logP(x)
H(P)=−x∑P(x)logP(x)
熵满足下列不等式: 0 ≤ H ( P ) ≤ l o g ∣ X ∣ 0\leq H(P) \leq log|X| 0≤H(P)≤log∣X∣
式中,
∣
X
∣
|X|
∣X∣是
X
X
X的取值个数,当且仅当
X
X
X的分布是均匀分布时右边的等号成立。这就是说,当X服从均匀分布时,熵最大。
直观地,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性。“等可能”不容易操作,而熵则是一个可优化的数值指标。
最大熵模型
概念定义
最大熵原理是统计学习的一般原理,将它应用到分类得到最大熵模型。
假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X), X ∈ x ⊆ R n X\in x \subseteq R^n X∈x⊆Rn表示输入, Y ∈ y Y \in y Y∈y 表示输出, x x x和 y 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),...,(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
)
\widetilde{P}(X,Y)
P
(X,Y)和
P
~
(
X
)
\widetilde{P}(X)
P
(X)表示。这里,
P
~
(
X
=
x
,
Y
=
y
)
=
ν
(
X
=
x
,
Y
=
y
)
N
\widetilde{P}(X=x,Y=y) =\frac{\nu(X=x,Y=y)}{N}
P
(X=x,Y=y)=Nν(X=x,Y=y)
P
~
(
X
=
x
)
=
ν
(
X
=
x
)
N
\widetilde{P}(X=x) = \frac{\nu(X=x)}{N}
P
(X=x)=Nν(X=x)
其中,
ν
(
X
=
x
,
Y
=
y
)
\nu(X=x,Y=y )
ν(X=x,Y=y)表示训练数据中样本
(
X
,
Y
)
(X,Y)
(X,Y)出现的频数,
ν
(
X
=
x
)
\nu(X=x)
ν(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) = \begin{cases}1, &x与y满足某一事实\\0, & 否则\end{cases}
f(x,y)={1,0,x与y满足某一事实否则
参考链接:https://zhuanlan.zhihu.com/p/29978153
它是一个二值函数,当 x x x和 y y y满足这个事实时取值为1,否则取值为0。 注:这里的 x x x是指完整的一个输入,所以可以根据实际情况设置n个特征函数,与标签y一一对应的特征函数。
特征函数
f
(
X
,
Y
)
f(X,Y)
f(X,Y)关于经验分布
P
~
(
X
,
Y
)
\widetilde{P}(X,Y)
P
(X,Y)的期望值,用
E
P
~
(
f
)
E _{\widetilde{P}}(f)
EP
(f)表示。
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)
特征函数
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)
如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即 E P ~ ( f ) = E P ( f ) E _{\widetilde{P}}(f) = E _{P}(f) EP (f)=EP(f),则 ∑ x , y P ~ ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) \sum\limits_{x,y}\widetilde{P}(x,y)f(x,y) = \sum\limits_{x,y}\widetilde{P}(x)P(y|x)f(x,y) x,y∑P (x,y)f(x,y)=x,y∑P (x)P(y∣x)f(x,y)
可以看到,我们最终需要计算的条件概率为: P ( y ∣ x ) P(y|x) P(y∣x),其他都是从我们的数据集中可以获取得到的信息,所以这成为了我们使用数据集的 X 与 Y X与Y X与Y约束 P ( y ∣ x ) P(y|x) P(y∣x)的一个约束条件。假如有 n n 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 n n个约束条件。
数学定义
假设满足所有约束条件的模型集合为
C
≡
{
P
∈
ρ
∣
E
P
(
f
i
)
=
E
P
~
(
f
i
)
,
i
=
1
,
2
,
…
,
n
}
C \equiv \{ P\in \rho | E_P(f_i) = E_{\widetilde P}(f_i),i=1,2,…,n\}
C≡{P∈ρ∣EP(fi)=EP
(fi),i=1,2,…,n}
定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵为
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
H(P) = -\sum\limits_{x,y}\widetilde P(x)P(y|x)log P(y|x)
H(P)=−x,y∑P
(x)P(y∣x)logP(y∣x)
则模型集合
C
C
C中条件熵
H
(
P
)
H(P)
H(P)最大的模型称为最大熵模型。式中的对数为自然对数。
推导求解
通过上面的约束把 P ( y ∣ x ) P(y|x) P(y∣x)的表达推导出来即可