【机器学习】熵(信息熵,联合熵,交叉熵,互信息)

机器学习中的各种熵,什么是熵?什么是交叉熵?什么是联合熵?什么是条件熵?什么是相对熵?它们的联系与区别是什么?

前言:你必须知道的信息论

1948年,数学家和电气工程师克劳德香农(Claude Elwood Shannon)在其开创性论文《通信的数学理论》中提出了“信息论”,这一概念。

  对深度学习和人工智能的发展具有非凡的意义。那么,对于信息论大家又了解多少呢?
  在本文中,Abhishek Parbhakar对在深度学习和数据科学中广泛流行和通用、且必须知道的信息论概念进行了介绍,希望能够为大家了解这些概念有所助益。

  信息论(Information Theory)是对深度学习和AI做出重大贡献的重要领域,但对许多人而言,信息论是很陌生的。
  我们可以将信息论看作深度学习的基础构建块(basic building block)的复杂融合,这些基础构建块包括微积分、概率论和统计学。AI中的一些概念源自信息论或其相关领域,
  例如:流行的交叉熵损失函数,在最大信息增益基础上构建决策树
    广泛应用于自然语言处理(Natural Language Processing, NLP)和语音的维特比算法(Viterbi algorithm)
    在机器翻译循环神经网络(Recurrent Neural Network, RNN)和各种其他类型的模型中被广泛使用的编码器-解码器概念

信息论史简介
  信息时代之父:克劳德香农
  在20世纪早期,科学家和工程师正在努力解决这样一个问题:“如何量化信息?是否有一种分析方法或数学方法可以告诉我们关于信息内容的信息?
  ”例如,考虑以下两句话:Bruno是一条狗。Bruno是一条棕色的大狗。
  不难看出,第二句话提供了更多的信息,因为它还告诉我们,Bruno除了是一条“狗”之外还是 “棕色”和“大”的。我们如何量化两句话的区别?
我们能否用一种数学方法来告诉我们第二句话比第一个句子多出多少信息?

科学家正在努力解决这些问题。数据的语义、领域和形式只会增加问题的复杂性。
然后,数学家和工程师克劳德香农(Claude Shannon)提出了“熵”的概念,这个概念改变了世界,并标志着 数字信息时代(Digital Information Age)的开始

香农提出,“数据的语义方面是无关紧要的”,而数据的性质和意义在信息内容方面并不重要。
相反,他用概率分布(probability distribution)和“不确定性(uncertainty)”来量化信息。
香农还引入了“比特 bit”一词,他谦逊地将其归功于他的同事John Tukey。这个革命性的概念不仅奠定了信息论的基础,而且为人工智能领域的进步开辟了新的道路。

熵 Entropy 也叫信息熵(Information Entropy)或香农熵(Shannon Entropy),是度量 信息的随机度和不确定度。实验中的不确定性使用熵来测量
因此,如果实验中存在固有的不确定性越多,那么它的熵就会越高。或者可预测的实验越少,熵就会越多。用实验的概率分布来计算熵。

公式中log的底b=2  ,其中,I(Xi) = log2(1/p(Xi))

H(X) = ∑(i=1,n)P(Xi)*I(Xi) = ∑(i=1,n)P(Xi)*log2(1/p(Xi)) = -∑(i=1,n)P(Xi)*log2(P(Xi))

应用:熵用于自动决策树的构建。在构建树的每一步中,特征选择都是使用熵标准来完成的。
基于最大熵原理(Principle of Maximum Entropy)的模型选择,从竞争模型中选择具有最高熵的模型是最好的。

交叉熵(Cross-Entropy)用来比较两个概率分布的。它会告诉我们两个分布的相似程度。
  在同一组结果上定义的两个概率分布p和q之间的交叉熵:公式:H(p,q) = -∑(x)p(x)log(q(x))
应用:基于卷积神经网络的分类器通常使用softmax层作为使用交叉熵损失函数进行训练的最终层。
交叉熵损失函数广泛用于逻辑回归(logistic regression)等分类模型。交叉熵损失函数会随着预测结果与真实输出之间的偏离而增加。
在像卷积神经网络这样的深度学习体系结构中,最终的输出“softmax”层经常使用交叉熵损失函数。

KL散度(Kullback Leibler Divergence) 也称为相对熵。
  KL散度是寻找两个概率分布之间相似性的另一种方法。它衡量了一个分配与另一个分配之间的差异程度。
  假设,有一些数据,真实的分布是“P”。但不知道这个“P”,所以选择一个新的分布“Q”来对这个数据进行近似。
  由于“Q”只是一个近似值,它不能对数据的近似做到像“P”那样好,并且会发生一些信息丢失。而这种信息损失是由KL散度给出的。
  “P”和“Q”之间的KL散度会告诉我们,当尝试用“Q”近似“P”给出的数据的过程,失去了多少信息。
  来自另一概率分布P的概率分布Q的KL散度定义为:D(kl)(p||q) = ∑i*p(i)*log(p(i)/q(i))
应用:KL散度通常用于无监督机器学习技术变分自编码器。

 

1 从随机变量说起

假设有一枚硬币,将其抛出,落下后朝上的面为y。

其中,y是对未知量的一个表示。但它的值却是不确定的,可能取正面和反面两个值。

这类包含不确定性的变量称为随机变量。统计学就是研究这类不确定性变量的工具。

刻画随机变量最有力的一个工具就是它的概率分布。有了概率分布,可以说对一个随机变量有了完全的掌握,因为可以知道它可能取哪些值,某个值的概率是多少。

 

2.什么是熵

Ⅰ.信息量

首先考虑一个离散的随机变量x,当我们观察到这个变量的一个具体值的时候,我们接收到多少信息呢? 
我们暂时把信息看做在学习x的值时候的”惊讶程度”(这样非常便于理解且有意义).当我们知道一件必然会发生的事情发生了,比如往下掉的苹果.我们并不惊讶,因为反正这件事情会发生,因此可以认为我们没有接收到信息.但是要是一件平时觉得不可能发生的事情发生了,那么我们接收到的信息要大得多.因此,我们对于信息内容的度量就将依赖于概率分布p(x). 
因此,我们想要寻找一个函数h(x)来表示信息的多少且是关于概率分布的单调函数.我们定义: 
这里写图片描述 
我们把这个公式叫做信息量的公式,前面的负号确保了信息一定是正数或者是0.(低概率事件带来高的信息量). 
函数如下图所示 
这里写图片描述

补充:上面是以2为对数的底,实际上,这个底是能够是其他的数字的.常用的是2和e这两个底.底是2的时候,单位为bit..底是e的时候,单位为nat.

有时候有人也叫做自信息(self-information),一个意思啦。可以推广一下下。 
联合自信息量: 
这里写图片描述

条件自信息量: 
这里写图片描述 
通俗一点来说的话,就是概率论中很简单的推广就行了。有概率基础的话,这个很容易理解。这里因为实际上面使用二维的更多一点就以二维为例子,推广到多维的话也是可以的。

Ⅱ.熵

熵(entropy):上面的(x)是指在某个概率分布之下,某个概率值对应的信息量的公式.那么我们要知道这整个概率分布对应的信息量的平均值.这个平均值就叫做随机变量x的熵 
如下面公式: 
这里写图片描述 
这个公式的意思就是,随机变量x是服从p这个分布的,也就是在在p分布下面的平均自信息。也就得到了信息熵。信息熵的本质可以看做是某个分布的自信息的期望。

注意: 
1.熵只依赖于X的分布,与X的取值无关,因此服从某个分布的X的熵也可以等价于这个分布的熵
2.定义0log0=0(因为可能出现某个取值概率为0的情况) 
3.熵越大,随机变量的不确定性就越大(因为之前说了,越是不确定,信息量就越大,要是平均信息量很大,那么也可以代表这个变量的不确定性越大)

这里举个例子感受一下:设X服从0-1分布,即 
这里写图片描述 
则熵为 
这里写图片描述 
上面的计算是对于一个离散型的随机变量(分布)来做的,无非就是把所有的概率都得到,分别求出自信息然后相加就行了。很简单,别想得太多。 
代码: 
这里写图片描述 
结果: 
这里写图片描述 
从图中可以知道:

1.当p=0或者p=1的时候,随机变量可以认为是没有不确定性. 
2.当p=0.5的时候,H(p)=1,随机变量的不确定性最大.

那么“仿照”之前的信息量的公式,可以推广一下下啦。 
假设一个概率分布有两个随机变量决定。其中x有n种取值,y有m种取值。那么可以得到一个nxm的联合概率分布的表。那么有: 
复合熵(联合熵): 
这里写图片描述 
同样,复合熵的公式还可以推广到连续变量和多个变量的情况。这里就不写了。

条件熵: 
这里写图片描述
上面这个公式可能有点难以理解,不知道这个公式是怎么来的。举一个例子来说明一下: 
如果以x表示学生体重,以y表示身高,以 p(x∣y)表示身高为某个特定的y时的体重为x的概率,把熵公式用到这个特殊情况得到是熵显然应当是 
这里写图片描述 
上面得到的计算公式是针对y为一个特殊值y时求得的熵。考虑到y会出现各种可能值,如果问已知学生身高时(不特指某一身高,而是泛指身高已经知道)的体重的熵(不确定程度),它应当是把前面的公式依各种y的出现概率做加权平均,那么就可以得到上面的条件熵的公式。

Ⅲ.变形总结

进过上面的之后,应该对于信息量和信息熵的几个公式有了了解。然后那几个公式还可以变形为一些常用的公式。这里总结一下 
首先要先介绍一下条件分布的乘法定理,可能有人已经忘记了: 
这里写图片描述 
大家都学过,所以就不啰嗦了。 
然后把之前条件熵式子使用上面这个公式改写一下,可以写为: 
这里写图片描述 
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到的时候,所对应的熵与条件熵分别称为经验熵(empirical entropy)经验条件熵(empirical conditional entropy)

上面的式子表明,只要你能够得到联合分布和y的分布就能够求出条件熵了。事实上,还能够更加简化成为常见的形式: 
这里利用上面的公式(以离散型为例子)直接推导,有 
这里写图片描述 
这个公式是不是简洁很多很多。只要知道联合信息熵和其中一个分量的信息熵,就能够求出条件信息熵来。 
证明: 
这里写图片描述
同样,如果求x已知时y的条件熵,显然也会得到类似的公式: 
这里写图片描述 
那么两个公式何并,就能够得到: 
这里写图片描述 
这个公式把复合熵、条件熵以及熵联系到一起了。它们也显示了熵的对称性。

二.相对熵

相对熵又称互熵交叉熵鉴别信息Kullback熵,Kullback-Leible散度(即KL散度)等。 
设p(x)和q(x)是取值的两个概率概率分布,则p对q的相对熵为: 
这里写图片描述

在一定程度上面,相对熵可以度量两个随机变量的距离。也常常用相对熵来度量两个随机变量的距离。当两个随机分布相同的时候,他们的相对熵为0,当两个随机分布的差别增大的时候,他们之间的相对熵也会增大。 
但是事实上面,他并不是一个真正的距离。因为相对熵是不具有对称性的,即一般来说 
这里写图片描述
相对熵还有一个性质,就是不为负。 
这里写图片描述

三.互信息

互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不确定性。 
两个随机变量X,Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。 
这里写图片描述

那么互信息有什么更加深层次的含义呢?首先计算一个式子先: 
这里写图片描述

从这个公式可以知道,X的熵减去X和Y的互信息之后,可以得到在Y给定的情况下X的熵。

四.总结

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值