机器学习 - 为什么我们可以使用熵来衡量语言模型的质量



我正在阅读<统计自然语言处理基础>。它对信息熵和语言模型之间的关系有以下陈述:

。这里的要点是,如果模型捕获了更多的 一种语言的结构,那么模型的熵应该是 降低。换句话说,我们可以起诉熵作为质量的衡量标准。 我们的型号...

但是这个例子怎么样:

假设我们有一台机器,一个接一个地吐出 2 个字符,A 和 B。并且机器的设计者使A和B具有相等的概率。

我不是设计师。我试图通过实验来建模。

在最初的实验中,我看到机器拆分了以下字符序列:

甲、

乙、甲

所以我将机器建模为 P(A)=2/3 和 P(B)=1/3。我们可以计算这个模型的熵:

-2/3*Log(2/3)-1/3*Log(1/3)= 0.918 bit  (the base is 2)

但后来,设计师告诉我他的设计,所以我用这些信息改进了我的模型。新模型如下所示:

P(A)=1/2

P(B)=1/2

这个新模型的熵是:

-1/2*Log(1/2)-1/2*Log(1/2) = 1 bit

第二个模型显然比第一个模型更好。但是熵增加了。

我的观点是,由于所尝试模型的任意性,我们不能盲目地说较小的熵表示更好的模型。

谁能对此有所了解?

加 1

(非常感谢Rob Neuhaus!

是的,在我重新消化了提到的NLP书之后。我想我现在可以解释一下了。

我计算的实际上是语言模型分布的熵。它不能用于评估语言模型的有效性。

为了评估一个语言模型,我们应该衡量它给该语言的真实序列带来了多少惊喜。对于遇到的每个真实单词,语言模型将给出一个概率p。我们使用 -log(p) 来量化惊喜。我们平均了足够长的序列中的总惊喜。因此,如果是 1000 个字母的序列,其中包含 500 A 和 500 B,1/3-2/3 模型给出的惊喜将是:

[-500*日志(1/3) - 500*日志(2/3)]/1000 = 1/2 * 日志(9/2)

而正确的 1/2-1/2 模型将提供:

[-500*日志(1/2) - 500*日志(1/2)]/1000 = 1/2 * 日志(8/2)

所以,我们可以看到,1/3、2/3 模型给出了更多的惊喜,这表明它比正确的模型更糟糕。

只有当序列足够长时,平均效应才会模仿 1/2-1/2 分布上的预期。如果序列很短,它不会给出令人信服的结果。

我在这里没有提到交叉熵,因为我认为这个行话太吓人了,对揭示根本原因没有多大帮助。

如果你有更大的数据样本,那么将 2/3 分配给 A 和将 1/3 分配给 B 的模型很可能比将 1/2 分配给每个模型的真实模型更差。 问题是你的训练集太小了,所以你被误导认为错误的模型更好。 我鼓励你尝试,生成一个长度为 10000 的随机字符串,其中每个字符的可能性相同。 然后测量 2/3,1/3 模型与 1/2,1/2 模型在更长的字符串上的交叉熵。 我相信你会看到后者表现得更好。 下面是一些演示事实的示例 Python 代码。

from math import log
import random
def cross_entropy(prediction_probability_seq):
    probs = list(prediction_probability_seq)
    return -sum(log(p, 2) for p in probs) / len(probs)
def predictions(seq, model):
    for item in seq:
         yield model[item]
rand_char_seq = [random.choice(['a', 'b']) for _ in xrange(1000)]
def print_ent(m):
    print 'cross entropy of', str(m), 
        cross_entropy(predictions(rand_char_seq, m))
print_ent({'a': .5, 'b': .5})
print_ent({'a': 2./3, 'b': 1./3})

请注意,如果在选择中添加额外的"a",则第二个模型(更接近真实分布)的交叉熵比第一个模型低。

但是,要考虑的另一件事是,您确实希望测量在训练期间未观察到的保留数据的可能性。 如果不这样做,则记忆训练数据中噪声的更复杂的模型将比没有那么多记忆噪声能力的较小/更简单的模型更具优势。

在衡量语言模型质量时,可能性的一个真正问题是,它有时不能完美地预测实际的更高级别应用程序错误率。 例如,语言模型通常用于语音识别系统。 已经改进了语言模型(在熵方面),并没有降低整个系统的单词错误率,这是设计人员真正关心的。 如果语言模型改进了预测,而整个识别系统已经有足够的信心获得正确的答案,则可能会发生这种情况。

最新更新