信息论与编码_信息论初探(1)

信息论最早由大名鼎鼎的克劳德·香农提出并发展,信息熵这个概念也出自于他那篇大名鼎鼎的论文 "A Mathematic Theory of Communication"。 信息论早期用于处理通信中的信号处理、传输、压缩等问题,如今已经发展成为一个更大的学科,广泛应用于计算机、密码学等领域。

ef736befdf9c53d705d0e3b77eff01ee.png
Claude Elwood Shannon(1916.4.30-2001.2.26) 信息论创始人,香农这个名字对我们来说最熟悉的应该是优乐美和计算机网络中的香农定理。

信息论本身并不是面试考察的重点,但是机器学习的重要基础知识之一,多种机器学习理论都可以用信息熵来解释。Shun Watanabe教授提出过“学习就是一个熵减的过程”,信息熵代表着系统的混乱程度,而优化算法就是不断减少这个“混乱程度”。

信息量与信息熵

信息量(Information Quantity)和信息熵(Information Entropy)是一种非常抽象的概念,我们讨论一件事或者一篇文章包含了多少信息,或者说这条信息有用或者没有用就是最朴素的信息量概念。

比如有人说2022国足会踢进世界杯,那么这句话信息量就非常大,从1930年开始已经举办了21届世界杯,只有一届国足出线,如果国足每年的出线率相互独立,那么可以简单的认为国足下届出线的概率是1/21,下一次踢进世界杯带来了巨大的信息量;而反过来如果有人说2022国足踢不进世界杯,这件事情发生的概率非常大就没有什么信息量。

信息量的计算非常简单,就是

p是该事件的发生概率,信息量是对事件发生概率的度量,一个事件发生的概率越低,则这个事件包含的信息量越大。国足进下届世界杯这事儿信息量有

这么大。

信息熵与信息量不同,熵这个概念来源于热力学,热力学熵和信息熵是一样的,熵代表着系统的混乱程度,是表示随机变量不确定性的度量。

我们给定一个分布:

随机变量

的熵为:

是不是跟信息量有些关系?细心的你肯定能发现,信息熵就是信息量的期望

一些考题:

1. 给定一个全零的数列,请问方差是多少?信息熵是多少?

熵与方差不同,方差反应的是一组数据的离散程度,虽然看起来一组全部元素都相同的数据方差为0,熵应该也是0,但这是错误的理解,熵不是在某一个确定的态下定义的,与数据的取值无关,只反映内容的随机性,必须给定概率分布才能计算。

2. 信息熵越大,信息量是越大还是越小?

信息熵越大,信息量越大。我们考虑熵的公式,如果一个0-1分布,取0的概率为1,取1得概率为0,那么整个系统只能有一个态,就是全0,这时没有不确定性,就没法提供任何信息量,也就是信息量为0。反过来,比如你不懂1+1=2,你觉得1+1可能等于(0,100]任意值,每个取值概率相等,这件事情就有较大信息熵,而后来你学会了,知道了1+1只能=2,你就获得了很大的信息量。

KL散度和交叉熵

以提出人命名总会给人一种屌屌的感觉,实际上KL散度(Kullback–Leibler divergence) 就是相对熵(relative entropy)

分布是离散情况时:

连续时:

其中P表示数据的真实分布,Q表示理论分布,KL散度衡量的就是两个分布间的不相似性。信息论角度来说,KL散度是用来 度量使用基于Q的编码来编码来自P的样本平均所需的额外的比特数。

交叉熵是我们的老朋友了,作为做常用的损失函数来说,交叉熵不仅仅存在于各种论文和网络结构之中,也存在与各家公司的面试题里,交叉熵本质的含义是:真实分布是P,理论分布是Q,那么交叉熵就是基于Q分布进行编码时,在事件集合中唯一标识一个事件所需要的平均比特数。在机器学习中交叉熵用来表示目标和预测值之间的差距。

离散情况下:

连续时:

信息熵就是信息量的期望,我们也可以将交叉熵表示为:

交叉熵作为代价函数时是面试最常考内容之一,具体推导和讨论我们放在下一节,本节主要探讨一下信息论中的交叉熵。但是再讲之前我们需要回顾一下本科的一门课程“计算机网络”,这门课中我们学过编码。编码,即对信源输出的符号按一定的数学规则映射到码字的过程,也是信息论的重要课题,前缀码、最优前缀码(哈夫曼编码)、海明码、曼彻斯特编码,都是我们熟知的编码。

编码可以分为定长码和变长码,又可以分为唯一可译码和非唯一可译码;定长码中每个码字长度相等,显然只要定长码非奇异(信源码字一一对应)就唯一可译,但是变长码却不一定,怎么判断变长码是否唯一可译呢?这就要请出大名鼎鼎的Kraft-McMillan不等式了:

其中,

是编码的码字数,
是其长度

公式的含义是要求编码长度比较长,即各码字不能过短。如果我们把编码过程看成一个

上的隐式概率分布(implicit probability distribution):

其中

的编码长度,那么交叉熵就是在理论分布
下,每个数据编码长度的期望,即:

一些考题:

1. KL散度表示的是两个分布的距离这句话对吗?

可以大概这么理解,一般没什么错,但严格来说KL散度并不是“距离”或者“度量”,因为它并没有对称性,即:

2. 交叉熵和KL散度都可以表示目标和预测之间的差距,两者有什么联系?

从定义中我们可以简单推导出两者的关系:

由于

是真实分布,
是固定值,交叉熵就是KL散度加上一个常数,有时也可以理解为是同样的东西。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值