上面介绍的两个模型都是为了计算的得到输入序列和输出标记的最大联合概率,在下面将讨论最大熵模型(Maximum Entropy Model)。最大熵模型计算的是标记序列对于输入变量的条件概率,它是CRF的基础。
最大熵模型基于一个最大熵原则(Principle of Maximum Entropy),即在满足已知信息的前提下,不对模型做出任何假设。(if incomplete information about a probability distribution is available,the only unbiased assumption that can be made is a distribution which is as uniform as possible given the available information.)
根据这个原则,我们说要求的条件概率就是在满足相关约束下是熵(H(y|x))最大的那个概率分布。熵的定义为:

其中 Z = X × Y包含了X与Y的所有可能组合(X为输入集合,Y为标记集合),而不仅仅是在训练数据中出现的组合。这样我们要寻找的条件概率就是:
其中P表示的是所有满足限制条件的概率分布的集合。
在使用训练数据时,常使用特征来表示数据,常将特征定义为一个二值函数f(x,y),可能的一个特征为:
根据训练数据,可以得到每一个特征的经验期望,表示为:
在这个公式中,考虑了x、y的所有组合。但是在训练数据中没有出现的组合,他们的期望必然为0.所以上面的公式可以表示为:





根据最大熵原则,我们的模型只需要满足已知的确定的信息,而已知的所有信息就是每一个特征的经验分布。所以,我们的模型只要满足对于每一个特征下式成立:


其中H(y|x)定义为:
(20)
下面是一些式子的推导,直接截图:
这就是最大熵模型的形式,对以上式子进行改写,可得到:
其中:
这就是最大熵模型的整个数学理论基础,至于参数训练方法这里就不再介绍,以后有时间再介绍,因为他的训练方法基本是通用的,很多模型都可以使用。
PS:最大熵模型是一个分类模型,而不是序列标注模型,也就是说对于输入向量的不同位置进行label的时候,能使用的feature只能从输入向量提取,不能使用前一个位置的label作为特征使用(因为最大熵模型不满足马尔可夫性质)。