互联网上关于统计学里的熵(Entropy)这个概念的解释很多,但是大多数都是用晦涩难懂的术语来解释的,这样的解释对于非数学专业的人来说,很难理解。本文试图用 大白话来解释这个概念。
“彩票中奖了”,“小区停电了”,“打游戏掉线了”,“今天会下雨”,这些都是生活中的常见的事件,哪个事件的发生能更让人感到意外呢?熵(Entropy) 就是一个度量意 外程度的值。
我们知道一个事件,发生的概率越大,我们越不觉得意外。例如,太阳从东边升起这个事件,每天都在发生。我们对它再次从东边升起的意外感应该很小;如果它突然 有一天从西边升起了,我们会大感震惊,意外感就会就很大。
那么怎么衡量这样的意外感的程度呢?最简单的办法就是用事件发生概率的倒数来代表意外程度
$$ \frac{1}{P(x)} $$
例如中彩票的概率是千分之一。如果这个事件发生了,它的意外度就是 $\frac{1}{0.001} = 1000$;如果明天会下雨的概率是一半一半,那么它的意外程度就是 $\frac{1}{0.5} = 2$
但是这个算法有个缺陷,那就是对于某些一定会发生的事情,例如明年我会长大一岁的概率是 100%, 它的意外度是 $\frac{1}{1} = 1$。按道理来说,这个事件必然发生,我们应该对其的意外度为0才对。
于是我们给它加上一层 log 函数
$$ log(\frac{1}{P(x)}) $$
套用这个算法,也能反映意外程度。
- 中彩票的意外程度为 $log(\frac{1}{0.001}) = 9.96$
- 明天会下雨的意外程度为 $log(\frac{1}{0.5}) = 1$
- 明年我会长大一岁的意外程度为 $log(\frac{1}{1}) = 0$
对于随机的事件,我们在考虑它意外程度的时候,不但要看它发生的时候令人意外的程度,还要看它不发生的时候令人感到意外的程度。例如上面的例子中,中彩票的概率是$\frac{1}{1000}$, 不中的概率是 $\frac{999}{1000}$ ,我们分别计算它们的意外程度
- 中彩票 $log(\frac{1}{0.001}) = 9.96$
- 不中彩票 $log(\frac{1}{0.001}) = 0.001$
中彩票固然会给我们带来意外感,但中彩票是有一个概率的($\frac{1}{1000}$)。我们将中彩票的意外感乘以它的概率;不中彩票的意外感乘以不中彩票的概率;再求和,就得到了买彩票带来意外感的期望值:
$$ P(X=中) \times log(\frac{1}{P(X=中)}) + P(X=不中) \times log(\frac{1}{P(X=不中)}) $$
$$ =0.001 \times 9.96 + 0.999 \times 0.001 \approx 0.011 $$
我们刚刚计算的,就是中彩票的熵。也就是说:熵就是意外程度的期望值。我们可以将上面的算式总结成熵的公式
$$ Entropy = H(X) = \sum xP(X=x) = \sum log(\frac{1}{p(x)})p(x) $$
我们可以进一步转换上面的公式
$$ \sum log(\frac{1}{p(x)})p(x) $$
$$ = \sum log(1) - log(p(x))p(x) $$
$$ = \sum 0 - log(p(x))p(x) $$
$$ = - \sum p(x)log(p(x)) $$
这就是我们在教科书上看到的熵的公式。总结一下,我们从意外感的度量,推导出了熵的公式。熵在统计学、信息论、机器学习等领域都有广泛的应用,理解熵能帮助我们更好的理解这些领域的知识。