香农熵是每个结果的概率之和与每个结果的概率对数的负数。对数在此方程式中的作用是什么?
直观或直观的答案(而不是深奥的数学答案)将获得加分!
香农熵是每个结果的概率之和与每个结果的概率对数的负数。对数在此方程式中的作用是什么?
直观或直观的答案(而不是深奥的数学答案)将获得加分!
Answers:
香农熵是满足一组关系的量。
简而言之,对数将使其随系统大小线性增长,并且“表现得像信息”。
第一种意味着将次抛硬币的熵等于次抛硬币的熵:
或者只是看一下扔两个不同硬币时的工作原理(也许不公平- 第一个硬币的正面概率为,尾部为,第二个硬币为和)
因此对数的性质(乘积的对数是和对数是至关重要的。
但是Rényi熵也具有此属性(它是由实数参数化的熵,对于,它变为Shannon熵)。
但是,第二个属性-香农熵很特殊,因为它与信息有关。为了获得一些直观的感觉,您可以将
视为的平均值。
我们可以调用信息。为什么?因为如果所有事件都以概率发生,则意味着有事件。要确定发生了哪个事件,我们需要使用位(每个位使可以区分的事件数加倍)。
您可能会感到焦虑:“好吧,如果所有事件都具有相同的概率,则使用作为信息量度是有意义的。但是如果不是,为什么对信息进行平均有意义呢?” -这是一个自然的问题。
但是事实证明这是有道理的-Shannon的源编码定理说,具有不相关字母且概率为且长度为字符串不能(平均)压缩为短于二进制字符串。而事实上,我们可以使用哈夫曼编码来压缩字符串,并得到非常接近。n H
也可以看看:
这与其他答案相同,但是我认为解释它的最好方法是看看香农在他的原始论文中所说的话。
由于多种原因,对数度量更加方便:
- 实际上更有用。具有工程重要性的参数(例如时间,带宽,中继数量等)倾向于随可能性数量的对数线性变化。例如,将一个继电器添加到组中会使继电器的可能状态数量加倍。将此数字的以2为底的对数加1。将时间加倍大约会使可能的消息数成平方,或者使对数加倍,等等。
- 就适当的措施而言,它更接近我们的直觉。这与(1)密切相关,因为我们通过与通用标准的线性比较直观地测量了实体。例如,有人认为,两张打孔卡的容量应是一张信息存储卡的两倍,而两个相同的通道应是一张信息传输容量的两倍。
- 从数学上讲,它更合适。许多限制运算就对数而言很简单,但就可能的数量而言可能需要笨拙的重述
资料来源:香农,《通信数学理论》(1948) [ pdf ]。
注意,香农熵与统计力学的吉布斯熵重合,并且也解释了为什么对数出现在吉布斯熵中。在统计力学中,熵被认为是可以在其中找到系统的可能状态数的度量。比更好的原因是,通常是其参数的快速增长函数,因此不能用泰勒展开法有效地近似,而则可以。(我不知道这是否是获取日志的最初动机,但是在许多物理入门书籍中都以这种方式进行了解释。)登录Ω Ω Ω 登录Ω
香农提供了此结果的数学证明,该结果已被彻底接受并被广泛接受。因此,熵方程中对数的目的和意义在假设和证明内是独立的。
这并不容易理解,但这最终是出现对数的原因。
除了其他地方列出的参考文献,我发现以下参考文献也很有用:
我们开工吧:
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
怎么了?它快要接近了,但并不是我所希望的那样接近。是Python的PRNG试图说一个慢笑话吗?还是香农错了?还是-上帝禁止-我的理解是错误的?无论哪种方式都可以。SOS已经花花公子。
这个问题是两年前提出的,已经有了很多很棒的答案,但是我想补充一下,这对我自己有很大帮助。
问题是
对数在此方程式中的作用是什么?
对数(通常基于2)是由于Kraft不等式。
一个直观的插图和视觉的答案(如你需要,但更具体的克拉夫特不等式)铰接本文代码树,和卡夫的不平等。
基于您不接受任何已经给出的答案,我认为您要寻找的是香农首先在其公式中使用对数的原因。换句话说,它的哲学。
免责声明:我刚进入这个领域一周,因为遇到您这样的问题而来到这里。如果您对此有更多了解,请告诉我。
在阅读了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)告诉我,“您应该称它为熵,有两个原因。首先,不确定性函数已使用该名称在统计力学中使用,因此它已经有了一个名称。其次,更重要的是,没有人知道熵的真正含义,因此在辩论中您将始终拥有优势。
所以我的答案是:没有任何理由。他之所以选择它,是因为它神奇地起作用了。
该对数来自满足某些自然要求的函数H的推导。参见第 3秒 此来源中的2个:
http://www.lptl.jussieu.fr/user/lesne/MSCS-entropy.pdf
给定公理,如果您进行优化,则会获得一个唯一的(最多常量)函数,并在其中登录。
以上所有答案都是正确的,只是它们解释了日志,但没有解释其来源。
我想您的问题更多是关于该对数的“含义”,以及为什么每个组成部分都对公式的整体含义有所帮助,而不是单纯的形式主义,表明定义与某些要求的一致性。
从现在开始,我将讨论通用性如何影响最终的熵公式。
现在,坐下来,放松一下,看看香农的熵到底能起到多大的作用:它是基于(合理的)假设,即,一般的消息因此更频繁。
例如,如果是平均,大雨或非常大的雨,我会说正在下雨。因此,他建议根据消息的频率对消息的通用性进行编码...然后您就可以开始了:
该等式可以解释为:稀有消息将具有更长的编码,因为它们的通用性较低,因此它们需要更多的比特进行编码并且信息较少。因此,比起拥有许多普通和频繁的消息,拥有更多特定和稀有的消息对熵的贡献更大。
最高的熵是当我们拥有一个包含许多稀有和特定消息的系统时。具有常见消息和一般消息的最低熵。在这两者之间,我们有一系列等效于熵的系统,这些系统可能既包含稀有消息也包含一般消息,或者包含频繁但特定的消息。