最大熵模型是将最大熵原理应用于分类任务中得到的模型。认为在全部可能的模型中,熵最大的模型是最好的模型。
最大熵原理认为,学习概率模型时,在所有可能的概率模型分布中,熵最大的模型就是最好的模型。由于通常用约束条件来确定概率模型的集合,因此最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。熵,最大熵原理都最初演变自热力学领域。关于信息论中的熵可以参考之前的文章中的介绍 《统计学习方法》–决策树
在要求解的问题中,假设满足所有约束条件的模型集合为
C ≡ { P ∈ P ∣ E P ( f i ) = E P ∼ ( f i ) } C\equiv \{P \in \mathcal{P}|E_P(f_i)=E_{P^{\thicksim}}(f_i)\} C≡{P∈P∣EP(fi)=EP∼(fi)}
其中 i = 1 , 2 , . . . , n i=1,2,...,n 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}P^{\thicksim}(x)P(y|x)\log P(y|x) H(P)=−x,y∑P∼(x)P(y∣x)logP(y∣x)
其中 P ∼ ( x ) P^{\thicksim}(x) P∼(x)表示边缘分布 P ( x ) P(x) P(x)的经验分布, E P ∼ ( f i ) E_{P^{\thicksim}}(f_i) EP∼(fi)表示特征函数 f ( x , y ) f(x,y) f(x,y)关于经验分布 P ∼ ( x , y ) P^{\thicksim}(x,y) P∼(x,y)的期望。则模型集合 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 ) \max_{P\in C} H(P)=-\sum_{x,y}P^{\thicksim}(x)P(y|x)\log P(y|x) P∈CmaxH(P)=−x,y∑P∼(x)P(y∣x)logP(y∣x)
s . t . E P ( f i ) = E P ∼ ( f i ) , i = 1 , 2 , . . . , n s.t. E_P(f_i)=E_{P^\thicksim}(fi),i=1,2,...,n s.t.EP(fi)=EP∼(fi),i=1,2,...,n
∑ y P ( y ∣ x ) = 1 \sum_yP(y|x)=1 y∑P(y∣x)=1