最大熵模型的理解(一些实例的手动计算)

本文通过具体实例解析了最大熵模型的计算原理及应用过程,特别是针对张乐博士的maxent开源库进行了深入探讨,解释了如何根据训练数据集的真实概率来计算理论概率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说明一下:本篇博客不是关于最大熵模型的介绍,只是对模型结果的理解。更准确地讲,是对张乐博士的maxent开源库的理解。所以,读者应按其所需选择是否继续。

 

最大熵模型就是要在满足下面式子的前提下使得整个解的信息熵最大化。式子如下:

\sum \tilde P(x) P(y|x) f(x,y) = \sum \tilde P(x,y) f(x,y)

 因为这里的博客似乎不支持数学公式的编写,所以我这里简单说明一下:\sum表示的是求和符号,它表示对所有实例进行求和,\tilde P表示的是训练数据集的真实概率,而P则表示理论计算的概率。x是特征,y是打的标签。x与y的同时出现表示一个可统计的特征,此时f(x,y)=1,否则为0。 下面我们就用此式来理解一下maxent出来的结果:

 

比如,训练样本是:

 

P ta
P tb
P tb
P ta
P ta
N ta
N ta
N ta
N ta
N tb

 

 

P和N是两个标签,意思分别是正例和反例。ta和tb是两个特征。这时,跑出来的结果是:

P(P | ta) = 0.429

P(P | tb) = 0.667

用上面的公式不难理解:

\tilde P(ta) = 0.7

\tilde P(ta, P) = 0.3

所以,0.7 * P(P | ta) = 0.3 ===> P(P | ta) = 0.429

同理可推出P(P | tb)


如果某些实例有多个特征,那么在计算时我们对每个特征分别进行计算。比如,下面的训练数据:

 

P ta tb
P tb
P tb
P ta
P ta
N ta
N ta
N ta
N ta tb
N tb

 

 

此时,\tilde P(ta) = 0.5; \tilde P(tb) = 0.3; \tilde P(ta, tb) = 0.2

在考察ta特征时:

0.5 * P(P | ta) + 0.2 * P(P | ta, tb) = \tilde P(ta, P) = 0.3 (同时出现ta和P的实例一共3个)

而在考察tb特征时:

0.3 * P(P | tb) + 0.2 * P(P | ta, tb) = \tilde P(tb, P) = 0.3 (同时出现tb和P的实例一共3个)

我们运行的结果是:

 

P(P | ta) = 0.388

 

P(P | tb)  = 0.643

 

 

P(P | ta, tb) = 0.533
满足前面两个式子。

 

 

 

posted on 2012-01-05 13:11 PDEagle 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/pdeagle/archive/2012/01/05/2312961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值