2.8 信息论
信息论关注的是以一种紧凑的方式表示数据(一种称为数据压缩或源代码编码的任务),以及以一种对错误(一种称为错误修正或信道编码的任务)鲁棒性很好的方式传输和存储数据。
起初,这似乎与概率论和机器学习的关注点相去甚远,但实际上有一种亲密的联系。要了解这一点,请注意,紧凑地表示数据需要将短码字分配到可能性高的位字符串,并将较长的码字保留到不太可能的位字符串。
这与自然语言中的情况类似,在自然语言中,常见的词(如“a”、“the”、“and”)通常比罕见的词短得多。此外,要解码通过噪声信道发送的消息,需要有一个良好的关于人们发送的消息类型倾向的概率模型。在这两种情况下,我们都需要一个模型来预测哪种数据是可能的,哪种是不可能的,这也是机器学习中的一个核心问题(有关信息理论和机器学习之间的联系的更多细节,请参见MacKay 2003)。
显然,我们不能在这里深入了解信息理论的细节(参见封面和托马斯2006),如果您有兴趣了解更多的话。然而,我们将在本书后面介绍一些基本概念。
2.8.1 熵(Entropy)
一个分布为P的随机变量X,他的熵用H(X)或H(p)表示,熵是不确定性的测度。特别地,对于有K个状态的离散变量,定义为:
通常我们用log_2,在这种情况下单位被称为位(bits)(二进制数字binary digits的缩写)。如果用log以e为底,单位称为nats。
均匀分布是熵最大的离散型分布。因此,对于k元随机变量,当
p(x=k)=1/k
p
(
x
=
k
)
=
1
/
k
时,熵最大,此时
H(X)=log2K
H
(
X
)
=
l
o
g
2
K
。
相反,熵最小的分布(为0)是任何一个把质量都放在一个状态上的delta函数。这样的分布没有任何的不确定性。
2.8.2 KL散度
一种测量两个概率分布(p和q)的不相似性的方法被称为kullleibler散度(KL散度)或相对熵。定义如下:
将和替换成概率密度函数的积分,重写如下:
H(p,q) H ( p , q ) 被称为交叉熵:
交叉熵是当我们使用模型q定义我们的码本时,用分布为p的数据源进行编码所需的平均比特数。如果我们用真是模型,H(p)是期望的比特值,所以KL散度是它们之间的差。换句话说,KL散度是编码数据所需的额外比特的平均数,因为我们使用分布q来编码数据,而不是真正的分布p。
“额外的比特数”说明 KL(p||q)≥0 K L ( p | | q ) ≥ 0 并且仅当p=q时为0,现在给出一个重要结论:
定理2.8.1(信息不平等) KL(p||q)≥0除非p=q K L ( p | | q ) ≥ 0 除 非 p = q
2.8.3 互信息
(待续….)