本文介绍了什么是信息和熵,以及如何去计算信息量和熵的大小,KL散度的理解、交叉熵和KL散的关系。
1. 信息、信息量、熵
1.1 什么是信息、熵
定义:当一件事情(宏观态)有多种可能情况(微观态)时,这件事情对观察者而言具体是那种情况的不确定性叫做熵。而能够消除该人对这件事情的不确定事物叫做信息。信息是从多个可能状态中确定实际状态所需的物理量,所以获取信息意味着消除熵。
信息的本质是调整观察者对于一件事情(宏观态)的微观态判断的概率。
不能够消除某人对于某件事情不确定性的事物被称为噪音,数据=噪音+信息。
信息、熵的性质
- 信息与传递它的媒介无关。
- 信息是相对于观察者已经对该件事情的实际了解程度而言的,是需要能调整观察者自己对于微观态判断的概率。
- 信息是客观的物理量,不随观察者的主观意识改变,只有确定了真正的实际情况时才是信息,虚假的不叫信息。
- 信息(熵)还是相对于某件事情而言的
概率和熵的区别:概率是某件事情(宏观态)某个可能情况(微观态)的确定性,而熵是某件事情(宏观态)到底是哪个情况(微观态)的不确定性。
1.2 信息量的计算
信息是客观物理量,所以是可以被度量的,但是信息应该怎么度量呢?比如质量,我们找到一个参照物为1kg,其他物品和该参照物比较,有几个参照物的大小就是几千克。
测量信息也是一样,信息是消除不确定性,那么就选择一个事情的不确定性作为参照物。当参照事件是像抛硬币一样有两种等概率事件,这时测量单位就叫比特(bit),然而信息不像是质量是线性增加的,而是指数增加。抛三次硬币的可能情况是\(2^3\)而不是\(2\times3\),所以假设\(m\)是被测事件等概率的情况个数,\(k\)是参照事件的等概率情况个数,则需要的信息为\(\log_k m\)。
如果被测事件不是等概率的该如何计算信息呢?
概率是\(\frac{1}{100}\),相当于从100个等概率情况中确定实际情况,概率的倒数等于等概率情况的个数,由此
可以得到\(I(x)=\log\frac{1}{P(x)}=-\log P(x)\)
1.3 熵的计算
用熵描述系统的不确定性,熵越大,信息量越大,不确定性越大。熵可以表示为期望信息总量,也可以理解为编码方案完美时,最短平均编码长度,计算公式:\(H(\mathrm{x})=\mathbb{E}_{\mathrm{x} \sim P}[I(x)]=-\mathbb{E}_{\mathrm{x} \sim P}[\log P(x)]=\sum_{x} P(x) \log P(x)\)
2. KL 散度(相对熵)
定义:KL散度又称为相对熵,是两个几率分布P和Q差别的非对称性的度量。KL散度是用来度量使用基于Q的分布来编码服从P的分布的样本所需的额外的平均比特数。典型情况下,P表示数据的真实分布,Q表示数据的理论分布、估计的模型分布、或P的近似分布。
当我们知道真实的概率分布之后,可以给出最有效的编码。如果我们使用了不同于真实分布的概率分布,那么我们一定会损失编码效率,并且在传输时增加的平均额外信息量至少等于两个分布之间的KL散度。如果使用以2为底的对数计算,则KL散度表示信息损失的二进制位数。
KL散度表示用一个分布近似另一个分布时信息的损失量。
对于连续随机变量,分布P和Q的KL散度为:\(D_{\mathrm{KL}}(P \| Q)=\int_{-\infty}^{\infty} p(x) \ln \frac{p(x)}{q(x)} \mathrm{d} x\)
对于离散随机变量,分布P和Q的KL散度为:\(D_{\mathrm{KL}}(P \| Q)=-\sum_{i} P(i) \ln \frac{Q(i)}{P(i)}\)
性质:
1、相对熵的值为非负值
\(KL(p||Q)\geq 0\),并且当且仅当\(p(x)=q(x)\)时等号成立。证明略。
2、KL散度不具有对称性
因为\(D_{\mathrm{KL}}(P \| Q) \neq D_{\mathrm{KL}}(Q \| P)\) ,所以KL散度并不是一个真正的度量或者距离函数。
3、最小化KL散度等价于最大化似然函数
假设我们用参数分布\(q(x|\theta)\)来近似\(p(x)\),因为不知大概率分布\(p(x)\),我们观察服从\(p(x)\)分布的有限数量的训练集合\({x_n}\)。KL散度可以近似为 \(KL(p||q)\approx \frac{1}{N}\sum_{n=1}^N(-\ln q(x_n|\theta)+\ln p(x_n))\),最小化KL散度与\(\ln p(x_n)\)无关,而\(\frac{1}{N}\sum_{n=1}^N(-\ln q(x_n|\theta)\)是分布\(q(x|\theta )\)的负对数似然函数。所以最小化KL散度等价于最大化似然函数。
KL散度可以理解为编码方案不一定完美时,平均编码长度相对于最小值的增加值。\(KL(p||q)=H(p,q)-H(p)\)
3. 交叉熵
在信息论中,基于相同事件测度的两个概率分布\(p\)和\(q\)的交叉熵是指,当基于一个“非自然”(相对于“真实”分布\(p\)而言)的概率分布\(q\)进行编码时,在事件集合中唯一标识一个事件所需要的平均比特数(bit)。交叉熵可以理解为编码方案不一定完美时(由于对概率分布的估计不一定正确),平均编码长度。所以交叉熵的计算公式为:\(H(p,q)=-\sum_i p_i\)
Reference
[1] 相对熵 - 维基百科,自由的百科全书 (wikipedia.org)
[3] 交叉熵 - 维基百科,自由的百科全书 (wikipedia.org)
[4] 信息为什么还有单位,熵为什么用 log 来计算? - 知乎 (zhihu.com)