0-4评价一个语言模型Evaluating Language Models:Perplexity
2013-07-15 00:11
295 查看
有了一个语言模型,就要判断这个模型的好坏。
现在假设:
我们有一些测试数据,test data.测试数据中有m个句子;s1,s2,s3…,sm
我们可以查看在某个模型下面的概率:
我们也知道,如果计算相乘是非常麻烦的,可以在此基础上,以另一种形式来计算模型的好坏程度。
在相乘的基础上,运用Log,来把乘法转换成加法来计算。
补充一下,在这里的p(Si)其实就等于我们前面所介绍的q(the|*,*)*q(dog|*,the)*q(…)…
有了上面的式子,评价一个模型是否好坏的原理在于:
a good model should assign as high probability as possible to these test data sentences.
,this value as being a measure of how well the alleviate to make sth less painful or difficult to deal with language model predict these test data sentences.
The higher the better.
上面的意思也就是说,如果
的值越大,那么这个模型就越好。
实际上,普遍的评价的指标是perplexity
其中,M的值是测试数据test data中的所有的数量。
那么从公式当中查看,可以知道。perplexity的值越小越好。
为了更好的理解perplexity,看下面这个例子:
我们现在有一个单词集V,N=|V|+1
有了上面的条件,可以很容易的计算出:
Perplexity是测试branching factor的数值。
branching factor又是什么呢?有的翻译为分叉率。如果branching factor高,计算起来代价会越大。也可以理解成,分叉率越高,可能性就越多,需要计算的量就越大。
上面的例子q=1/N只是一个举例,再看看下面这些真实的数据:
Goodman的结果,其中|V|=50000,在trigram model的
中,Perplexity=74
在bigram model中,
,Perplexity=137
在unigram model中,
,perplexity=955
在这里也看到了,几个模型的perplexity的值是不同的,这也就表明了三元模型一般是性能良好的。
现在假设:
我们有一些测试数据,test data.测试数据中有m个句子;s1,s2,s3…,sm
我们可以查看在某个模型下面的概率:
我们也知道,如果计算相乘是非常麻烦的,可以在此基础上,以另一种形式来计算模型的好坏程度。
在相乘的基础上,运用Log,来把乘法转换成加法来计算。
补充一下,在这里的p(Si)其实就等于我们前面所介绍的q(the|*,*)*q(dog|*,the)*q(…)…
有了上面的式子,评价一个模型是否好坏的原理在于:
a good model should assign as high probability as possible to these test data sentences.
,this value as being a measure of how well the alleviate to make sth less painful or difficult to deal with language model predict these test data sentences.
The higher the better.
上面的意思也就是说,如果
的值越大,那么这个模型就越好。
实际上,普遍的评价的指标是perplexity
其中,M的值是测试数据test data中的所有的数量。
那么从公式当中查看,可以知道。perplexity的值越小越好。
为了更好的理解perplexity,看下面这个例子:
我们现在有一个单词集V,N=|V|+1
有了上面的条件,可以很容易的计算出:
Perplexity是测试branching factor的数值。
branching factor又是什么呢?有的翻译为分叉率。如果branching factor高,计算起来代价会越大。也可以理解成,分叉率越高,可能性就越多,需要计算的量就越大。
上面的例子q=1/N只是一个举例,再看看下面这些真实的数据:
Goodman的结果,其中|V|=50000,在trigram model的
中,Perplexity=74
在bigram model中,
,Perplexity=137
在unigram model中,
,perplexity=955
在这里也看到了,几个模型的perplexity的值是不同的,这也就表明了三元模型一般是性能良好的。
相关文章推荐
- 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱
- 数学之美系列之一:统计语言模型 (Statistical Language Models)
- 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱
- 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱
- 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱
- RNN语言模型中的在线表示学习Online Representation Learning in Recurrent Neural language models
- 语言模型评价指标Perplexity
- 统计语言模型(Statistical Language Models)(条件概率公式)
- 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱
- 机器学习模型评价(Evaluating Machine Learning Models)-主要概念与陷阱
- 一个工作流引擎脚本语言底层模型及实现
- Statistical language model 统计语言模型
- CUED-RNNLM:一个有效训练评估RNN语言模型的开源工具包
- AMPL(A Mathematical Programming Language):一个代数建模语言简介
- 【Natural Language Processing】语言模型(Language Modeling)
- 概率语言模型 Probabilistic Language Modeling (三) --- 训练工具汇总
- Statistical language model 统计语言模型
- 【复杂网络系列】图模型语言(graph model language)gml格式文件生成代码
- 基于循环神经网络实现基于字符的语言模型(char-level RNN Language Model)-tensorflow实现
- 深度学习语言模型的通俗讲解(Deep Learning for Language Modeling)