【深度学习】序列生成模型(四):评价方法

2024-07-30 11:27:23 浏览数 (2)

一、困惑度(Perplexity)

  困惑度(Perplexity)是一种用来衡量序列生成模型性能的指标。在给定一个测试文本集合的情况下,一个好的序列生成模型应该使得测试集合中句子的联合概率尽可能高。困惑度是信息论中的一个概念,用来度量一个分布的不确定性。

1. 定义

  对于离散随机变量

X in mathcal{X}

,其概率分布为

p(x)

,困惑度定义如下:

text{Perplexity}(mathcal{X}, p) = 2^{H(p)}=2^{- sum_{x in mathcal{X}} p(x) log_2 p(x)}

这里的熵

H(p)

衡量了分布

p

的不确定性。困惑度可以看作是对观察到的数据集的估计概率的逆

2. 计算

  考虑一个序列长度为 (T) 的测试集,模型的困惑度为:

text{PPL}(theta) = 2^{- frac{1}{T} sum_{n=1}^{N} sum_{t=1}^{T_n} log_2 p_theta(x_{n,t} | x_{n,1}^{t-1})}

其中

N

为测试集中序列的数量,

T_n

为第

n

个序列的长度,

p_theta

是模型对条件概率的估计。困惑度越低,表示模型在给定数据上的拟合越好。

3. 衡量两个分布之间的差异

  对于一个未知的数据分布

p_{text{true}}(x)

和一个模型分布

p_theta(x)

,困惑度可以用来衡量它们之间的差异。两者之间的交叉熵(cross entropy)为:

text{Cross Entropy}(p_{text{true}}, p_theta) = -frac{1}{T} sum_{n=1}^{N} sum_{t=1}^{T_n} log_2 p_theta(x_{n,t})

困惑度可以表示为交叉熵的形式:

text{PPL}(theta) = 2^{text{Cross Entropy}(p_{text{true}}, p_theta) / T}

困惑度越低,表示模型分布与真实数据分布越接近。

4. 意义

  困惑度为每个词条件概率的几何平均数的倒数。测试集中所有序列的概率越大,困惑度越小,模型越好。一般情况下,困惑度范围在50到1000之间。在自然语言处理中,困惑度是一个常用的评估指标,用于衡量语言模型的性能。

二、BLEU(Bilingual Evaluation Understudy)

  BLEU(BiLingual Evaluation Understudy)算法是一种用于衡量机器翻译模型或其他序列生成任务中生成序列和参考序列之间的相似度的评价指标。该算法通过计算N元词组(N-Gram)的重合度来评估生成序列的质量。

1. 定义

  设

0 人点赞