对数在香农熵中的作用是什么?


72

香农熵是每个结果的概率之和与每个结果的概率对数的负数。对数在此方程式中的作用是什么?

直观或直观的答案(而不是深奥的数学答案)将获得加分!


11
您(或其他读者)可能会喜欢:A. Renyi(1961),《关于熵和信息的度量》Proc。第四届伯克利数学统计学和概率研讨会论文集。1,547-561。
主教

根据您的反应,我想您的意思是为什么香农在他的公式中使用对数,对吗?
Ooker

@Ooker:那是表达它的一种方法。“为什么”把它放进去了?“它是功能或角色是什么?”“它能实现什么?”它有什么帮助?对我来说,这些都在同一个地方...
histelheim


看到我的回答,我认为只有通过检查统计力学中的香农熵的根,才能真正理解对数的含义
Aksakal

Answers:


51

香农熵是满足一组关系的量。

简而言之,对数将使其随系统大小线性增长,并且“表现得像信息”。

第一种意味着将次抛硬币的熵等于次抛硬币的熵:nn

i=12n12nlog(12n)=i=12n12nnlog(12)=n(i=1212log(12))=n.

或者只是看一下扔两个不同硬币时的工作原理(也许不公平- 第一个硬币的正面概率为,尾部为,第二个硬币为和) 因此数的性质(乘积的数是和对数是至关重要的。p1p2q1q2

i=12j=12piqjlog(piqj)=i=12j=12piqj(log(pi)+log(qj))
=i=12j=12piqjlog(pi)i=12j=12piqjlog(qj)=i=12pilog(pi)j=12qjlog(qj)

但是Rényi熵也具有此属性(它是由实数参数化的熵,对于,它变为Shannon熵)。αα1

但是,第二个属性-香农熵很特殊,因为它与信息有关。为了获得一些直观的感觉,您可以将 视为的平均值。

H=ipilog(1pi)
log(1/p)

我们可以调用信息。为什么?因为如果所有事件都以概率发生,则意味着有事件。要确定发生了哪个事件,我们需要使用位(每个位使可以区分的事件数加倍)。log(1/p)p1/plog(1/p)

您可能会感到焦虑:“好吧,如果所有事件都具有相同的概率,则使用作为信息量度是有意义的。但是如果不是,为什么对信息进行平均有意义呢?” -这是一个自然的问题。log(1/p)

但是事实证明这是有道理的-Shannon的源编码定理说,具有不相关字母且概率为且长度为字符串不能(平均)压缩为短于二进制字符串。而事实上,我们可以使用哈夫曼编码来压缩字符串,并得到非常接近。{pi}innHn HnH

也可以看看:


11
这个答案有很多不错的细节-但从外行的角度来看,它仍然可以解决问题-对数的作用是什么?为什么没有对数就不能计算熵?
histelheim 2014年

6
@histelheim“没有对数”是什么意思?只是一个。如果您想要不带另一种多样性度量,请查看多样性指数 -例如所谓的辛普森反指数,它表明选择的有效数量(超过平均概率),因此有基尼-辛普森指数始终在0到1之间。而且,如果您不关心香农熵的与信息相关的细微特性,则可以使用它们中的任何一种(尽管它们对低概率和高概率的加权不同)。 log 1 / i p 2 i 1 i p 2 iipilog 1/ipi2 1ipi2
Piotr Migdal

10
我对您最近的评论Histelheim感到困惑:“没有对数的熵”可能指的是什么?那表明您还没有清楚地阐明您的问题,因为听起来您脑中有一些未阐明的“熵”概念。请不要让我们猜测-编辑您的问题,以便您的读者可以提供您所需要的答案。
ub

1
@ Piotr Migdal-您写道:“对数是使它随着系统大小线性增长,并且“表现得像信息”。-这对我理解对数的作用似乎至关重要,但是我不清楚它的含义。
histelheim

1
@ Piotr Migdal-此外,您在“我们可以调用log(1 / p)信息。为什么?”之后进行解释。对我来说似乎很有意义。对数本质上是将我们从多样性索引移动到信息索引-测量我们需要区分事件的位数。
histelheim

25

这与其他答案相同,但是我认为解释它的最好方法是看看香农在他的原始论文中所说的话。

由于多种原因,对数度量更加方便:

  1. 实际上更有用。具有工程重要性的参数(例如时间,带宽,中继数量等)倾向于随可能性数量的对数线性变化。例如,将一个继电器添加到组中会使继电器的可能状态数量加倍。将此数字的以2为底的对数加1。将时间加倍大约会使可能的消息数成平方,或者使对数加倍,等等。
  2. 就适当的措施而言,它更接近我们的直觉。这与(1)密切相关,因为我们通过与通用标准的线性比较直观地测量了实体。例如,有人认为,两张打孔卡的容量应是一张信息存储卡的两倍,而两个相同的通道应是一张信息传输容量的两倍。
  3. 从数学上讲,它更合适。许多限制运算就对数而言很简单,但就可能的数量而言可能需要笨拙的重述

资料来源:香农,《通信数学理论》(1948) [ pdf ]。


注意,香农熵与统计力学的吉布斯熵重合,并且也解释了为什么对数出现在吉布斯熵中。在统计力学中,熵被认为是可以在其中找到系统的可能状态数的度量。比更好的原因是,通常是其参数的快速增长函数,因此不能用泰勒展开法有效地近似,而则可以。(我不知道这是否是获取日志的最初动机,但是在许多物理入门书籍中都以这种方式进行了解释。)登录Ω Ω Ω 登录ΩΩlogΩΩΩlogΩ


这个答案似乎是最集中但最有用的。
明亮的星星

1
这就是为什么日志出现在熵计算中的原因。这就是为什么报告的信息是这样报告的。还有一个替代量:“困惑性”,用于报告没有日志的信息。在他的论文的这一部分中,Shannon主张赞成位/小结/哈特利,反对困惑。
Neil G

15

x1xNxO(log2N)xN=8x

x1xNp(x)=1/N1xNx

h(x)=log21p(x)

x=4h(4)=3x4x=4

xxh(x)x

h(x)=1xNp(x)h(x)

h(x)H(X)H(X)


1
+这是我最喜欢的信息论应用之一-算法分析。如果决策点的结果大于2,例如在对数组建立索引时,这就是哈希编码和O(n)排序的原理。
Mike Dunlavey 2014年

此参数适用于离散熵,但不易推广到连续熵。
尼尔·G

12

这是现成的解释。您可以说两本相同大小的书的信息是一本书的两倍,对吗?(考虑一本书是一串比特。)好吧,如果某个结果的概率为P,那么您可以说它的信息内容大约是您需要写出1 / P的比特数。(例如,如果P = 1/256,则为8位。)熵只是所有结果上该信息位长度的平均值。


5

log(pi)log(pi)H(p1,,pN)

香农提供了此结果的数学证明,该结果已被彻底接受并被广泛接受。因此,熵方程中对数的目的和意义在假设和证明内是独立的。

这并不容易理解,但这最终是出现对数的原因。

除了其他地方列出的参考文献,我发现以下参考文献也很有用:

  1. 概率论:ET Jaynes的科学逻辑。杰恩斯(Jaynes)是为数不多的从头得出许多结果的作者之一。请参阅第11章。
  2. 信息理论,推理和学习算法,作者:David MacKay。包含对香农源代码定理的深入分析;参见第4章。

4

摘要:

nn

例:

661n=21

3.56/2=3

1

我们开工吧:

  • 6>3.5
  • 6/2=35
  • 6/2/2=1.5=6

63ceil(log2(6))=ceil(2.58)=3

ceil

2.58

log2(...)nn2logn(...)

模拟:

import random

total_questions = 0
TOTAL_ROUNDS = 10000

for i in range(0,TOTAL_ROUNDS):
    outcome = random.randrange(1,7)
    total_questions += 1
    if outcome > 3.5:
        total_questions += 1
        if outcome >= 5:
            total_questions += 1
            if outcome == 5:
                pass
            else:
                # must be 6! no need to ask
                pass
        else:
            # must be 4! no need to ask
            pass
    else:
        total_questions += 1
        if outcome >= 2:
            total_questions += 1
            if outcome == 2:
                pass
            else:
                # must be 3! no need to ask
                pass
        else:
            # must be 1! no need to ask
            pass


print 'total questions: ' + str(total_questions)
print 'average questions per outcome: ' + str(total_questions/float(TOTAL_ROUNDS))

结果:

total questions: 26634
average questions per outcome: 2.6634

2.6634log2(6)2.58

怎么了?它快要接近了,但并不是我所希望的那样接近。是Python的PRNG试图说一个慢笑话吗?还是香农错了?还是-上帝禁止-我的理解是错误的?无论哪种方式都可以。SOS已经花花公子。


2
65=7776log2(65)=1313/5=2.6190537492531492531/1905372.584962500722

@whuber这不是我在代码中正在做的事情吗?我丢掉10,000个骰子,求和总数等于我要求所有骰子的问题。然后我求和/ 10000我得到2.66。
穴居人

1
不,您根本没有在代码中这样做!您需要提出一组旨在同时获取所有骰子状态的问题。这与一次发现一个骰子状态所需的平均问题数不同。
whuber

3

Ω={ω1,,ωn}p1,,pnH(p1,,pn)

  • H
  • Hnp1==pn=1n
  • H
    H(12,16,13)=H(12,12)+12H(13,23).

H

H(p1,,pn)=i=1npilogkpi
k>1k=2

3

这个问题是两年前提出的,已经有了很多很棒的答案,但是我想补充一下,这对我自己有很大帮助。

问题是

对数在此方程式中的作用是什么?

对数(通常基于2)是由于Kraft不等式

i=1m2li<=1

liLxP(x)

P(x)=2L(x)

L(x)=logP(x)P(x)L(x)

L(x)P(x)P(x)logP(x)

一个直观的插图和视觉的答案(如你需要,但更具体的克拉夫特不等式)铰接本文代码树,和卡夫的不平等


1

基于您不接受任何已经给出的答案,我认为您要寻找的是香农首先在其公式中使用对数的原因。换句话说,它的哲学。

免责声明:我刚进入这个领域一周,因为遇到您这样的问题而来到这里。如果您对此有更多了解,请告诉我。

在阅读了Ulananowicz最重要的论文之一《增加熵:热死还是永久和谐?》之后,我有这个问题。这是一段解释为什么公式具有-log(p)而不是(1-p)的原因:

在进一步解释熵的形式定义之前,有一个理由要问为什么不简单地选择(1-p)而不是[–log(p)]作为最合适的不存在度量?答案是,具有p(即[p–p ^ 2])的结果乘积在值p = 0.5周围是完全对称的。根据这种对称组合进行的计算只能描述可逆宇宙。然而,玻尔兹曼和吉布斯试图量化不可逆的宇宙。通过选择单变量凸对数函数,玻耳兹曼从而赋予了非存在性偏见。例如,有人注意到max [-xlog {x}] = {1 / e}≈0.37,因此不确定性的度量偏向于较低的pi值。

看起来Shannon无缘无故地选择了对数。他只是“嗅到”他应该使用对数。牛顿为什么在他的公式F = m * a中选择乘法运算?

请注意,那时他还不了解熵

我最大的担心是该怎么称呼。我本来想称它为“信息”,但是这个词被过度使用,所以我决定称其为“不确定性”。当我与约翰·冯·诺伊曼(John von Neumann)讨论时,他有一个更好的主意。冯·诺依曼(Von Neumann)告诉我,“您应该称它为熵,有两个原因。首先,不确定性函数已使用该名称在统计力学中使用,因此它已经有了一个名称。其次,更重要的是,没有人知道熵的真正含义,因此在辩论中您将始终拥有优势。

所以我的答案是:没有任何理由。他之所以选择它,是因为它神奇地起作用了。


0

熵定义为多项式系数的几何平均值的对数,该对数表示系统可以处于的状态数:

log(Nn1,,nk)N

对数使用斯特林的阶乘近似后出现在公式中(请参阅 此说明


3
我相信OP知道对数是定义的一部分。他们问为什么在那儿?
ub


0

我想您的问题更多是关于该对数的“含义”,以及为什么每个组成部分都对公式的整体含义有所帮助,而不是单纯的形式主义,表明定义与某些要求的一致性。

p(x)log(p(x))

  • p(x)
  • log(p(x))

p(x)log(p(x))


从现在开始,我将讨论通用性如何影响最终的熵公式。

log2(x)=number_of_bits_to_encode_the_messages

现在,坐下来,放松一下,看看香农的熵到底能起到多大的作用:它是基于(合理的)假设,即,一般的消息因此更频繁。

例如,如果是平均,大雨或非常大的雨,我会说正在下雨。因此,他建议根据消息的频率对消息的通用性进行编码...然后您就可以开始了:

log2N=log21/N=log2P

Nx

该等式可以解释为:稀有消息将具有更长的编码,因为它们的通用性较低,因此它们需要更多的比特进行编码并且信息较少。因此,比起拥有许多普通和频繁的消息,拥有更多特定和稀有的消息对熵的贡献更大。


p(x)log(p(x))

最高的熵是当我们拥有一个包含许多稀有和特定消息的系统时。具有常见消息和一般消息的最低熵。在这两者之间,我们有一系列等效于熵的系统,这些系统可能既包含稀有消息也包含一般消息,或者包含频繁但特定的消息。


0

我认为不可能给您一个普遍的“直观”答案。我会给您一些对于物理学家等人来说很直观的答案。对数可以获取系统的平均能量。这是详细信息。

香农使用“ ” 这个词是因为他从统计力学上修改了这个概念。在统计力学中,有一个以Boltzmann命名的开创性分布。有趣的是,它现在是机器学习中的重要发行版

P=eaEb
a,bEdVVdV=dpdxx,pa,bVPdV=1b 对应于系统的温度。

lnPE

SVPlnPdV=<E>

η=iPilnPi
ePi

这对您来说足够直观吗?这是给我的,但是我是前辈的理论物理学家。此外,通过链接到更旧的热力学概念(例如温度以及玻尔兹曼和克劳修斯的著作),您可以进入更直观的层次。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.