困惑度
我们通常用困惑度(perplexity)来评估语言模型的好坏。可以探索一下交叉熵损失函数的定义。困惑度是对交叉熵损失函数做指数运算后得到的值。特别地:
- 最佳情况下,模型总是把标签类别的概率预测为1,此时困惑度为1;
- 最坏情况下,模型总是把标签类别的概率预测为0,此时困惑度为正无穷;
- 基线情况下,模型总是把预测所有类别的概率都相同,此时困惑度为类别个数。
显然,任何一个有效模型的困惑度必须小于类别个数。
假定交叉熵损失函数为:
[Hleft(y^{(i)}, hat{y}^{(i)}
ight)=-sum_{j=1}^{q} y_{j}^{(i)} log hat{y}_{j}^{(i)}
]
困惑度计算公式为
[per=e^{Hleft(y^{(i)}, hat{y}^{(i)}
ight)}
]
- 在最佳情况下,(Hleft(y^{(i)}, hat{y}^{(i)} ight)=0),可以知道(e^0=1);
- 在最坏情况下,,因(Hleft(y^{(i)}, hat{y}^{(i)} ight)=无穷大),此困惑度为无穷大;
在基线情况下
,(Hleft(y^{(i)}, hat{y}^{(i)} ight) = -n*frac{1}{n}logfrac{1}{n}=logn),因此困惑度为n,也就是类别个数。