机器学习中的各种熵什么是熵什么是交叉熵什么是联合熵什么是条件熵什么是相对熵它们的联系与区别是什么
前言你必须知道的信息论
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的底b2 其中I(Xi) log2(1/p(Xi))
H(X) ∑(i1,n)P(Xi)*I(Xi) ∑(i1,n)P(Xi)*log2(1/p(Xi)) -∑(i1,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.定义0log00(因为可能出现某个取值概率为0的情况) 3.熵越大,随机变量的不确定性就越大(因为之前说了越是不确定信息量就越大要是平均信息量很大那么也可以代表这个变量的不确定性越大)
这里举个例子感受一下:设X服从0-1分布,即 则熵为 上面的计算是对于一个离散型的随机变量分布来做的无非就是把所有的概率都得到分别求出自信息然后相加就行了。很简单别想得太多。 代码 结果 从图中可以知道
1.当p0或者p1的时候,随机变量可以认为是没有不确定性. 2.当p0.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的熵。