自然语言处理 —— 困惑度

我们通常用困惑度(perplexity)来评估语言模型的好坏。可以探索一下交叉熵损失函数的定义。困惑度是对交叉熵损失函数做指数运算后得到的值。特别地:

  • 最佳情况下,模型总是把标签类别的概率预测为1,此时困惑度为1;
  • 最坏情况下,模型总是把标签类别的概率预测为0,此时困惑度为正无穷;
  • 基线情况下,模型总是把预测所有类别的概率都相同,此时困惑度为类别个数。

显然,任何一个有效模型的困惑度必须小于类别个数。

假定交叉熵损失函数为: H ( y ( i ) , y ^ ( i ) ) = j = 1 q y j ( i ) l o g y ^ j ( i ) H(y^{(i)},\hat{y}^{(i)})=-\sum_{j=1}^qy_j^{(i)}log\hat{y}_j^{(i)} 困惑度计算公式为 p e r = e H ( y ( i ) , y ^ ( i ) ) per = e^{H(y^{(i)},\hat{y}^{(i)})} 在最佳情况下, H ( y ( i ) , y ^ ( i ) ) = 0 H(y^{(i)},\hat{y}^{(i)})=0 ,可以知道 e 0 = 1 e^0=1 ;
在最坏情况下, H ( y ( i ) , y ^ ( i ) ) = H(y^{(i)},\hat{y}^{(i)})=无穷大 ,因此困惑度为无穷大;
在基线情况下, H ( y ( i ) , y ^ ( i ) ) = 1 n H(y^{(i)},\hat{y}^{(i)})=-\frac{1}{n} ,因此困惑度为n,也就是类别个数。

发布了256 篇原创文章 · 获赞 10 · 访问量 8264

猜你喜欢

转载自blog.csdn.net/qq_37388085/article/details/104382988