PRML1-信息量&熵
信息量&熵
对于离散的随机变量\(x\),在我们观察这个\(x\)的值的时候,我们接受的信息如何计算?
信息量
信息量表示学习到\(x\)值时的“惊讶程度”,计算如下:
\(p(x)\)表示\(x\)发生的概率,\(h(x)\)表示信息量,单位为bit。基于传统我们选择以2为底的\(log\)函数,使\(h(x)\)是\(p(x)\)的递增函数。
熵
若我们将这个信息传输给其他人,在传输过程中,信息量的期望值(我们称之为熵)为:
例如对于某个随机变量有八种等可能的状态,则:\(H(x)=-8*\frac{1}{8}\log_2\frac{1}{8}=3 bit\)。所以我们共需要传输3bit的消息。
注意我们规定 \(0\log_2 0 =0\)。
若该随机变量的8中状态\([a,b,c,d,e,f,g,h]\)其可能性为:\([\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{16},\frac{1}{64},\frac{1}{64},\frac{1}{64},\frac{1}{64}]\),那么经过计算,其熵为\(2bit\)。
为什么是\(2bit\)呢?我们对于状态的概率由高到底表示:0(表示状态\(a\)),10,110,1110,111100,111101,111110,111111。这些编码的加权长度即为\(2bit\)。11001110唯一的表示状态序列:\(c,a,d\)。
无噪声编码定理(noiseless coding theorem)表明熵是传输一个随机变量状态值所需的比特位的下界。
之后我们会用自然对数\(\ln\)来定义熵,此时其单位为\(nat\),不再是\(bit\),原因就是其底数的不同。
另一种方式理解熵
熵是描述统计力学中无序程度的度量。
对于N个相同的物体,分配至若干个箱子中,使得第\(i\)个箱子中有\(n_i\)个物体,若不考虑每个箱子中物体的排序\(n_i!\)。
那么此时我们的方案数量为:
这里\(W\)被称为乘数。
熵为放缩后的对数乘数:
对于\(N\to \infty\)并且固定\(\frac{n_i}{N}\)的值,我们有:\(\ln(N!)\simeq N\ln N - N\)。
所以:
连续变量的熵
设连续变量的概率分布为\(p(X)\),对于\(x\)的一个微小的变化量(箱子的宽度)\(\triangle\to 0\)有:
右侧是随机变量,可以想象成只要\(x\)落入第\(i\)个箱子,我们就把赋值\(x=x_i\),因此观察到\(x_i\)的概率为\(p(x_i)\triangle\)。这是熵的形式为:
在\(\triangle\to 0\)的情况下,省略\(\ln \triangle\):
我们称之为微分熵。这也表明了传输一个连续变量需要大量的比特位(因为\(\triangle \to \infty\))。
条件熵:抽取一对变量\((x,y)\),当\(x\)已知,那么确定\(y\)所需的附加信息为\(-\ln p(y|x)\),其期望(也就是条件熵)为:
这里我们使用了\(p(x)p(y|x)=p(x,y)\)。
然后利用公式 \(\int p(x,y)\,dy=p(x)\),可以导出:
所以:
可以看出,描述\(x,y\)所需的信息为描述\(x\)所需的信息加上描述\(y\)所需的附加信息。