机器学习基础知识—信息量和信息熵

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

信息熵

在许多科幻电影中都提及到了熵,我接触熵是在学习决策树时,第一次接触到熵的概念。不过当时熵留给我们印象还是披着一层薄纱,是懂非懂。到今天,再过 1 年左右时间里,为更好了解什么是熵,大大小小也看过了不下十几个国内外的关于熵的视频,所以今天才敢根大家再次聊一聊什么是熵.

熵现在是一个比较火的概念,大家或多或少已经了解到熵用于描述一个系统混乱程度,不过这应该是热力学上对熵的定义。

今天要聊熵应该属于信息论范畴的熵,而不是物理意义上的熵,确切地说就是信息熵

什么是信息熵

熵大家都知道即是热力学的概念又是信息论的概念。我们先不急聊信息熵,先聊聊什么是信息量,因为信息量是信息熵特例,我们都是从简单到一般。

信息量

信息量是对信息的度量,就跟时间的度量是秒一样,当我们考虑一个离散的随机变量 x 的时候,当我们观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢?

例如对于我们听到太阳从东方升起,这样信息对于我们来说价值不大,因为这是一个必然事件,所以这个信息传递给我们的信息量为 0

得到大厂 offer 通知书,如果在之前没有任何征兆时,这个信息量对于我们来说就很大。接下里我们

例如投硬币的游戏有两种可能,分别是正面和反面朝上,我们可以用 H 表示正面朝上,用字母 T 表示反面朝上。我们通过传递 H 或者 T 信息给其他人告诉不在场的人关于游戏结果,当然也可以用 0 表示反面朝上,而 1 表示正面朝上来传递这个信息。

大家了解过计算机都,是就是 1 个单位比特来表示 2 种可能,那么也就是我们用 1 个比特单位就可以描述投掷硬币游戏的结果传递给其他人。信息帮助我们消除了 2 种情况中出现哪一个面的不确定性。

我们下面来玩一个游戏,在两个人之间设立一个屏障,这个屏障只能传递 0 或者 1 电信号。有两个人分别位于屏障两端,暂且叫他们 A 和 B,A 从 A,B,C,D 字母中,随机取出一个字母,然后通过 0 和 1 组合方式将其抽取字母 A 信息通过屏障告诉 B,需要 2 个bit 可以将信息传递给 例如 00 表示 A 01 表示 B 10 表示 C 11 表示 D。也就是需要两个 bit 的信息。

log 2 2 = 1 log 2 4 = 2 log 2 8 = 3 \log_2 2 = 1\\ \log_2 4 = 2\\ \log_2 8 = 3\\

上面事件中所有等概率事件的数量取以 2 为底的对数,刚好是我们传递这个事件结果所需要的信号数量。

一个系统等可能事件越多,需要描述事件的比特位就越大。这里假设的等概率事件恰恰都可以用几个 2 连乘所表示。那么对于随机事件结果是 10 种可能的概率事件,我们又应该如何表示其信息量。我们可以 4 bit 信息来表示 10 种可能,不过这里浪费了 6 种,当然我们可以用 log 2 10 3.33 \log_2 10 \approx 3.33 个 bit 来传递信息。通过上面例子我们可以推导出下面公式,这个就是信息量公式。

信息量刻画一个事实,就是一个系统中等可能的事件越多,那么传输其中一个事件的信息量就越大。等可能事件越多也就意味着哪个事件发生不确定性越大。

H ( U ( M ) ) = log 2 M H(U(M)) = \log_2 M
S = k B ln Ω S = k_B \ln \Omega

这里 Ω \Omega 系统微观状态的数量对应系统等概率事件的数量,那么可以把这种度量不确定性的信息量称之为信息量。不过到现在为止我们研究系统是等可能事件组成的,可以看成理想系统,在实际中大多数情况下,系统都是由不同概率的事件所组成的。

信息熵

实际上我们可以把一个概率事件转为在等概率事件系统中发生某一个一个事件概率。也就是我们总能白一个概率事件转换为从 N 个等概率事件,例如从 N 个球中摸出某一个球的概率。例如我们中彩票的概率为 2kw 分之一,也就是从 2kw 中个球摸中奖球的概率,所以可以 1 除以概率值 p 就可能反推得到等可能概率数量。好有了上面知识我们就来从信息论公式推导出一般的信息熵的公式。

H ( U ( M ) = log 2 M H(U(M) = \log_2 M
p 1 = 1 M p 2 = 1 M p M = 1 M p_1 = \frac{1}{M}\\ p_2 = \frac{1}{M}\\ \vdots\\ p_M = \frac{1}{M}\\

可以将等比率概率表示为

H ( X ) = M 1 M log 1 p i H(X) = M \frac{1}{M}\log \frac{1}{p_i}\\

我们还是投掷硬币为例假设现在投掷硬币正面朝上概率为 p 反面朝上概率为 q,将这两概率事件转换为等概率系统,分别转化为 1/p 和 1/q 数量的等概率系统,这样我们就可以轻松计算出这 2 等概率系统信息量如下

log 1 p log 1 q \log \frac{1}{p} \\ \log \frac{1}{q} \\

然后用 2 个等概率系统分别乘以其出现概率表求和就是当前系统信息量的期望,也就是我们信息熵的公式。

H ( X ) = i M p i log 1 p i H(X) = \sum_{i}^M p_i \log \frac{1}{p_i}

信息熵公式

H ( X ) = i = 1 n p ( x i ) log p ( x i ) H(X) = -\sum_{i=1}^n p(x_i) \log p(x_i)

其中大写 X 表示一个随机事件,当 X 事件取值为 x i x_i 时的概率为 p ( x i ) p(x_i)

信息熵意义

就像光速作为物理世界速度的极限,信息熵指出了通讯的极限。或者所数据压缩效率的极限。一切试图突破这个极限的行为都是无用功。对于存在多种可能信息,就可以通过编码方式来对数据进行压缩从而进行传输和存储。

总结

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

猜你喜欢

转载自juejin.im/post/7024393012650180644