信息熵、交叉熵公式的理解

一 信息熵的意义:

代表信息量(不确定度)的大小。变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

二 信息熵的公式定义:

H ( X ) = E [ l o g 2 P ( X ) 1 ] = i P ( x i ) l o g 2 P ( x i ) 1

三 信息熵的公式理解:

1 为什么熵(信息量/不确定度)要定义成关于随机变量的函数?

  • 以最简单的单符号信源为例,对于符号的一个bit,仅取0或1两个元素,假设该符号为1的概率为P,为0的概率为1-P。
    • 当P等于0或者等于1时,说明它带给我们的信息量(不确定度)就为零,因为我们百分百知道这个符号是怎么样的,此时熵等于0;
    • 当P不为0或1时,这个符号是不确定的。
  • 从这个例子看出,信息的量度应该依赖于随机变量出现的概率分布,所以说熵的定义应该是概率P(X)的函数。

2 为什么熵(信息量/不确定度)要定义成对数形式?

  • 假设两个随机变量和是相互独立的,那么分别观测两个变量得到的信息量应该和同时观测两个变量的信息量是相同的,即:H(X,Y)=H(X)+H(Y)。而从概率上来讲,两个独立随机变量就意味着P(X,Y)=P(X)P(Y),这种乘法到加法的变换,复合对数的运算。所以此处可以得出结论熵的定义H应该是概率P再取log函数

3 为什么熵(信息量/不确定度)的定义有负号?

  • 为了保证熵(即信息量)是正数或者为零,故添加负号

4 为什么熵(信息量/不确定度)定义中对数的底数怎么取?

  • log函数基的选择是任意的(信息论中基常常选择为2,因为计算机中每个bit为0 / 1。而机器学习中基常常选择为自然常数,因此单位常常被称为nats)

5 为什么要取均值?

  • 随机变量有多个状态值,P(xi)只代表随机变量X取xi的概率,我们用熵来评价整个随机变量平均的信息量,而平均最好的量度就是随机变量的期望

四 相对熵和交叉熵

相对熵(relative entropy)就是KL散度(Kullback–Leibler divergence),用于衡量两个概率分布之间的差异
对于两个概率分布 p ( x ) q ( x ) ,其相对熵的计算公式为交叉熵减去信息熵

K L ( p | | q ) = i p ( x i ) l n q ( x i ) i p ( x i ) l n p ( x i )

= i p ( x i ) l n q ( x i ) p ( x i )

注意:由于 p ( x ) q ( x ) 在公式中的地位不是相等的,所以相对熵的特点 K L ( p | | q ) K L ( q | | p ) ,是只有 p ( x ) = q ( x ) 时,其值为0。若 p ( x ) q ( x ) 略有差异,其值就会大于0。其证明利用了负对数函数 l n ( x ) 是严格凸函数(strictly convex function)的性质。相对熵公式的前半部分 就是交叉熵(cross entropy)。若 p ( x ) 是数据的真实概率分布, q ( x ) 是由数据计算得到的概率分布。机器学习的目的就是希望 q ( x ) 尽可能地逼近甚至等于 p ( x ) ,从而使得相对熵接近最小值0. 由于真实的概率分布是固定的,相对熵公式的后半部分 i p ( x i ) l n p ( x i ) 信息熵就成了一个常数。那么相对熵达到最小值的时候,也意味着交叉熵达到了最小值。对 p ( x ) 的优化就等效于求交叉熵的最小值。另外,对交叉熵求最小值,也等效于求最大似然估计(maximum likelihood estimation)。具体可以参考Deep Learning 5.5 Maximum Likelihood Estimation.
这部分转自:https://www.zhihu.com/question/41252833

五 相对熵和交叉熵的应用

  • 1 在机器学习中交叉熵作为损失函数
  • 2 tf-tdf可以理解为相对熵的应用:词频在整个语料库的分布与词频在具体文档中分布之间的差异性。

猜你喜欢

转载自blog.csdn.net/promisejia/article/details/80310780