1. 引言
最大熵原理认为,学习概率模型时,在满足约束条件的模型集合中,熵最大的模型是最好的模型,因为在没有更多信息的情况下,我们一般会认为不确定的部分都是等可能的,而在前面决策树的介绍时我们知道,熵最大时刚好是要求概率的分布满足均匀分布,即等可能分布,因此,可以通过熵的最大化来表示等可能分布。
2. 最大熵模型原理介绍
2.1 最大熵模型的定义
对于分类模型,假设我们要学习的模型是一个条件概率分布 P ( Y ∣ X ) P(Y | X) P(Y∣X), X ∈ X ⊆ R n X \in \mathcal{X} \subseteq \mathbf{R}^{n} X∈X⊆Rn表示输入, Y ∈ Y Y \in \mathcal{Y} Y∈Y表示输出。则对于一个训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} 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 ) = ν ( X = x , Y = y ) N P ~ ( X = x ) = v ( X = x ) N \begin{array}{l}{\tilde{P}(X=x, Y=y)=\frac{\nu(X=x, Y=y)}{N}} \\ \\{\tilde{P}(X=x)=\frac{v(X=x)}{N}}\end{array} P~(X=x,Y=y)=Nν(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)和 v ( X = x ) v(X=x) v(X=x)分别表示样本中 ( x , y ) (x, y) (x,y)和 x x x出现的频数, N N N表示样本数量。
用特征函数 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}{l}{1, x和y满足某一事实} \\ {0, 否则}\end{array}\right. f(x,y)={
1,x和y满足某一事实0,否则即当 x x x和 y y y满足这个事实时,取值为1,否则取值为0。
特征函数 f ( x , y ) f(x, y) f(x,y)关于经验分布 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y)的期望值为:
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 ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_{P}(f)=\sum_{x, y} \tilde{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_{\tilde{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} \tilde{P}(x) P(y | x) f(x, y)=\sum_{x, y} \tilde{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), \quad i=1,2, \cdots, 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 } \mathcal{C} \equiv\left\{P \in \mathcal{P} | E_{P}\left(f_{i}\right)=E_{\tilde{P}}\left(f_{i}\right), \quad i=1,2, \cdots, n\right\} 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} \tilde{P}(x) P(y | x) \log P(y | x) H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)则模型集合 C \mathcal{C} C中条件熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型。
2.2 最大熵模型的求解
最大熵模型其实可以转化为约束最优化问题,具体表示如下:
min 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 ) = 0 , i = 1 , 2 , ⋯   , n ∑ y P ( y ∣ x ) = 1 \begin{array}{c}{\min _{P \in C}\space\space\space\space-H(P)=\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x)} \\ \\ {\text { s.t. } \space \space\space\space\space\space\space\space\space\space\space E_{P}\left(f_{i}\right)-E_{\tilde{P}}\left(f_{i}\right)=0, \quad i=1,2, \cdots, n} \\ \\ {\sum_{y} P(y | x)=1}\end{array} minP∈C −H(P)=∑x,yP~(x)P(y∣x)logP(y∣x) s.t. EP(fi)−EP~(fi)=0,i=1,2,⋯,n∑yP(y∣x)=1 利用拉格朗日乘子法可以将该问题转化为无约束的对偶问题,具体如下:
max w min P ∈ C 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 ) ) \begin{aligned} \max _{w} \min _{P \in \mathbf{C}} L(P, w) & \equiv-H(P)+w_{0}\left(1-\sum_{y} P(y | x)\right)+\sum_{i=1}^{n} w_{i}\left(E_{\tilde{p}}\left(f_{i}\right)-E_{P}\left(f_{i}\right)\right) \\=& \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} wmaxP∈CminL(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