文章目录

  • 1 信息熵
  • 2 条件熵
  • 3 互信息
  • 4 相对熵(KL散度)
  • 5 交叉熵

  1948年,香农在著名的论文“通信的数学原理”中首次提出了熵(Entropy)的概念,这也解决了信息的度量问题,并量化了信息的作用。

1 信息熵

  一条信息的信息量的多少,在直观上我们认为是和内容的多少有关,科学一点讲就是与不确定性有关,信息的不确定性越强,携带的信息量就越多。如果对于一件事一无所知,则这件事对于我们而言就具有极大的信息量,反之信息就极少。我们考虑以下一个问题:

  • 在2014年的世界杯,32支球队参加了决赛,如果我们没有看世界杯,朋友也不直接告诉我们谁嬴得了冠军,通过猜的方式,我们需要几次才可以得到正确答案?(假设是7号得到冠军)

在最差的情况下,我们需要猜测五次。
1.冠军在1-16号球队? yes
2. 冠军在1-8号球队? yes
3. 冠军在1-4号球队? no
4. 冠军在5-6号球队?no
5. 冠军在7号球队?yes

  所以对于谁是冠军这条信息而言,他的信息量为5,在信息里面,单位是比特(Bit)。如果是64只球队,那我们就需要多猜一次,需要6次得到答案,我们发现了信息的多少取决于log函数。
log232=5,log264=6log_232=5, log_264=6log2​32=5,log2​64=6

  当然这是最差的情况下,我们需要5次才能猜出,在实际生活中,如果我们知道里面有巴西,德国等等强队,我们可能只需要3-4次就可以猜出来。这是因为引入了我们的先验知识,即各个球队夺冠的概率。记为PiP_iPi​。所以香农基于此提出了准确的信息量的度量——信息熵。
H(X)=−∑pilog(pi)H(X)=-\sum p_ilog(p_i)H(X)=−∑pi​log(pi​)
  当所有球队的获胜概率一样时,信息量最大,不确定性越大,即最难猜出来。

2 条件熵

  一直以来,信息和不确定性是联系在一起的,而信息和情报的英文表示都是information,情报是为了消除消息的不确定性,比如战争上的一句话的情报都可以改变战场。

  一个事物X本身具有不确定性,记作U,为了消除这种不确定性,我们从外部引入信息I,当引入的信息I>U的时候,就可以事物的不确定性。当I<U时,就消除一部分的不确定性,得到新的不确定性U′=U−IU'=U-IU′=U−I。

  假设X,Y时两个随机变量,对于信息X,他的信息熵已经固定。随后我们知道了外部信息Y的情况,定义条件熵(conditional entropy)为:Y条件下X的条件概率分布的熵对Y的数学期望:

H(X∣Y)=∑yp(y)H(X∣Y=y)进一步推导:=−∑yp(y)∑xp(x∣y)log(p(x∣y))=−∑y∑xp(x,y)log(p(x∣y))=−∑x,yp(x,y)logP(x∣y)\begin{aligned} H(X|Y)=&\sum_{y}p(y)H(X|Y=y)\\ 进一步推导: =&-\sum_yp(y)\sum_xp(x|y)log(p(x|y))\\ =&-\sum_y\sum_xp(x,y)log(p(x|y))\\ =& -\sum_{x,y} p(x,y)logP(x|y) \\ \end{aligned} H(X∣Y)=进一步推导:===​y∑​p(y)H(X∣Y=y)−y∑​p(y)x∑​p(x∣y)log(p(x∣y))−y∑​x∑​p(x,y)log(p(x∣y))−x,y∑​p(x,y)logP(x∣y)​

另一个角度,H(X∣Y)=H(X,Y)−H(Y)H(X|Y)=H(X,Y)-H(Y)H(X∣Y)=H(X,Y)−H(Y)

H(X,Y)−H(Y)=−∑x,yp(x,y)log⁡p(x,y)+∑yp(y)log⁡p(y)=−∑x,yp(x,y)log⁡p(x,y)+∑y(∑xp(x,y))log⁡p(y)=−∑x,yp(x,y)log⁡p(x,y)+∑x,yp(x,y)log⁡p(y)=−∑x,yp(x,y)log⁡p(x,y)p(y)=−∑x,yp(x,y)log⁡p(x∣y)\begin{aligned} &H(X, Y)-H(Y) \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{y} p(y) \log p(y) \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{y}\left(\sum_{x} p(x, y)\right) \log p(y) \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x, y} p(x, y) \log p(y) \\ &=-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(y)} \\ &=-\sum_{x, y} p(x, y) \log p(x \mid y) \end{aligned} ​H(X,Y)−H(Y)=−x,y∑​p(x,y)logp(x,y)+y∑​p(y)logp(y)=−x,y∑​p(x,y)logp(x,y)+y∑​(x∑​p(x,y))logp(y)=−x,y∑​p(x,y)logp(x,y)+x,y∑​p(x,y)logp(y)=−x,y∑​p(x,y)logp(y)p(x,y)​=−x,y∑​p(x,y)logp(x∣y)​

  可以证明得到H(X)>=H(X|Y),也就是说,引入了信息Y之后,X的信息熵变小了,即X的不确定性变小了。如果当X和Y完全没有任何关系的时候,等号依旧成立,说明引入外部信息Y没有丝毫意义。

总结:信息的作用在于消除不确定性,NLP问题就是寻找相关的信息。

3 互信息

  在条件熵中我们发现了相关的信息可以消除不确定性,所以需要一个度量“相关性”的变量。也就是下文的互信息。定义:
I(X;Y)=∑x,yP(x,y)logP(x,y)P(x)P(y)I(X;Y)=\sum_{x,y} P(x,y)log \frac {P(x,y)}{P(x)P(y)}I(X;Y)=x,y∑​P(x,y)logP(x)P(y)P(x,y)​
即是: I(X;Y)=H(X)−H(X∣Y)I(X;Y)=H(X)-H(X|Y) I(X;Y)=H(X)−H(X∣Y)
当x和y完全不相关时,I(X;Y)=0I(X;Y)=0I(X;Y)=0

  互信息用来度量两个事件的相关性后,用在了NLP机器翻译问题中,在机器翻译中,最难解决的问题之一就是词的歧义性,比如Bush既是“布什总统”的名字,也是“灌木丛”,产生了歧义,在机器翻译中,可以通过互信息,如果Bush和白宫,总统,美国等词出现了较高的互信息,就翻译为布什;如果和草地,地面,植物等词有较高的互信息,就翻译为灌木丛。这是20世纪90年代宾夕法尼亚大学的雅让斯基博士生提出的解决方法,也让他三年就拿到了博士学位。

4 相对熵(KL散度)

  相对熵也用来衡量相关性,和互信息不同的是,它用来衡量取值为正数的相似性。
KL(f(x)∣∣g(x))=∑xf(x)⋅logf(x)g(x)KL(f(x)||g(x))=\sum_x f(x)\cdot log\frac{f(x)}{g(x)}KL(f(x)∣∣g(x))=x∑​f(x)⋅logg(x)f(x)​

  我们不必关注公式的本身,只需要记住下面三条结论即可:

  1. 对于完全相同的函数,相对熵为0
  2. 相对熵越大,两个函数之间的差异越大,反之成立。
  3. 对于概率分布或者概率密度函数,取值均>0时,相对熵可以度量两个随机分布的差异性

  此外,相对熵并不是对称的:KL(f(x)∣∣g(x))≠KL(g(x)∣∣f(x))KL(f(x)||g(x))\neq KL(g(x)||f(x))KL(f(x)∣∣g(x))​=KL(g(x)∣∣f(x))

  为了对称,詹森和香农提出了新的计算公式:
JS(f(x)∣∣g(x))=12[KL(f(x)∣∣g(x))+KL(g(x)∣∣f(x))]JS(f(x)||g(x))=\frac 12[KL(f(x)||g(x))+KL(g(x)||f(x))]JS(f(x)∣∣g(x))=21​[KL(f(x)∣∣g(x))+KL(g(x)∣∣f(x))]

5 交叉熵

对相对熵的公式进行变形:

进一步得到交叉熵的公式:
H(p,q)=−∑plog(q)H(p,q)=-\sum plog(q)H(p,q)=−∑plog(q)

可以衡量两个概率分布p.q之间的相似程度,交叉熵越小,两个概率分布就越接近,所以可以当作分类问题的损失函数。

通俗易懂——信息熵,条件熵,互信息和相对熵相关推荐

  1. 联合熵、条件熵、互信息、相对熵、交叉熵的详解

    本篇博客,我们将介绍联合熵.条件熵.互信息.相对熵.交叉熵,如果对熵的概念还有不清楚的朋友,可以看一下这一篇博客,信息熵是什么呢? https://blog.csdn.net/ding_program ...

  2. 举例说明信息熵、互信息的计算过程

    举例说明信息熵.互信息的计算过程_tangxianyu的博客-CSDN博客_互信息计算

  3. 决策树 信息熵 条件熵 基尼系数 信息增益 信息增益率 CART 随机森林

    决策树: 决策树是一种树形结构,树内部每个节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一个分类类别.通过训练数据构建决策树,可以对未知数据进行分类, 上面的决策树深度depth ...

  4. 【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度

    1 信息熵 熵 (Entropy),信息熵:常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据. 1.1 信息熵的性质 单调性,发生概率越高的事件,其 ...

  5. 熵、信息熵、互信息、条件熵区别

    1.熵 在初中化学中学过,熵越大表示其混乱程度越大,熵越小表示混乱程度越小.因此在决策树中分类节点中用到了信息熵的概念. 2.信息熵 假设有个离散变量x,有一个概率分布p(x),信息熵H(x) 3.条 ...

  6. 自信息、信息熵、互信息

    一.自信息 在信息论中,是指与概率空间中的单一事件或者离散随机变量的值相关的信息量的量度.简而言之,就是一个事件发生时传达出的信息量. 当信息被拥有它的实体传递给接收它的实体时,仅当接收实体不知道信息 ...

  7. 学习NLP的第20天——基于信息熵和互信息的新词提取实现

    在对一个新鲜领域的文本进行分词之前,我们往往需要先对文本中包含的新词进行提取,并将新词制作为用户词典,提供给分词器,以提高分词器的准确率. 因为一个在新鲜领域中往往会包含很多我们意想不到的词语,比如神 ...

  8. 用c语言求信息熵条件熵,信息熵应用随笔1:利用条件熵筛选数据维度

    一,背景和任务目标 假设有一个n维数据集,包含k个样本,可以视为n*k矩阵.每个数据维度我们可以视为一个随机变量,此n维数据集则可以视为由n个随机变量构成的系统.我们的目标是从集合数据集中选取一个最具 ...

  9. 西瓜书笔记4: 决策树

    目录 4.1基本流程 决策树学习基本算法 4.2划分选择 4.2.1 信息增益 信息熵 信息增益 西瓜例子 4.2.2 增益率 4.2.3 基尼指数 4.3 剪枝处理 4.3.1 预剪枝 4.3.2 ...

最新文章

  1. 大数据揭秘:北京每天这些道路“最红”
  2. 剑指offer 算法 (时间空间效率的平衡)
  3. C语言之计算大数阶乘,如计算100!和1000!等~~~
  4. linux主机拷贝文件到另一台主机
  5. 代码质量的几点新思考
  6. Haproxy基于ACL做访问控制
  7. 使用Adobe Acrobat提取PDF签章图片
  8. 关于webstorm 弹出Clear Read-Only status
  9. 14_python_练习题——excel操作
  10. CodeBlocks下载、安装与编写C语言
  11. 如何将多个TXT合并成一个TXT,文件名称提取
  12. ps添加图层蒙版的两种方法
  13. Word打开目录导航、多页视图显示文章的方法
  14. Agent with Warm Start and Active Termination for Plane Localization in 3DUltrasound基于强化学习的超声标准切面
  15. 这篇文章让你实现时光机特效的操作
  16. 刺猬乐队在唯品会工作过_Microsoft乐队是您从未听说过的出色智能手表和健身追踪器...
  17. SpringBoot整合Graylog做日志收集
  18. 【解决方案】Android开发填坑之RecyclerView刷新闪烁
  19. 学python多大年龄可以学车_多大年龄才可以考驾照
  20. 从 CV 到 NLP,深度学习领域的数据增强有哪些?

热门文章

  1. error: (-5) in the case of classification problem the responses must be cate
  2. 输入框回车搜索,onkeydown事件栈堆刷新问题(即使验证错误也会提交)
  3. linux 图标显示 异常,在Ubuntu 18.04系统中VSCode图标显示异常的解决方法
  4. Windows系统隐私优化WPD
  5. 【20G】Kaggle数据集强势分析“绝地求生”,攻略吃鸡!
  6. 互联网大佬们忍不住了,终于向“小猪佩奇”下手了!
  7. 为何你上了那么多软装培训班还是做不了整体软装设计?
  8. Chrome DevTools 实现原理与性能分析实战
  9. 【HTML基础-3】iframe框架详解及应用案例—实现页面嵌套
  10. 每天凌晨 2:10 备份 数据库shell脚本