首页
CtrlK

信息熵

信息熵

信息熵

链接 视频链接

https://www.khanacademy.org/computing/computer-science/informationtheory/moderninfotheory/v/information-entropy

问题 信息量比较

想象两台机器。它们都输出字母A、B、C或D的消息。

  • 机器一随机生成每个符号,它们都以$25%$的概率发生,

  • 而机器二根据以下概率生成符号(A是$50%$,B是$12.5%$,C是$12.5%$,D是$25%$)。

哪台机器产生的信息更多?

过渡 香农的答案

克劳德·香农巧妙地重新表达了这个问题:如果你必须从每台机器预测下一个符号,你期望问的最少数量的`是或否`问题?

机器一

让我们看看机器一。最有效的方法是提出一个问题将可能性分成两半。例如(以答案为`B`为例),我们的第一个问题,我们可以问是否是任何两个符号,比如`“是A或B吗?”`,因为A或B有50%的机会和C或D有50%的机会。得到答案后,我们可以消除一半的可能性,然后我们将剩下两个符号,两者同样可能。所以我们只需选择一个,比如`“是A吗?”`,在这第二个问题之后,我们将正确地识别符号。

flowchart TD

    A[Is it AB?] --> |Yes|B[Is it A?]

    A --> |No |C[Is it C?]

    B --> |Yes|E(A)

    B--> |No|F(B)

    C --> |Yes|G(C)

    C --> |No|H(D)
机器一问题数

由此我们可以说,机器一的不确定性是每个符号$2$个问题。或者说,对于机器一,我们可以通过问$2$个问题来确定下一个符号。

机器二

那机器二呢?这一次,每个符号的概率是不同的,所以我们提问的方式是不同的。 $$P(A)=0.50,P(B)=0.125,P(C)=0.125,P(D)=0.25$$ 这里A有50%的发生概率,其他所有字母加起来为50%。我们可以从问`“是A吗?”`开始,如果是A,我们就完成了,在这种情况下只有一个问题。否则,我们剩下两个相等的结果,D或,B和C。我们可以问,`“是D吗?”`。如果是,我们用两个问题完成。否则,我们必须问第三个问题来确定最后两个符号中的哪一个。

flowchart TD

    A[Is it A?] --> |Yes|B(A)

    A --> |No| C[Is it D?]

    C --> |Yes| D(D)

    C --> |No| E[Is it C?]

    E --> |Yes| F(C)

    E --> |No | G(B)

平均来说,你期望问多少问题确定一个来自机器二的符号?

弹跳

扔一个圆盘下来,根据圆盘落地的位置,我们输出A、B、C或D。

机器一:

![image.png](https://cdn.modevol.com/user/ckxe4nrot01l501s5g2ehd6ge/images/na9y89fzi79ds3xs34252v5y.png)image.png

机器二:

![image.png](https://cdn.modevol.com/user/ckxe4nrot01l501s5g2ehd6ge/images/j2s5nyylpl6y8pqez3b6f19f.png)image.png

机器二问题数量

我们现在只需要计算加权平均值。预期的弹跳次数是,符号A的概率乘以一次弹跳,加上符号B的概率乘以三次弹跳,加上符号C的概率乘以三次弹跳,加上符号D的概率乘以两次弹跳。这计算出为1.75次弹跳。

$$#弹跳次数=PA×1+PB×3+PC×3+PD×2$$ $$#弹跳次数=0.5×1+0.125×3+0.125×3+0.25×2$$ $$#弹跳次数=1.75$$ 注意是或否问题和公平弹跳之间的联系,问题的预期数量等于弹跳的预期数量。

$$#问题数量=#弹跳次数$$

问题数量比较

因此,机器一需要$2$次弹跳来生成一个符号,猜测一个未知符号需要$2$个问题。机器二需要$1.75$次弹跳,我们平均需要问$1.75$个问题。

意味着如果我们需要猜测$100$个符号来自两台机器,我们可以期望问机器一$200$个问题,机器二$175$个问题。这意味着机器二产生的信息较少因为它的输出有更少的**不确定性****惊喜**,就是这样。

克劳德·香农称这个平均不确定性的度量为“熵”,他用字母$H$来代表它。香农选择的熵单位基于公平硬币翻转的不确定性,他称之为“比特”,相当于一个公平弹跳。

我们可以用我们的弹跳类比得出相同的结果。熵或H是每个符号的总和,该符号的概率乘以弹跳次数。

$$H=i=1npi×#弹跳次数i$$

不同之处在于,我们如何更一般地表达弹跳次数?正如我们所见,弹跳次数取决于我们在树中的深度。我们可以简化这一点,说弹跳次数等于以2为底的对数该级别的结果数。 $$#弹跳次数=log2(# outcomes)$$ 在一个级别的结果数,也基于概率,在该级别的结果数等于该结果的概率的倒数。 $$outcomes=p1$$

弹跳次数实际上等于以2为底的对数该符号的概率的倒数,这给出我们最终的方程。熵或H,是每个符号的总和,该符号的概率乘以以2为底的对数该符号的概率的倒数。

$$H=i=1npi×log2(pi1)$$ 香农以稍有不同的方式写下了这个,只是倒置了对数内的表达式这导致我们添加一个负号,尽管两个公式给出相同的结果。 $$H=i=1npi×log2(pi)$$

让我们总结一下。当所有结果是同样可能性时,熵是最大的。任何时候你远离同样可能的结果,或引入可预测性,熵必须下降。基本思想是,如果信息源的熵下降,这意味着我们可以问更少的问题来猜测结果。多亏了香农,比特,即熵的单位,被采用为我们信息的定量度量,或惊喜的度量。

信息熵
Mleon的头像
创建于:2024-02-28
随记
讨论
媒体