语言模型评估

转自:http://www.cnblogs.com/rocketfan/p/4917588.html

说明:自己在看代码的时候,计算Perplexity的时候,都是通过交叉损失函数求指数得来的,一直很困惑,交叉不是用来衡量两个分布的差异程度,而Perplexity是计算一句话的概率,感觉两者相差很大,直到看到博主写的这篇博客,才恍然大悟,非常感谢博主。

总结:本质上perplexity 就是交叉熵的指数形式

语言模型评估

1.如何评估语言模型 (<<speech and language processin>>)

Perplexity

一个语言模型表现更好好就是说它在测试集合表现更好,也就是说使得测试数据能有更高产生概率(assign a higher score to test data)

在这个基础上表征了这一特征,perplextiy越低则表示测试数据产生概率越高。

N起归一作用,在这里避免了长度偏见,较长句子会使得概率较小一些。

考虑

If P(w1,w2) = 1/16 (N = 2)

Then PP(W) = 4

If P(w1w2,w3,w4) = 1/16 (N = 4)

Then PP(W) = 2

  

如果使用ChainRule来表示

更进一步如果是bigram的语言模型

  

考虑如果是一个uingram语言模型,词典对应1,2,3,….10) 每个出现概率是1/10

那么PP(W) = 10

  

  

在一个数据集合(wall street journal)训练unigram,bigram,trigram三种语言模型,在测试集合上对应的Perplexity表现是

  

Perplexity和信息论的关系

  

考虑一个数据对应可以用8bit编码,那么对应的perplexity256

H[x] = 8

  

类似上面 p(x) = 1/256

  

信息熵

Entropy rate (per-word entropy)

  

根据Shannon-McMillan-Breiman theorem

交叉熵

同样根据Shannon-McMillan-Breiman theorem

  

这里本质上就是 perplexity 就是交叉熵的指数形式 exp of cross entropy

根据perplexity和交叉熵的关系,更小的perplexity从某种意义表明当前模型是更加接近产生测试数据集合的真实模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值