在自然语言处理中,困惑度是用来衡量语言模型优劣的一个方法。它的值是对交叉熵损失函数做指数运算后得到的结果。

交叉熵损失函数

单个训练样本的损失:

loss=−1n∑i=1nyilogyi^=−logyj^loss=-\frac{1}{n}\sum_{i=1}^{n}y_{i}log\hat{y_{i}}=-log\hat{y_{j}}loss=−n1​∑i=1n​yi​logyi​^​=−logyj​^​

nnn是标签数量,在语言模型中指的是字符总数。yi^\hat{y_{i}}yi​^​是预测概率,yiy_{i}yi​是预测正确概率。假如标签数为3,每个样本只有一个标签,正确预测结果为类别1,则y1=1y_{1}=1y1​=1,y2=0y_{2}=0y2​=0,y3=0y_{3}=0y3​=0,代入公式得到 loss=−logy1^loss=-log\hat{y_{1}}loss=−logy1​^​。可以看到交叉熵损失函数只关心预测正确的概率。

困惑度

perplexity=eloss=1yi^perplexity=e^{loss}=\frac{1}{\hat{y_{i}}}perplexity=eloss=yi​^​1​

  • 最佳情况下,模型总是把标签类别的概率预测为1,此时困惑度为1;
  • 最坏情况下,模型总是把标签类别的概率预测为0,此时困惑度为正无穷;
  • 基线情况下,模型总是预测所有类别的概率都相同。yi^=1n\hat{y_{i}}=\frac{1}{n}yi​^​=n1​,perplexity=nperplexity=nperplexity=n。此时困惑度为类别个数。

显然,任何一个有效模型的困惑度必须小于类别个数。在语言模型中,困惑度必须小于词典大小vocab_size

困惑度 perplexity相关推荐

  1. 困惑度 (perplexity)

    困惑度 (perplexity) 在自然语言处理中,对于一个语言模型,一般用困惑度来衡量它的好坏,困惑度越低,说明语言模型面对一句话感到困惑的程度越低,语言模型就越好. 对于LDA模型,最常用的两个评 ...

  2. perplexity 衡量指标_困惑度(perplexity)的基本概念及多种模型下的计算(N-gram, 主题模型, 神经网络)...

    让人困惑的困惑度 发现网络上流传的关于困惑度(perplexity)大多数都是利用了N-gram或者主题模型的例子来阐述的.但是现在这个年代来学习这个指标的人多半都是想研究神经网络的,而两者对困惑度 ...

  3. perplexity 衡量指标_通俗解释困惑度 (Perplexity)-评价语言模型的好坏

    一.语言模型 本文尽量通俗解释一下困惑度的概念.既然题目中写了是用来评价语言模型的好坏,那么首先来看一下语言模型:忆臻:深入浅出讲解语言模型​zhuanlan.zhihu.com 简单地说,语言模型就 ...

  4. 【LM】(八)语言模型评价指标——困惑度Perplexity原理及代码

    0.语言模型 语言模型(Language Model,LM),基于统计的语言模型,给出一句话的前k个词,预测第k+1个词,即求第k+1个词出现的概率p(xk+1|x1,x2,...,xk).在深度网络 ...

  5. LDA困惑度perplexity的一些个人理解

    纠结这个问题很久了,期间主要去了gensim的google论坛,以及在StackOverflow.StackexChange用关键词topic number perplexity搜了下,得到这些很模糊 ...

  6. 循环神经网络中困惑度(perplexity)

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

  7. 困惑度perplexity

    看了网上许多对困惑度的解释看的我相当困惑,各种公式什么的也看不明白,总结其中最简单直观的解释是:困惑度反应的是你的模型对预测下一个字符时有多少可选项,困惑度越低说明你的模型对下一个字符预测的把握越大, ...

  8. 从交叉熵角度理解困惑度(perplexity)

    从交叉熵理解困惑度 我们通常使用困惑度(perplexity)来评价语言模型的好坏.通过理解困惑度,也可以让我们更加深入的理解交叉熵(CrossEntropy)的意义,也可以轻易量化模型的性能. 回顾 ...

  9. LDA计算 perplexity(困惑度)确定主题个数(代码)

    为了计算LDA 的困惑度,费劲千辛万苦,终于有所收获,以此记录. 本篇文章主要介绍perplexity的计算方式,并未涉及过多的困惑度原理,想了解更多原理部分,请移步perplexity介绍 本文主要 ...

最新文章

  1. Android 活动与活动间数据传递--登录注册页面
  2. Nginx 源码编译安装
  3. [Android编程心得]Debug的一些技巧
  4. 戴尔背书飞贷:创新IT技术直击金融机构互联网转型需求
  5. CSS中的Position属性
  6. centos7静默搭建oracle11g,Linux静默安装Oracle方法(centos7+oracle11g)
  7. android 提供的方法,Android编程之创建自己的内容提供器实现方法
  8. oracle 表空间 碎片,Oracle表空间碎片整理
  9. u盘安装CENTOS后,启动missing operating system ,只能用U盘才能启动系统
  10. 收拾老家发现的老版纸币,现在还能用吗?
  11. ABAP 练习用航班数据
  12. DelphiXE开发坑
  13. C语言实现一个关机程序
  14. 4. 木马病毒和免杀技术,另一种免杀思路
  15. OpenCV静态编译配置基于小熊猫C++
  16. FPGA的工作原理简述
  17. 参考文献中期刊/会议如何缩写
  18. 保险行业如何运营大数据分析技术
  19. java ffmpeg视频截图_Java实现对视频进行截图的方法【附ffmpeg下载】
  20. RK3399平台开发系列讲解(内核入门篇)1.46、RTC驱动开发

热门文章

  1. android fastboot命令大全,ADBFastboot常用命令
  2. 推荐系统与深度学习(一)开端
  3. MD5算法的实现原理
  4. 企业常用的Nginx网站服务相关配置——极其详细
  5. SAN交换机与以太网交换机的区别
  6. 阿里云同地域不同账号ECS内网互通
  7. 日常-工作上的那点事儿
  8. Final swfplayer在安卓12如何播放SWF格式的Flash文件
  9. 39个国外SCI抢发6万篇中国英文论文?然而,真正的问题是……
  10. 【ASP.net】--WebSite(网站) 和 WebApplication(Web应用程序)