Press "Enter" to skip to content

信息与熵

什么是什么,为什么和如何解释

由Raimond Klavins在Unsplash上的照片

使用“”,你永远不会输掉辩论,冯·诺伊曼告诉香农,因为没有人真正知道“熵”是什么。

— 威廉·庞德斯通

让我们从一点历史开始。

1948年,一位名叫克劳德·E·香农的数学家发表了一篇题为“通信的数学理论”的文章,其中介绍了机器学习中的一个关键概念:

虽然熵在物理学中衡量的是混乱程度,但在信息论中其含义发生了转变。然而,两者都衡量的是混乱或不确定性。

让我们深入了解“信息”的概念。

I. 香农的信息

根据这篇论文,我们可以量化一个事件所传达的信息,这可以被解释为衡量“惊讶程度”。这意味着信息内容实质上代表了事件所包含的惊讶程度。

让我们举个例子:想象有人告诉你,“动物需要水才能生存。”听到这句话,你会有多么惊讶?

你根本不会感到惊讶,因为这是一个众所周知且始终如一的事实。在这种情况下,惊讶程度等于0,因此传达的信息也等于0。

但是如果有人说,“我抛硬币得到了反面”呢?这个事件(得到反面)并不是保证发生的,对吗?头或者反的可能性都是50-50。因此,听到这个陈述可能会引起一定程度的惊讶。这里存在着概率和惊讶之间的有趣关联。当一个事件绝对确定(概率为1)时,惊讶程度减少(变为0)。相反,随着概率的降低——即事件变得不太可能发生——惊讶感增加。这是概率和惊讶之间的逆相关关系。

数学上表示为:

信息与熵 四海 第2张

其中p(x)是事件x的概率。

我们知道信息只是惊讶的数量。既然我们在这里要做一些数学运算,所以我们可以用“信息”替换“惊讶”这个词。

如果你做信息 = 1/p(x)会怎样?

让我们在一些极端情况下进行考虑:

p(x) = 0时,信息 = 1/0 = ∞(无限/未定义)。这个结果符合我们的直觉:一个被认为不可能发生却发生了的事件将产生无限或未定义的惊讶/信息。(一个不可能的情景)➟ ✅

p(x) = 1时,信息 = 1/1 = 1,这与我们的观察相矛盾。理想情况下,在绝对可能发生的事件中,我们希望不会有任何惊讶。

➟ ❌

幸运的是,对数函数非常有用。(在本文中,我们将一直使用以2为底的对数log₂,表示为log。)

信息 = log ( 1/p(x) ) = log(1) — log( p(x) ) = 0 — log( p(x) )

信息 = -log( p(x) )

让我们在一些极端情况下检查这个新方程:

p(x) = 0时,信息 = -log( 0 )= ∞ ➟ ✅

p(x) = 1时,信息 = -log(1) = 0,这确实是我们期望的结果,因为绝对可能发生的事件不应该带来任何惊讶/信息 ➟ ✅

因此,为了衡量一个事件所传达的意外程度或信息量,我们可以利用下面的公式:

信息与熵 四海 第3张

横轴代表概率,纵轴代表香农信息量。

这个-log函数在x = 1时为0(意味着当概率为1时,信息量为0)。随着x的减小,对应的y值急剧增加。当x = 0时,信息量变为无穷大或未定义。这个曲线准确地捕捉到了我们对信息的直观理解。

对于一系列事件,它变成了

信息与熵 四海 第5张

这无非是每个事件的信息量的总和。信息的单位是“比特”。这里有另一个直观的角度:

图片来自https://arxiv.org/pdf/1802.05968.pdf

假设你在A点,想要到达D点。然而,你对路线一无所知,也看不到相邻的点。而且,你不能往回走。

当你在A点时,你有两个选择:左(0)和右(1)。我给你发送一位比特,0,一个信息比特,帮助你从2个选择中进行选择(第二列)。当你到达B点时,我给你一个1的比特值,总共是2比特,让你可以从2 * 2 = 4个选项中进行选择(第三列)。当你进入C点时,我再次发送一个1,总共是3比特。这帮助你从2 * 2 * 2 = 8个选项中进行选择(最后一列)。有趣的是,1是2的对数,2是4的对数,3是8的对数。

‘n’个比特的信息使我们可以从‘m’个选项中进行选择。

例如,8 = 2³(其中m = 8表示总共可能的结果数,n = 3表示比特数)

一般地,

m = 2ⁿ

信息与熵 四海 第7张

这是信息(有用比特数)的方程。

信息论的基本直觉是,得知一个不太可能发生的事件发生了,比得知一个可能发生的事件发生了,更具有信息量。

— 《深度学习》,第73页,2016年。

II. 熵

让我们考虑这样一个场景:我们想要使用概率分布从给定的列表[1, 2, 3, 4]中生成随机数。

作者提供的图片

我们可以看到,得到2的概率最高,这意味着得到2时的惊讶程度相对较低,而得到3的惊讶程度较高,其概率为0.1。这两个事件的香农信息量为:

  • 得到2的信息量 = -log(0.8) = 0.32比特
  • 得到3的信息量 = -log(0.1) = 3.32比特

请注意,每次生成一个数字时,所获得的信息是不同的。

假设我们按照给定的分布进行100次生成过程。为了计算总信息量,我们需要将每个实例中获得的个体信息相加。

生成1的观测次数= 0.05 * 100 = 5次

生成2的观测次数= 0.8 * 100 = 80次

生成3的观测次数= 0.1 * 100 = 10次

生成4的观测次数= 0.05 * 100 = 5次

现在,让我们计算100次生成所传递的总信息量。

生成1时获得的信息量为5次= -log(0.05) * 5 = 21.6位

生成2时获得的信息量为80次= -log(0.8) * 80 = 25.8位

生成3时获得的信息量为10次= -log(0.1) * 10 = 23.2位

生成4时获得的信息量为5次= -log(0.05) * 5 = 21.6位

总信息量= 92.2位

因此,100次观测所传递的总信息量为92.2位。

如果我们计算每个观测的信息量(平均值),会不会更好?

以上分布的平均信息量= 92.2 / 100(因为我们有100个观测)

平均信息量= 0.922位

是的,这就是我们所称之为的数量。

这里没有什么花哨的东西,它只是由概率分布传递的平均(预期)信息量。现在让我们推导出熵的公式。

信息与熵 四海 第9张

p(x) × N给出在进行N次总观测时事件x发生的次数。

因此,最终的一般方程式为

信息与熵 四海 第10张

其中H是熵,E是期望。

您可以关注我,因为我将继续写关于人工智能和数学的内容。

参考资料

[1] C. E. SHANNON, “通信的数学理论”,1948年

[2] Josh Stramer,“熵(用于数据科学)明确解释!!!”,Youtube,2022年

[3] James V Stone,“信息论:教程介绍”,2018年

Leave a Reply

Your email address will not be published. Required fields are marked *