AI

怎么理解信息熵

2019-08-26  本文已影响0人  sarai_c7eb

信息熵的定义很简单,怎么理解和运用信息熵还是有点头疼;


首先,我们看一下定义:
信息熵:
有离散随机变量及其分布:
P(X=x_i)=p_i,\quad i=1,2,\cdots,n
则随机变量X的熵定义为:
H(x)=-\sum_{i=1}^n p_i \log p_i
其中\logbase通常为2;此时熵的单位为bits


信息量:
随机变量X=x_0的信息量为:
I(x_0)=-\log (p(x0)),\quad 0\leq p(x_0)\leq 1

离散随机变量的信息量
利用python作图源代码如下:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

x=np.linspace(0,1,50)
y=-np.log2(x)

plt.figure()
plt.plot(x,y)
plt.show()

从图中可以直观的得到:


根据信息量来看信息熵:

那么从信息量的定义来看信息熵,我们发现信息熵是信息量的期望;

信息量大的变量,概率值很小;信息量小的变量,概率值很大;
讨论公鸡下蛋和太阳从东边升起好像都没多大意思,还是关注这样事件比较好,如股票涨跌,油价涨跌等;
信息熵就是这样的度量:不极端的分布信息熵大,极端的分布信息熵小;用比较官方的话来说就是:信息熵是表示随机变量不确定的度量,是对所有可能发生事件信息量的期望。

信息熵计算举例
  1. 对随机变量个数相同的分布,概率越集中于平均分布,信息熵越大(纵向比较);
  2. 随机变量个数越多,则信息熵越大(横向比较2vs3);

信息熵的最大值出现在所有变量服从均匀分布的情况下。H(X)=\log(n)

从上的讨论可以看出,离散随机变量的分布越杂乱,越不确定,则对应的信息熵就越大。
信息熵单位为bits,也就意味着需要用更多的bits来表示这段信息。
如变量X有4个状态:
如果4个状态是均匀分布的,那么我们计算信息熵为H(X)=2 bits,意味着我们至少需要2bits来表达和传输这4个状态;
如果4个状态的概率为\{1/2,1/4,1/8,1/8\},则计算H(X)=1.75 bits,此时可以利用哈夫曼编码来表达和传输这4个状态[1]


1:详解机器学习中的熵、条件熵、相对熵和交叉熵
2:《统计学习方法》--李航


  1. 参考1《详解机器学习中的熵、条件熵、相对熵和交叉熵》

上一篇 下一篇

猜你喜欢

热点阅读