最大熵模型由最大熵原理推导实现。
最大熵原理是概率模型学习的一个原则。最大熵原理认为,学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,因此最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
假设离散随机变量 XXX 的概率分布是 P(X)P(X)P(X),则其熵为 H(P)=−∑xP(x)logP(x)H(P) = - \sum_{x} P(x) \log{P(x)} H(P)=−x∑P(x)logP(x) 熵满足下列不等式: 0≤H(P)≤log∣X∣0 \leq H(P) \leq \log{|X|} 0≤H(P)≤log∣X∣ 式中,∣X∣|X|∣X∣ 是 XXX 的取值个数,当且仅当 XXX 的分布是均匀分布时右边的等号成立。
直观上来看,最大熵原理认为要选择的概率模型首先必须满足已有事实,即约束条件。在没有更多信息的情况下,那些不确实的部分都是「等可能的」。最大熵原理通过熵的最大化来表示等可能性。
假设分类模型是一个条件概率分布 P(Y∣X)P(Y | X)P(Y∣X),X∈X⊆RnX \in \mathcal{X} \subseteq \mathbf{R}^nX∈X⊆Rn 表示输入,Y∈YY \in \mathcal{Y}Y∈Y 表示输出,X\mathcal{X}X 和 Y\mathcal{Y}Y 分别是输入和输出的集合。这个模型表示的是对于给定的输入 XXX,以条件概率 P(Y∣X)P(Y | X)P(Y∣X) 输出 YYY。给定一个训练数据集 T={(x1,y1),(x2,y2),⋯ ,(xN,yN)}T = \{(x_1, y_1), (x_2, y_2), \cdots, (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)\tilde{P}(X, Y)P~(X,Y) 和 P~(X)\tilde{P}(X)P~(X) 表示: P~(X=x,Y=y)=ν(X=x,Y=y)NP~(X=x)=ν(X=x)N\tilde{P}(X = x, Y = y) = \frac{\nu(X = x, Y = y)}{N} \\ \tilde{P}(X = x) = \frac{\nu(X = x)}{N} P~(X=x,Y=y)=Nν(X=x,Y=y)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) 表示训练数据中输入 xxx 出现的频数,NNN 表示训练样本容量。 用特征函数 f(x,y)f(x, y)f(x,y) 描述输入 xxx 和输出 yyy 之间的某一个事实,其定义是 f(x,y)={1,x 与 y 满足某一事实 0,否则f(x, y) = \begin{cases} 1, x \text{ 与 } y \text{ 满足某一事实 } \\ 0, \text{否则} \end{cases} f(x,y)={1,x 与 y 满足某一事实 0,否则 特征函数 f(x,y)f(x, y)f(x,y) 关于经验分布 P~(X,Y)\tilde{P}(X, Y)P~(X,Y) 的期望值,用 EP~(f)E_{\tilde{P}}(f)EP~(f) 表示: EP~(f)=∑x,yP~(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) 的期望值,用 EP(f)E_P(f)EP(f) 表示: EP(f)=∑x,yP~(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) 如果模型能够获取到训练数据中的信息,那么就可以假设这两个期望值相等,即 EP(f)=EP~(f)E_{P}(f) = E_{\tilde{P}}(f)EP(f)=EP~(f)。