最大熵模型详解

最大熵模型可用于自然语言处理中歧义消解的问题,再有就是《数学之美》中很经典的拼音转汉字问题、词性标注、句法分析、机器翻译等相关任务中也有相应的应用场景。这个模型可以将各种信息整合到一个统一的模型中,是唯一一种既可以满足各个信息源的限制条件,同时又能保证平滑性的模型。最大熵模型是由最大熵原理推到得来的,在正式了解最大熵模型之前,很有必要理解最大熵原理。

 

所谓的最大熵原理就是说,鸡蛋不要放在一个篮子里,这样能有效降低风险。最大熵原理:在只掌握关于未知分布的部分信息的情况下,符合已知知识的概率分布可能有多个,但使熵值最大的概率分布最真实地反映了事件的分布情况,因为熵定义了随机变量的不确定性,当熵最大时,随机变量最不确定,最难准确地预测其行为。也就是说,在已知部分信息的前提下,关于未知分布最合理的推断应该是符合已知信息最不确定或最大随机的推断,即在所有可能的概率模型中,熵最大的模型是最好的模型。通俗讲就是保留所有的不确定性,把风险降低到最小,而熵达到最大时,风险最小。均匀分布是“最不确定”的分布。

 

在这个原理中指出,需要对一个随机事件的概率分布进行预测时,预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设(这点很重要)。在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以叫“最大熵模型”。最大熵模型根据最大熵原理在一系列特征限制下选择最优的概率分布。

对于给定的训练数据集以及特征函数。最大熵模型的学习等价于如下约束的最优化问题:

最大熵的数学推导中也用到了拉格朗日算子,求解其对偶问题,最终将问题转化为如下形式:

下面的公式是根据上下文(前两个词)和主题预测下一个词的最大熵模型,其中w3是要预测的词(王小波或者王晓波),w1和w2是它的前两个字(比如说它们分别是“出版”和“小说家”),也就是其上下文的一个大致估计,s表示主题。公式如下:

待求的参数是λ和Z,Z是归一化因子。最大熵模型的学习最终可以归结为以最大上模型似然函数为目标函数的优化问题,这时的目标函数是凸函数,因此有很多方法能保证找到全局最优解。最大熵模型形式上很简单,但是在实现时涉及的计算量非常大。假设在搜索排序的时候要考虑20种特征{x1, x2, ... , x20},需要排序的网页是d,则即使这些特征相互独立,其对应的最大熵模型如下:

这么多的参数λ最原始的训练方法是用一种通用迭代算法GIS求解。GIS的求解思想特简单,初始化的时候假定初始模型为等概率的均匀分布,用第N次迭代的模型估算每种信息特征在训练数据中的分布。若超过十几部分,则把相应的模型参数调小,否则增大,直到结果收敛为止。但是这种算法每次迭代时间都很长,需要迭代多次才能收敛且不稳定,即使在64位计算机上都会出现溢出,因此在真正训练模型的时候很少有人真正用GIS。有改进版的GIS——IIS,使最大熵模型变得有可能实用,训练时间比GIS缩短了一到两个数量级,但是计算量还是很大。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值