最大熵模型(maximum entropy model,MaxEnt),是典型的分类算法,是基于最大熵原理的统计模型,广泛应用于模式识别和统计评估中。
最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布) 中, 熵最大 的模型是最好的模型 。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型 。
在信息论与概率统计中,熵(entropy) 是表示随机变量不确定性的度量。设 X X X 是一个取有限个值的离散随机变量,其概率分布为
P ( X = x i ) = p i , i = 1 , 2 , . . . , n P(X=x_i)=p_i,i=1,2,...,n P(X=xi)=pi,i=1,2,...,n
则随机变量 X X X 的熵定义为
H ( X ) = − ∑ i = 1 n p i log p i H(X)=-\sum_{i=1}^np_i\log p_i H(X)=−i=1∑npilogpi
由定义可知,熵只依赖于 X X X 的分布,而与 X X X 的取值无关,所以也可将 X X X 的熵记作 H ( p ) H(p) H(p) ,即
H ( p ) = − ∑ i = 1 n p i log p i H(p)=-\sum_{i=1}^np_i\log p_i H(p)=−i=1∑npilogpi
熵越大,随机变量的不确定性就越大。
熵满足不等式:
0 ≤ H ( p ) ≤ log ∣ X ∣ 0 \leq H(p) \leq \log |X| 0≤H(p)≤log∣X∣
式中, ∣ X ∣ |X| ∣X∣是 X X X的取值个数(n),当且仅当 X X X的分布是均匀分布时右边等号成立,说明 X X X服从均匀分布时,熵最大。
直观地,最大熵原理认为要选择的概率模型首先必须满足己有的事实,即约束条件。在没有更多信息的情况下,那些不确定的部分都是"等可能的" 。 最大熵原理通过熵的最大化来表示等可能性。"等可能"不容易操作,而’熵则是一个可优化的数值指标。
对一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小,得到概率分布的熵最大
假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) , X ∈ χ ⊆ R n X \in \chi \subseteq \R^n X∈χ⊆Rn 表示输入 , Y ∈ Υ Y \in \Upsilon Y∈Υ 表示输出 , χ \chi χ 和 Υ \Upsilon Υ 分别是输入和输出的集合。这个模型表示的是对于给定的输入 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 ) = v ( X = x , Y = y ) N P ~ ( X = x ) = v ( X = x ) N \widetilde{P}(X=x,Y=y)=\frac{v(X=x,Y=y)}{N}\\ \widetilde{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{aligned}1&, x与y满足某一事实 \\ 0&,否则 \end{aligned} \right. f(x,y)={ 10,x与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_{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_{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_{ {p}}(f)=E_{\widetilde{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}\widetilde{P}(x)P(y|x)f(x,y)=\sum_{x,y}\widetilde{P}(x,y)f(x,y) x,y∑P (x)P(y∣x)f(x,y)=x,y∑P (x,y)f(x,y)
将上述式子作为模型学习条件,加入有 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 ∈ P ′ ∣ E P ( f i ) = E p ~ ( f i ) , i = 1 , 2 , . . . , n } C \equiv \{ P \in P'|E_P(f_i)= E_{\widetilde{p}}(f_i),i=1,2,...,n\} C≡{ P∈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 ) log P ( y ∣ x ) H(P)=-\sum_{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) 最大的模型称为最大熵模型,式中的对数为自然对数。
最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习可以形式化为约束最优化问题。
对于给定一个训练集 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)},以及特征函数 f i ( x , y ) , i = 1 , 2 , . . . , n f_i(x,y),i=1,2,...,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 , 2 , . . . , n ∑ y P ( y ∣ x ) = 1 \begin{aligned} \max \limits_{P \in C}\ &H(P)=-\sum_{x,y}\widetilde{P}(x)P(y|x)\log P(y|x)&\\ s.t.\ \ &E_P(f_i)= E_{\widetilde{p}}(f_i),i=1,2,...,n&\\ &\sum_{y}P(y|x)=1& \end{aligned} P∈Cmax s.t. H(P)=−x,y∑P (x)P(y∣x)logP(y∣x)EP(fi)=Ep (fi),i=1,2,...,ny∑P(y∣x)=1