信息增益
在概率论和信息论中,信息增益是非对称的,用以度量两种概率分布P和Q的差异。信息增益描述了当使用Q进行编码时,再使用P进行编码的差异。通常P代表样本或观察值的分布,也有可能是精确计算的理论分布。Q代表一种理论,模型,描述或者对P的近似。
信息增益
1. 比特编码
对任意随机变量X
有如下4种取值情况
P(X=A)=1/4 | P(X=B)=1/4 | P(X=C)=1/4 | P(X=D)=1/4 |
假设我们要编码的序列为:BAACBADCDADDDA… 可以将(e.g. A = 00, B = 01, C = 10, D = 11),,每个字符使用2个比特位。
0100001001001110110011111100…
2. 更佳的比特编码方式
也许有人会告诉你每个字符的概率不一定相等,如下表
P(X=A)=1/2 | P(X=B)=1/4 | P(X=C)=1/8 | P(X=D)=1/8 |
那有没有一种编码方式,能将平均每个字符花1.75bits, 如果有的话,那应该如何编码?可能大部分的人第一反应就是哈夫曼编码(Huffman Coding)。
P(X=A)=1/2 | P(X=B)=1/4 | P(X=C)=1/8 | P(X=D)=1/8 |
A | B | C | D |
0 | 10 | 110 | 111 |
当然这只是众多编码中的一种编码方法。
Suppose there are three equally likely values… P(X=A)=1/3 P(X=B)=1/3 P(X=C)=1/3 最简单方便的编码方法是每个字符花费2 bits,那有没有一种编码方式,能将平均每个字符花1.6bits。理论上,每只字符只要1.58496 bits,就可以完成编码方法。
3. 一般情况,
假如随机变量X有m种取值V1, V2, …… ,Vm
P(X=V1)=P1 | P(X=V2)=P2 | …… | P(X=Vm)=Pm |
对于来自随机变量X分布的字符流,如果要对该流编码那平均每个字符至少需要多少个bits?
记X的熵为H(X):
- 熵H(X)的值大意味着随机变量X的取值来自正态分布(混乱的分布),X变量的直方图会较为平坦
- 熵H(X)的值小意味着随机变量X的取值来多种多样(峰谷)分布,X变量的直方图有一两值的