程序地带

信息熵学习笔记


简介

在信息论中,熵(entropy)是接收的每条消息中包含的信息的平均量,又被称为信息熵、信源熵、平均自信息量。 熵最好理解为不确定性的量度而不是确定性的量度,因为越随机的信源的熵越大。 比较不可能发生的事情,当它发生了,会提供更多的信息。 熵的单位通常为比特,但也用Sh、nat、Hart计量,取决于定义用到对数的底。


熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。在信息论里面,熵是对不确定性的测量。但是在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。


英语文本数据流的熵比较低,因为英语很容易读懂,也就是说很容易被预测。即便我们不知道下一段英语文字是什么内容,但是我们能很容易地预测,比如,字母e总是比字母z多,或者qu字母组合的可能性总是超过q与任何其它字母的组合。如果未经压缩,一段英文文本的每个字母需要8个比特来编码,但是实际上英文文本的熵大概只有4.7比特。


消息的熵乘以消息的长度决定了消息可以携带多少信息。


熵的计算

如果有一枚理想的硬币,其出现正面和反面的机会相等,则抛硬币事件的熵等于其能够达到的最大值。我们无法知道下一个硬币抛掷的结果是什么,因此每一次抛硬币都是不可预测的。 因此,使用一枚正常硬币进行若干次抛掷,这个事件的熵是一比特,因为结果不外乎两个——正面或者反面,可以表示为0, 1编码,而且两个结果彼此之间相互独立。若进行n次独立实验,则熵为n,因为可以用长度为n的比特流表示。


但是如果一枚硬币的两面完全相同,那个这个系列抛硬币事件的熵等于零,因为结果能被准确预测。现实世界里,我们收集到的数据的熵介于上面两种情况之间。


定义

依据Boltzmann’s H-theorem,香农把随机变量X的熵值 Η(希腊字母Eta)定义如下,其值域为{x1, …, xn}:
H
(
X
)
=

i
P
(
x
i
)

I
(
x
i
)
=


i
P
(
x
i
)
log

b
P
(
x
i
)
mathrm{H} (X)=sum _{{i}}{{mathrm {P}}(x_{i}),{mathrm {I}}(x_{i})}=-sum _{{i}}{{mathrm {P}}(x_{i})log _{b}{mathrm {P}}(x_{i})}
H(X)=i∑​P(xi​)I(xi​)=−i∑​P(xi​)logb​P(xi​) 其中,P为X的概率质量函数(probability mass function),E为期望函数,而I(X)是X的信息量(又称为自信息)。I(X)本身是个随机变数。


当取自有限的样本时,熵的公式可以表示为:



H
(
X
)
=

i
P
(
x
i
)

I
(
x
i
)
=


i
P
(
x
i
)
log

b
P
(
x
i
)
mathrm{H} (X)=sum _{{i}}{{mathrm {P}}(x_{i}),{mathrm {I}}(x_{i})}=-sum _{{i}}{{mathrm {P}}(x_{i})log _{b}{mathrm {P}}(x_{i})}
H(X)=i∑​P(xi​)I(xi​)=−i∑​P(xi​)logb​P(xi​)


在这里b是对数所使用的底,通常是2,自然常数e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是nat;而当b = 10,熵的单位是Hart。


pi = 0时,对于一些i值,对应的被加数0 logb 0的值将会是0,这与极限一致。
lim

p

0
+
p
log

p
=
0
lim_{p o0+}plog p = 0
p→0+lim​plogp=0 还可以定义事件 X 与 Y 分别取 xi 和 yj 时的条件熵为



H
(
X

Y
)
=


i
,
j
p
(
x
i
,
y
j
)
log

p
(
x
i
,
y
j
)
p
(
y
j
)
{displaystyle mathrm {H} (X|Y)=-sum _{i,j}p(x_{i},y_{j})log {frac {p(x_{i},y_{j})}{p(y_{j})}}}
H(X∣Y)=−i,j∑​p(xi​,yj​)logp(yj​)p(xi​,yj​)​ 其中p(xi, yj)为 X = xi 且 Y = yj 时的概率。这个量应当理解为你知道Y的值前提下随机变量 X 的随机性的量。


熵为什么用 log 来计算?


H
(
X
)
=

i
P
(
x
i
)

I
(
x
i
)
=


i
P
(
x
i
)
log

b
P
(
x
i
)
mathrm{H} (X)=sum _{{i}}{{mathrm {P}}(x_{i}),{mathrm {I}}(x_{i})}=-sum _{{i}}{{mathrm {P}}(x_{i})log _{b}{mathrm {P}}(x_{i})}
H(X)=i∑​P(xi​)I(xi​)=−i∑​P(xi​)logb​P(xi​)


信息熵=事件发生概率*事件携带的信息量 信息的量化应该遵循:


信息是非负的如果一件事物发生的概率是1(没有选择的自由度),信息量为0。(越确定的事件越不混乱)如果两件事物的发生是独立的(联合概率),它们一起发生时我们获得的信息是两者单独发生的信息之和。信息的度量应该是概率的函数,函数最好是单调连续的。

香农发现 lnx, x∈[0,1] 符合以上要求 在这里插入图片描述 事件携带的信息量 I(xi)
I
(
x
i
)
=

l
o
g
b
P
(
x
i
)
{mathrm {I}}(x_{i})=-log _{b}{mathrm {P}}(x_{i})
I(xi​)=−logb​P(xi​)


再结合“一件事物发生概率为0时,信息量也为0”,我们可以获得(变量X的)信息熵的完整定义形式:
H
(
X
)
=

i
P
(
x
i
)

I
(
x
i
)
=


i
P
(
x
i
)
log

b
P
(
x
i
)
mathrm{H} (X)=sum _{{i}}{{mathrm {P}}(x_{i}),{mathrm {I}}(x_{i})}=-sum _{{i}}{{mathrm {P}}(x_{i})log _{b}{mathrm {P}}(x_{i})}
H(X)=i∑​P(xi​)I(xi​)=−i∑​P(xi​)logb​P(xi​)


参考文献: [1]https://zh.wikipedia.org/wiki/%E7%86%B5_(%E4%BF%A1%E6%81%AF%E8%AE%BA) [2]信息为什么还有单位,熵为什么用 log 来计算? - 勃起床的回答 - 知乎 https://www.zhihu.com/question/310100965/answer/1219472348 [3]https://www.cnblogs.com/fm-yangon/p/14073664.html


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_24694009/article/details/112689476

随机推荐

Filecoin生态中的协作资源和风险管理

在12月11日举办的存储市场峰会(SMS)中,其中专门探讨了Filecoin生态系统中的协作资源和风险管理。以下是当天这一部分中不同对话的摘要,...

星际原社区 阅读(725)

安装appium踩坑

我之前按照51testing编的书上面所写的步骤来配置appium环境,但它们是真的坑,jdk的classpath环境变量直接配错。在安装appium-desktop的时候...

测试小林 阅读(795)

内外网文件交换,企业网盘也能做到网络隔离!

前段时间,在博客园看到一篇关于企业网盘无法实现内外网文件交换的文章:大部分做了网络隔离的企业,在选择内外网文件交换方案时,确实不会想到企业网盘产...

云盒子 阅读(910)

leetcode, LC45: 二叉树的最大深度

1题目描述求给定二叉树的最大深度,最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。2解题思路递归,当前结点的最大深度为其左子树深度和右子树深度较大的那个加1。3...

Zachzqh 阅读(650)

提取多个字段_Mac数据提取软件----Data Extractor

DataExtractorMac版允许以包含在各种文件中的稀疏格式提取数据,并在内部结构化表中收集所需的数据。数据提取器可以在几秒钟内解析成千上万的文件并收集内部数据。它使用简单的智能指...

谋略那些事 阅读(234)