avatar

目录
香农熵公式推导与理解

香农熵公式推导与理解

🧑‍💻 User

entropy是什么?


🤖 Assistant

您好!很高兴能为您解释“熵”(Entropy)这个概念。您提供的截图来自于一个关于机器人定位(Localization)的优秀课程,这为我们理解“熵”提供了一个绝佳的、非常具体的应用场景。

简单来说,在您这个课程的语境下:

💡 熵是衡量一个系统“不确定性”或“混乱程度”的数学指标。

对于机器人定位问题,熵衡量的是机器人对自己位置的“困惑程度”。

  • 熵很高:意味着机器人非常困惑,它认为自己可能在很多地方,每个地方的可能性都差不多。
  • 熵很低:意味着机器人非常确定,它认为自己极有可能在某个特定的位置。

让我们深入探讨一下这个概念。


Kontek 设定:机器人定位中的“信念”

在您的课程中,机器人通过一个概率分布来表示它对自己位置的“信念”(Belief)。这个分布就是一个列表(或直方图),其中每个数值代表机器人在某个格子(grid cell)的概率。熵就是用来量化这个“信念”分布的不确定性的。

核心洞察:高熵 Vs. 低熵的对比

为了更清晰地理解,我们可以将高熵和低熵的状态进行一个并排比较:

特征 (Characteristic) 🟢 高熵 (High Entropy) 🔵 低熵 (Low Entropy)
直观理解 最大程度的混乱、不确定、困惑 高度的有序、确定、自信
概率分布 均匀分布 (Uniform Distribution)
每个可能位置的概率都几乎相等。
尖峰分布 (Peaked Distribution)
有一个或少数几个位置的概率远高于其他位置。
信息量 系统包含的有用信息很少
“机器人可能在任何地方”这个结论帮助不大。
系统包含的有用信息很多
“机器人很可能就在这里”这个结论非常有用。
机器人定位中的例子 初始状态:机器人刚启动,对位置一无所知,所以假设在每个位置的概率都一样(例如p = [0.2, 0.2, 0.2, 0.2, 0.2])。 多次传感后:机器人经过几次观察(看到红色或绿色),排除了很多可能性,信念集中在某个位置(例如p = [0.05, 0.05, 0.8, 0.05, 0.05])。
对应操作 ⚠️ 移动 (Move) 操作后,由于运动存在不确定性(可能走多了或走少了),会引入新的不确定性,导致熵增加 传感 (Sense) 操作后,机器人获得了新的外界信息(如颜色),这会减少不确定性,导致熵降低

数学解释与计算

您的课程讲义在第22页提到了熵的计算公式,这被称为香农熵 (Shannon Entropy)

H(X) = - Σ p(xᵢ) * log(p(xᵢ))

  • H(X) 是整个概率分布 X 的熵。
  • p(xᵢ) 是机器人在第 i 个位置的概率。
  • Σ 表示对所有可能的位置(从 i=1n)进行求和。
  • log 通常使用以2为底的对数(log₂),此时熵的单位是“比特”(bits)。

让我们用课程中的例子来计算一下,直观感受熵的变化:

案例1:最大熵(初始状态)

假设世界有5个格子,初始信念是均匀分布:
p = [0.2, 0.2, 0.2, 0.2, 0.2]

每个位置的概率 p(xᵢ) 都是 0.2。
H = - [ (0.2 log₂(0.2)) + (0.2 log₂(0.2)) + (0.2 log₂(0.2)) + (0.2 log₂(0.2)) + (0.2 log₂(0.2)) ]
H = - 5
(0.2 log₂(0.2))
因为 log₂(0.2) ≈ -2.32
H ≈ -5
(0.2 -2.32) = -5 (-0.464) ≈ 2.32 bits

✅ 这是5个状态下可能达到的最大熵值。

案例2:较低的熵(传感后)

假设经过一次传感,机器人更新了信念,分布变得更“尖锐”:
p = [0.1, 0.1, 0.6, 0.1, 0.1]

H = - [ (0.1log₂(0.1)) 4 + (0.6log₂(0.6)) ]
因为 log₂(0.1) ≈ -3.32log₂(0.6) ≈ -0.74
H ≈ - [ 4
(0.1 -3.32) + (0.6 -0.74) ]
H ≈ - [ 4 (-0.332) + (-0.444) ]
H ≈ - [ -1.328 - 0.444 ] = -(-1.772) ≈ *1.772 bits

通过计算可以清晰地看到,当概率分布从均匀变得尖锐时,熵的值从 2.32 降低到了 1.772,这精确地量化了“不确定性的减少”。


结论与关键点总结

在机器人定位这个循环中,熵的变化完美地描述了信息的增减过程:

  1. 初始信念 (Initial Belief): 熵很高,机器人很“迷茫”。
  2. 传感 (Sense): 机器人通过传感器(如摄像头)观察环境。这个过程获得了信息,排除了不可能性,使得信念分布更“尖锐”。
    • 结果:✅ 熵减少 (Entropy Decreases)
  3. 移动 (Move): 机器人执行移动指令。但由于电机、轮子打滑等原因,移动总是不精确的。这会使原本集中的信念变得“模糊”。
    • 结果:⚠️ 熵增加 (Entropy Increases)

这个过程不断循环(Sense -> Move -> Sense -> Move ...),机器人的目标就是通过不断地传感,将移动带来的不确定性抵消掉,使总的熵维持在一个很低的水平,从而实现精确定位。

⚠️ 特别提示:正如您课程讲义第22页的“Instructor’s Notes”所指出的,Thrun教授在视频中可能口误了。正确的结论是:移动(Motion)使熵增加(不确定性增加),而传感(Measurement)使熵降低(不确定性减少)

拓展思考与建议

熵是信息论的基石,在整个人工智能领域都有着广泛的应用:

  • 决策树学习:通过计算“信息增益”(Information Gain)来选择最优的划分特征,而信息增益的本质就是父节点与子节点之间的熵的差值。
  • 机器学习分类问题:在深度学习中,我们常用“交叉熵损失函数”(Cross-Entropy Loss)来衡量模型预测的概率分布与真实的标签分布之间的差距。

希望这个详细的解释能帮助您彻底理解熵在机器人定位中的作用!

如果您对“交叉熵”或者“KL散度”(Kullback-Leibler Divergence)这些相关的概念感兴趣,或者想了解熵在决策树中是如何具体应用的,请随时告诉我!


🧑‍💻 User

香农熵 的公式怎么来的, 怎么理解这个公式呢?


🤖 Assistant

当然!这是一个非常深刻且重要的问题。理解香农熵公式的来源和内涵,是理解整个信息论,乃至现代机器学习和人工智能的关键。

我会分三步来为您解释:

  1. 直觉先行:我们希望用什么来衡量“信息”?
  2. 公式推导:如何从直觉的原则,一步步构建出数学公式。
  3. 公式解读:拆解公式的每一部分,理解其含义。

1. 🎯 直觉先行:我们想衡量什么?

想象一下,你正在听天气预报。Claude Shannon(香农)当时思考的问题,本质上可以归结为:我们如何量化“一条消息包含了多少信息”?

他提出了几条非常符合直觉的原则:

  • 原则一:信息量与“意外程度”成正比。

    • 预报说:“撒哈拉沙漠明天天晴。” 这条消息的“意外程度”很低,因为它几乎是必然事件,所以它包含的信息量很小
    • 预报说:“撒哈拉沙漠明天下雪。” 这条消息的“意外程度”极高,因为它是个极小概率事件,所以它包含的信息量巨大
  • 原则二:必然事件的信息量为零。

    • 如果一件事的发生概率是100%(p=1),比如“太阳从东边升起”,那么关于这件事的消息不包含任何新信息,信息量应该是0。
  • 原则三:独立事件的总信息量等于各自信息量之和。

    • 假设你抛掷两枚独立的硬币。你得知“第一枚硬币是正面”和“第二枚硬幣是反面”这两条消息。这两条消息加在一起的总信息量,应该等于第一条消息的信息量加上第二条消息的信息量。
    • 在概率论中,两个独立事件同时发生的概率是它们各自概率的乘积P(A and B) = P(A) * P(B)
    • 💡 关键点:我们需要找到一个函数 f,它能将概率的乘法关系,转换成信息量的加法关系。即 f(P(A) * P(B)) = f(P(A)) + f(P(B))

2. 🧩 公式推导:从原则到数学

现在,我们把上面的直觉翻译成数学。

第一步:定义单个事件的“信息量”(或称“自信息”、“意外度”)

我们来寻找一个函数 I(p),它表示一个概率为 p 的事件发生时,我们所获得的信息量。

根据原则三,我们知道这个函数必须满足 I(p₁ * p₂) = I(p₁) + I(p₂)

数学中,唯一满足这种性质的函数就是对数函数 (Logarithm)。回忆一下对数的性质:log(x * y) = log(x) + log(y)

所以,我们可以大胆假设 I(p) 的形式与 log(p) 有关。

但是,log(p) 有个问题:

  • 概率 p 是在 [0, 1] 区间内的,所以 log(p) 的值是负数或零。而我们直觉上希望信息量是正数。
  • 概率 p 越小(越意外),log(p) 的绝对值越大。这符合原则一

为了解决符号问题,并让信息量随概率减小而增大,我们可以定义:

I(p) = -log(p)

或者等价地写成:

I(p) = log(1/p)

我们来验证一下这个定义是否满足所有原则:

  • 原则一p 越小,1/p 越大,log(1/p) 越大。符合!
  • 原则二:如果 p=1I(1) = log(1/1) = log(1) = 0。符合!
  • 原则三I(p₁*p₂) = log(1/(p₁*p₂)) = log((1/p₁)*(1/p₂)) = log(1/p₁) + log(1/p₂) = I(p₁) + I(p₂)。完美符合!

所以,我们找到了衡量单个事件信息量的方法:I(p) = -log(p)

第二步:从“单个事件”推广到“整个系统”

熵,衡量的不是单个事件的信息量,而是整个系统(所有可能性)的平均信息量,或者说是信息量的期望值 (Expected Value)

期望值的计算方法是:将每个可能结果的“价值”乘以它发生的“概率”,然后全部加起来。

在这里:

  • “结果”就是事件 xᵢ 发生。
  • “价值”就是这个结果带来的信息量 I(p(xᵢ)) = -log(p(xᵢ))
  • “概率”就是这个结果发生的概率 p(xᵢ)

所以,整个系统的平均信息量(熵 H(X))就是:

H(X) = Σ [ 概率 信息量 ]
H(X) = Σ [ p(xᵢ)
I(p(xᵢ)) ]
H(X) = Σ [ p(xᵢ) * (-log(p(xᵢ))) ]

整理一下,就得到了我们最终的香农熵公式:

H(X) = - Σ p(xᵢ) log(p(xᵢ))


3. 🧐 公式解读:拆解每一部分

让我们像庖丁解牛一样,把这个公式的每个部分都看清楚:

H(X) = - Σ p(xᵢ) log(p(xᵢ))

组件 数学表示 角色与含义 直观类比
概率 p(xᵢ) 权重因子:代表事件 xᵢ 发生的可能性。它决定了该事件的信息量在总平均值中占多大的比重。 一个班级里,学霸的成绩对平均分的影响更大(如果按成绩加权的话)。
对数 log(p(xᵢ)) 信息核心:这是事件 xᵢ 信息量的基础。由于 p(xᵢ) ≤ 1,这个值本身是负数或零。 “意外指数”。概率越小,这个数的绝对值越大,代表越意外。
负号 - 符号校正器:将 log(p(xᵢ)) 的负值转为正值,使得最终的熵为一个正数,这更符合我们对“不确定性”或“信息量”的直观感受。 把“欠债”(负数)的概念,变成“风险大小”(正数)的概念。
求和 Σ 期望计算器:将所有可能性(每个事件的概率 * 该事件的信息量)加权求和,计算出整个系统的“平均意外程度”。 计算全班同学的“加权平均分”,得到班级的整体学习水平。

为什么对数的底是2? (log₂)

在信息论中,我们通常使用以2为底的对数。这是因为信息的基本单位是比特 (bit),代表一个二进制的是/否选择。

  • log₂(N) 的含义可以理解为:“要从 N 个同样可能性的选项中确定一个,需要问多少个‘是/否’问题?”
  • 例如,有8匹马(N=8),哪一匹会赢?log₂(8) = 3。这意味着你最少需要问3个问题(比如“是在前4匹里吗?”“是在那2匹里吗?”)就能确定冠军。
  • 所以,当熵的单位是比特时,它直观地告诉我们:平均而言,要确定系统的一个随机结果,我们需要多少个二进制信息位。

总结

  • 香农熵公式的诞生:源于为“信息”寻找一个满足直觉(与意外度成正比、独立可加)的数学定义。对数函数 log(1/p) 完美地满足了这些要求。
  • 公式的本质:熵不是某个事件的信息量,而是整个概率分布下,信息量的数学期望。它衡量的是一个系统的平均不确定性
  • 公式的理解H(X) = - Σ p(xᵢ) log(p(xᵢ)) 可以读作:“对于所有可能发生的事件 xᵢ,将其发生的概率 p(xᵢ) 与其自身信息量 -log(p(xᵢ)) 相乘,然后将所有结果相加,就得到了这个系统整体的平均信息量。”

希望这个从直觉到推导再到解读的完整流程,能帮助您透彻地理解香农熵公式!


评论