自然语言处理之一:最大熵模型

本文探讨了最大熵模型在自然语言处理中的应用,介绍了如何通过该模型实现概率分布的均匀化,并解释了特征函数的作用及模型背后的数学原理。

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

一直对自然语言处理中的各种模型一知半解。总是抓不住它们的思想。

今天看了一下这个“最大熵模型”(A  Maximum Entropy Approach to  Natural  Language  Processing),写写自己的想法吧。呵呵。

 

就像论文中所说的:希望找到一个最佳的uniform。也就是在模型的建立时,将所有已知的事实建入模型中,而对于未知的则尽量的使它们一致。

比如我们目前只知道的事实是某个随机变量取值的概率分布具有约束条件:

(1) P(A+B)=0.2,

(2) P(C+D+E+F)=0.8。

那么我们在预测P(A),P(B),P(C),P(D),P(E),P(F)的各个值时,按照直觉应该对(A,B)和(C,D,E,F)平均分配概率。

P(A)=0.1;

P(B)=0.1;

P(C)=0.2;

P(D)=0.2;

P(E)=0.2;

P(F)=0.2。

 

那么这样的一种uniform应该在公式上面怎样体现呢,文章随之就引入了最大熵的思想。

最大化条件熵:

H(p)=-∑{x,y}{~p(x)p(y|x)log p(y|x)}即能够满足我们所需要的uniform条件。

 

而我们的事实应该怎么表达呢?

原文文章中的公式1,2,3的综合给了我们他的表示方法。

 

《文本挖掘》中所写的式子感觉更加容易理解。

 

p(f)=∑{x,y}p(x,y)f(x,y)=P(f)=∑{x,y}P(x,y)f(x,y)

在实际中由于不好计算真实的期望值,因此使用经验值,只在训练样本熵进行求和,则有:

pE(f)=∑{i=1...N}{y∈Y}p(y|xi)f(xi,y)/N=PE(f)=∑{i=1...N}f(xi,yi)/N

 

由于对于每个f都有一个公式,这组公式很像上面例子中给出的(1),(2)两个公式。公式的右边已知,而我们希望公式左边的概率p(y|x)能够服从这个约束条件。该公式可以理解为特征函数f生成的约束条件。在这个特征函数下的概率和满足右边式子的值。


其中引入了一个特征函数f(x,y)。这个特征函数的取值要么为1,要么为0。表示了我们希望考虑的一些条件,而我们不想考虑的条件则由于=0的原因而没有考虑到等式中。因此被叫做特征函数,他表示我们感兴趣的特征。

 

最大上模型的大概思想我感觉就是这个样子了。当然,具体的寻找最优解的算法还是很复杂的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值