评估指标(Metric)(三)

Perplexity,中文翻译为困惑度,是信息论中的一个概念,其可以用来衡量一个随机变量的不确定性,也可以用来衡量模型训练的好坏程度。通常情况下,一个随机变量的Perplexity数值越高,代表其不确定性也越高;一个模型推理时的Perplexity数值越高,代表模型表现越差,反之亦然。

随机变量概率分布的困惑度

对于离散随机变量 X X X​,假设概率分布可以表示为 p ( x ) p(x) p(x)​​​,那么对应的困惑度为: 2 H ( p ) = 2 − ∑ x ∈ X p ( x ) l o g 2 p ( x ) 2^{H(p)}=2^{-\sum_{x \in X}p(x) log_2p(x)} 2H(p)=2xXp(x)log2p(x)其中, H ( p ) H(p) H(p) 为概率分布 p p p ​​的熵。可以看到,一个随机变量熵越大,其对应的困惑度也就越大,随机变量的不确定性也就越大。

模型分布的困惑度

困惑度也可以用来衡量模型训练的好坏程度,即衡量模型分布和样本分布之间的差异。一般来讲,在模型的训练过程中,模型分布越接近样本分布,模型训练得也就越好。

假设现在有一批数据 x 1 , x 2 , x 3 , . . . , x n x_1,x_2,x_3,...,x_n x1,x2,x3,...,xn,其对应的经验分布为 p r ( x ) p_r(x) pr(x)。现在我们根据这些样本成功训练出了一个模型 p θ ( x ) p_θ(x) pθ(x),那么模型分布 p θ ( x ) p_θ(x) pθ(x) ​​​​的好坏可以由困惑度进行定义: 2 H ( p r , p θ ) = 2 − ∑ i n p r ( x i ) l o g 2 p θ ( x i ) 2^{H(p_r,p_\theta)}=2^{-\sum^n_i p_r(x_i) log_2p_\theta(x_i)} 2H(pr,pθ)=2inpr(xi)log2pθ(xi)其中, H ( p r , p θ ) ​ H(p_r,p_θ)​ H(pr,pθ) 表示样本的经验分布 p ~ r \tilde p_r p~r和模型分布 p θ ​ p_θ​ pθ之间的交叉熵。假设每个样本 x i xi xi 的生成概率是相等的,即 p r ( x i ) = 1 n p_r(x_i)=\frac 1 n pr(xi)=n1,则模型分布的困惑度可简化为: 2 H ( p r , p θ ) = 2 − 1 n ∑ i n l o g 2 p θ ( x i ) 2^{H(p_r,p_\theta)}=2^{-\frac 1 n\sum^n_i log_2p_\theta(x_i)} 2H(pr,pθ)=2n1inlog2pθ(xi)

NLP领域中的困惑度

在NLP领域,语言模型可以用来计算一个句子的概率,假设现在有这样一句话 s = w 1 , w 2 , w 3 , . . . , w n ​​​​​​ s=w_1,w_2,w_3,...,w_n​​​​​​ s=w1,w2,w3,...,wn​​​​​​, 我们可以这样计算这句话的生成概率: p ( x ) = p ( w 1 , w 2 , . . . , w n ) = ∏ i = 1 n p ( w i ∣ w 1 , w 2 , . . . , w i − 1 ) \begin{aligned} p(x)&=p(w_1,w_2,...,w_n)\\ &=\displaystyle \prod^n_{i=1}p(w_i|w_1,w_2,...,w_{i-1})\end{aligned} p(x)=p(w1,w2,...,wn)=i=1np(wiw1,w2,...,wi1)在语言模型训练完成之后,如何去评判语言模型的好坏?这时,困惑度就可以发挥作用了。一般来讲,用于评判语言模型的测试集均是合理的、高质量的语料,只要语言模型在测试集上的困惑度越高,则代表语言模型训练地越好,反之亦然。

在了解了语句概率的计算后,则对于语句 s = w 1 , w 2 , w 3 , . . . , w n ​​​​​​ s=w_1,w_2,w_3,...,w_n​​​​​​ s=w1,w2,w3,...,wn​​​​​​​​,其困惑度可以这样来定义: p e r p l e x i t y = p ( s ) − 1 n = p ( w 1 , w 2 , . . . , w n ) − 1 n = 1 p ( w 1 , w 2 , . . . , w n ) n = ∏ i = 1 n 1 p ( w i ∣ w 1 , w 2 , . . . , w i − 1 ) n \begin{aligned} perplexity&=p(s)^{- \frac 1 n} \\ &=p(w_1,w_2,...,w_n)^{- \frac 1 n} \\ &=\sqrt[n]{\frac {1} {p(w_1,w_2,...,w_n)}} \\ &=\sqrt[n]{\displaystyle \prod^n_{i=1}\frac 1 {p(w_i|w_1,w_2,...,w_{i-1})}} \end{aligned} perplexity=p(s)n1=p(w1,w2,...,wn)n1=np(w1,w2,...,wn)1 =ni=1np(wiw1,w2,...,wi1)1 显然,测试集中句子的概率越大,困惑度也就越小。

你可能感兴趣的:(深度学习(基础),机器学习,人工智能)