Python机器学习 -- 信息量与熵

一、信息量

       信息奠基人香农(Shannon)认为“信息是用来消除随机不确定性的东西”。也就是说衡量信息量大小就看这个信息消除不确定性的程度。

       “太阳从东方升起了”这条信息没有减少不确定性。因为太阳肯定从东面升起。这是句废话,信息量为0。

       原则:

                1、某事件发生的概率小,则该事件的信息量大;

                2、如果两个事件X和Y独立,即\large p\left ( xy \right )=p\left ( x \right )p\left ( y \right ),假定X和Y的信息量分别为\large h\left ( X \right )\large h\left ( Y \right ),则二者同时发生的信息量应该为:

                                                                                   \large h\left ( XY \right )=h\left ( X \right )+h\left ( Y \right )

       定义随机变量X的概率分布为\large p\left ( x \right ),从而定义X的信息量为:

                                                                                        \large h\left ( x \right )=-\log_{2}p\left ( x \right )

二、熵

       信息量度量的是一个具体事件发生所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。

       对于随机事件的信息量的期望,得到熵的定义:

                                                                                 \large H\left ( X \right )=-\sum_{x\in X}p\left ( x \right )\ln p\left ( x \right )

       注:典型熵的定义的底数为2,但本文为分析方便使用底数e。

       两点分布的熵:

                                       \large H\left ( X \right )=-\sum_{x\in X}p\left ( x \right )\ln p\left ( x \right )=-p\ln p-\left ( 1-p \right )\ln \left ( 1-p \right )

       三点分布的熵:

             \large H\left ( X \right )=-\sum_{x\in X}p\left ( x \right )\ln p\left ( x \right )=-p_{1}\ln p_{1}-p_{2}\ln p_{2}-\left ( 1-p_{1}-p_{2} \right )\ln \left ( 1-p_{1}-p_{2} \right )

       公式推导:

       因为可以知道

                                                                N\rightarrow \infty \Rightarrow \ln N!\rightarrow N \left ( \ln N-1 \right )

       所以,代入上式得:

       信息熵公式的特性

       单调性,即发生概率越高的事件,其所携带的信息熵越低。极端案例就是“太阳从东方升起”,因为为确定事件,所以不携带任何信息量。从信息论的角度,认为这句话没有消除任何不确定性。非负性,即信息熵不能为负。这个很好理解,因为负的信息,即你得知了某个信息后,却增加了不确定性是不合逻辑的。累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和。

       信息熵是用来衡量事物不确定性的。信息熵越大,事物越具不确定性,事物越复杂。

三、均匀分布信息熵

       以离散分布为例:假定某离散分布可取N个值,概率都是1/N,计算该概率分布的熵:

       概率分布律:

                                                    \large p_{i}=\frac{1}{N},i=1,2,...,N

       计算熵:

                                            H\left ( X \right )=-\sum_{i=1}^{N}p\left ( i \right )\ln p\left ( i \right )=-\sum_{i=1}^{N}\frac{1}{N}\ln \frac{1}{N}=\sum_{i=1}^{N}\frac{1}{N}\ln N=\ln N

四、最大熵的理解

       无条件的最大熵分布

          熵是随机变量不确定性的度量,不确定性越大,熵值越大;

             1、若随机变量退化成定值,熵值最小,为零;

             2、若随机变量为均匀分布,熵值最大,为\ln N

       有条件的最大熵分布

            1、根据函数形式判断概率分布

                  正态分布的概率密度函数:

                                                                        \large p\left ( x \right )=\frac{1}{\sqrt{2\pi }\sigma }e^{\frac{\left ( x-\mu \right )^{2}}{2\sigma ^{2}}}

                  对数正态分布:

                                                  \large \ln p\left ( x \right )=\ln \frac{1}{\sqrt{2\pi }}-\ln\sigma -\frac{\left ( x-\mu \right )^{2}}{2\sigma ^{2}}=\alpha \cdot x^{2}+\beta \cdot x+\gamma

                  得出该分布的对数是关于随机变量x的二次函数;

            2、给定方差的最大熵分布

                  建立目标函数

                                                \underset{p\left ( x \right )}{\arg \max }H\left ( X \right )=-\sum_{x} p\left ( x \right )        s.t.\left\{\begin{matrix} E\left ( X \right )=\mu \\ \\ Var=\sigma ^{2} \end{matrix}\right.

                  使用方差公式化简约束条件

                                                               Var\left ( X \right )=E\left ( X^{2} \right )-E^{2}\left ( X \right )\\\Rightarrow E\left ( X^{2} \right )=E^{2}\left ( X \right )+Var\left ( X \right )\\=\mu ^{2}+\sigma ^{2}

                  显然,此类问题为带约束的极值问题;

五、联合熵和条件熵

       联合熵

       两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H\left ( X,Y \right )表示。

                                                                   \large H\left ( X,Y \right )=-\sum_{x} \sum_{y} p\left ( x,y \right )\ln p\left ( x,y \right )

       条件熵

       (X,Y)发生所包含的熵,减去Y单独发生包含的熵:在Y发生的前提下,X发生“新”带来的熵。

       条件熵的公式:

                                                                 \large H\left ( Y|X \right )=H\left ( X,Y \right )-H\left ( X \right )

       推导条件熵的定义式:

       根据条件熵的定义式,得到:

六、相对熵

       相对熵,又称为互熵、交叉熵、鉴别信息、Kullback熵、Kullback-Leible散度等等;

       设p\left ( x \right )q\left ( x \right )X取值的两个概率分布,则pq的相对熵为:

                                                           \large D\left ( p\parallel q \right )=\sum_{x} p\left ( x \right )\log \frac{p\left ( x \right )}{q\left ( x \right )}=E_{p\left ( x \right )}\log \frac{p\left ( x \right )}{q\left ( x \right )}

      相对熵的性质:

                1、相对熵可以度量两个随机变量的“距离”;

                2、它不具有对称性,即 ,D\left ( p\parallel q \right )\neq D\left ( q\parallel p \right )

                3、相对熵的值为非负值,即D\left ( p\parallel q \right )\geq 0D\left ( q\parallel p \right )\geq 0:凸函数中的Jensen不等式;

七、互信息(信息增益)

       互信息的定义 

                                              \large I\left ( X,Y \right )=H\left (X \right )+H\left ( Y \right )-H\left ( X,Y \right )

       两个随机变量X,Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵:

                                             \large I\left ( X,Y \right )=D\left ( p\left ( x,y \right )\parallel p\left ( x \right )p\left ( y \right ) \right )=\sum_{x,y} p\left ( x,y \right )\log \frac{p\left ( x,y \right )}{p\left ( x \right )p\left ( y \right )}

       条件熵与互信息的关系:

       根据互信息定义展开得到:

八、总结

       根据下面的Venn图,我们可以清楚的看到:

       熵H\left ( X \right ):对于随机事件X的信息量的期望;

       熵H\left (Y \right ):对于随机事件Y的信息量的期望;

       联合熵H\left ( X,Y \right ):两个随机变量X,Y的联合分布;

       条件熵H\left ( X|Y \right ):在Y发生的情况下,X的信息量;

       条件熵H\left ( Y|X \right ):在X发生的情况下,Y的信息量;

       互信息I\left ( X,Y \right ):两个随机变量X,Y的互信息;

                  I\left ( X,Y \right )=H\left ( X \right )-H\left ( Y|X \right )

                  I\left ( X,Y \right )=H\left ( Y \right )-H\left ( X|Y \right )

                  I\left ( X,Y \right )=H\left ( X \right )+H\left ( Y \right )-H\left ( X,Y \right )

猜你喜欢

转载自blog.csdn.net/qq_38328378/article/details/81235720