机器学习之熵

熵这个词原本是物理学中表示分子混乱程度的物理量,香农(Claude Elwood Shannon)借用过来描述信源的平均不肯定性。信息熵的内容在信息论相关教材中有详细的描述,这里仅对机器学习中用到的部分相关概念作个笔记。算法

1.信息

信息有别于消息,是对事物运动状态或存在方式的不肯定性的描述,而且这种不肯定性是有大小的。机器学习

好比咱们在手机上看到这样两则新闻:函数

科学家经过新技术复活了一只原核细菌。学习

科学家经过新技术复活了一只恐龙。优化

听到这两句话的时候,咱们心里的波动是不同的,对于复活的细菌,咱们可能看一眼就刷过去了;对于复活的恐龙,咱们可能火烧眉毛的细看一下,若是能够的话,咱们也想亲眼见识见识这数千万年前的庞然大物。换言之,这两句话带给咱们的信息量是不一样的,原核生物复活的可能性大,信息量就小;恐龙复活的可能性小,信息量就大。spa

2.自信息量

那么信息量的大小如何度量呢?前面说到信息是对事物不肯定性的描述,不肯定性与事件发生的几率有关,几率越小,不肯定性越大,事件发生后所含的信息量就越大。.net

设事件x的几率为p,则它的自信息量为3d

                                                                   \large I(x)=log\frac{1}{p(x)}=-logp(x)                                                                               \small I(x)表明两种含义:在事件发生之前,表示事件\small x发生的不肯定性的大小;在事件发生之后,表示事件\small x所包含的信息量。code

式中对数的底可任取,blog

  •   底为2时,单位为比特 (bit);
  •   底为e时,单位为奈特 (nat);
  •   底为10时,单位为哈特 (hart).

    通常取2为底,常省略。

注:由于咱们考察的只是一个随机事件自己的信息量,因此称为自信息,若是考察两个事件的相互影响,则为互信息。互信息咱们未使用,暂且不谈。

3.信息熵—平均自信息量

信息熵是对系统平均不肯定性的描述。从几率统计的角度,信息熵就是随机变量X的函数\small log(\frac{1}{p})的指望,也就是全部事件自信息量的加权平均,即

                                                             H(X)=-\sum_{i=1}^{n}p(x_{i})logp(x_{i})                                                                                    其中,nX的全部可能取值个数。

例:随机变量X对应的几率空间为

0.98

0.01

0.01

X的信息熵为

                                   H(X)=-0.98log0.98-0.01log0.01-0.01log0.01=0.161441 (bit)

4.联合熵与条件熵

将联合自信息与条件自信息进行平均,便获得联合熵与条件熵。

假设二维随机变量XY的几率空间为

                                                                       \large \begin{bmatrix} XY\\ P(XY) \end{bmatrix}=\begin{bmatrix} x_{1}y_{1} & ... & x_{i}y_{j} &... &x_{m}y_{n} \\ p_{11} & ... & p_{ij} & ... & p_{mn} \end{bmatrix}

                                                                     

  • 联合熵定义为联合自信息的数学指望,是二维随机变量XY的不肯定性的度量

                                                                      H(XY)=-\sum_{i=1}^{m}\sum_{j=1}^{n}p(x_{i}y_{j})logp(x_{i}y_{j})                                                                     

  • 条件熵 \small H(Y|X) 表示在已知随机变量X的条件下随机变量Y的不肯定性。定义为X给定条件下Y的条件几率分布的熵对X的数学指望

                                                                       H(Y|X)=\sum_{i=1}^{m}p_{i\cdot }H(Y|X=x_{i})                                                                          

其中,\small H(Y|X=x_{i})=-\sum _{j=1}^{n}p(y_{j}|X=x_{i})logp(y_{j}|X=x_{i}),即为给定X=x_{_{i}}的条件下Y的条件几率分布的熵。代入上式展开为

                                                                   H(Y|X)=\sum_{i=1}^{m}p_{i\cdot }(-\sum_{j=1}^{n}p(y_{j}|X=x_{i})logp(y_{j}|X=x_{i}))

                                                                                   =-\sum_{i=1}^{m}\sum_{j=1}^{n}p(x_{i}y_{j})logp(y_{j}|X=x_{i})                                                                                                                                                    

  • 信息熵与联合熵、条件熵的关系:

                                                                    H(XY)=H(X)+H(Y|X)

 

5.交叉熵(Cross Entropy)

形式上,交叉熵是一个随机变量的几率分布\large p对另外一个几率分布\large q定义的自信息-logq的数学指望,表示为

                                                       \large H(p,q)=-\sum_{i=1}^{n}p_{i}logq_{i}                                                                        

若是\large p为某个数据集的真实分布,\large q为非真实的近似分布,交叉熵就表示使用分布\large q来消除分布\large p的不肯定性所需代价的大小。

吉布斯不等式-\sum_{i=1}^{n}p_{i}logp_{i}\leqslant -\sum_{i=1}^{n}p_{i}logq_{i}(当\small p_{i}=q_{i}时等号成立)知,信息熵是消除系统不肯定性所需的最小代价,真实分布与任何其余非真实分布的交叉熵都比其自身的信息熵大。这也就是说,交叉熵可以反映两个分布的差别性大小,交叉熵越小,近似分布q就越接近真实分布p(若是分布q就是分布p了,那么交叉熵就是信息熵,即\small H(p,q)=H(p),此时消除系统不肯定性所需代价达到最小)。因此一些分类算法中常常使用交叉熵做为损失函数。

6.相对熵(K-L散度)

交叉熵间接反映了两个分布的差别性大小,更直接一点,若是用分布q近似分布p,那么它们的差别性究竟有多大呢?咱们能够用二者的相对熵K-L散度,也就是二者熵之差)来定量衡量。

                   用分布\small q近似真实分布\small p,交叉熵为

                                                                  H(p,q)=-\sum_{i=1}^{n}p_{i}logq_{i}                                                                         

                    真实分布\small p自身的信息熵为

                                                                 H(p)=-\sum_{i=1}^{n}p_{i}logp_{i}                                                                         

                    相对熵(K-L散度),即二者熵之差为:

                                                                 D_{KL}(p||q)=H(p,q)-H(p)=\sum_{i=1}^{n}p_{i}log\frac{p_{i}}{q_{i}}                                                                     它恒为正值,直接地衡量了两个分布差别性的大小。 

在分类算法中,咱们须要评估优化标签和预测值之间的差距,使用KL散度正好合适,只不过\small H(p)是固定不变的,因此咱们只须要使用前半部分的交叉熵就能够了。也有人将K-L散度称为两个分布的K-L距离,只是它不是对称的,即D_{KL} (p||q)\neq D_{KL} (q||p).

pdf下载

参考:

  1. 李亦农,李梅 《信息论基础教程》
  2. 李航 《统计学习方法》
  3. 简书   https://www.jianshu.com/p/43318a3dc715?from=timeline
  4. 知乎   https://www.zhihu.com/question/41252833
  5. 维基百科 https://en.wikipedia.org/wiki/Gibbs%27_inequality
相关文章
相关标签/搜索