简介
在信息论中,熵(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)logbP(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)logbP(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+limplogp=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)logbP(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)=−logbP(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)logbP(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