信源的熵
自信息
如何度量你获得的信息量的大小,比如有人告诉你某个地方地震了,那么这个信息量对你来说比较大,因为地震不是经常发生;如果有人告诉你某个地方有雾霾,这个信息量就比较小,因为有雾霾这个事情很常见。
通过这个例子,我们可以知道,信息量的大小应该与某件事情发生的概率有关,这件事情发生的概率越低,当这个事情发生时,你获得的信息量就越大,所以信息量的大小应该是与概率的大小成反比的。并且,如果一个事件发生的概率为\(0\),如果这个事情发生了,那么你获得的信息量应该为无穷大,如果一个事件发生的概率为\(1\),那么这个事件发生时,你获得的信息量为\(0\),即这个事件对你没有信息量,比如太阳从东方升起。另外,两个互不相关事件同时发生带给你的信息量应该为两个事件的信息量之和。
我们设事件\(A\)的信息量为\(I\),\(P(A)\)是事件\(A\)发生的概率,那么\(I\)是\(P(A)\)的函数,它满足以下三点
- \(I\)是关于\(P(A)\)的单调递减函数
- \(I(0) = \infty,I(1) = 0\)
- \(I(P(A)P(B)) = I(P(A)) + I(P(B))\)A,B是不相干的两个事件。
我们可以证明,满足以上三个性质的函数为对数函数,所以\(I\)与\(P(x)\)的表达式如下
\[I(x) = - logP(x)
\]
一般在信息论中对数函数的底数都为\(2\),这时\(I\)的单位为比特,那么为了方便,底数\(2\)一般不写,直接写为\(log\)。
对于\(I\),可以有两个理解:
- 事件发生之前,可以理解为事件发生不确定性的大小,\(I\)越大,不确定性越大。或者理解为使得事件发生所需要的信息量的大小。
- 事件发生之后,\(I\)表达的就是事件发生产生的信息量的多少。
同样我们仿照上面的定义,我们可以定义条件自信息为
\[I(x|y) = -logP(x|y)
\]
表示在\(y\)的条件下,\(x\)发生所产生的信息量。
熵
上面我们讨论的都是一个事件的信息,但是怎么讨论一个信源的信息量是多少呢?信源每次发出的符号是随机的,每次所发生的信息量也是不一样的,所以我们用什么来表示信源的信息量呢?答案是信源发送一个符号所产生的信息量的平均值,我们把它称为熵。
我们定义信源X的熵为信源发送一个符号的平均信息量(期望)
\[H(X) = E[I(X)] = \sum_{i = 1}^{n}p(x_i)I(x_i)
=-\sum_{i=1}^np(x_i)\log{}p(x_i)
\]
\(X\)为随机变量,假设一信源分别以概率\(p(0)\)和\(p(1)\)发送\(0\)和\(1\),那么该信源的熵为
\[H(X)=p(0)I(0) + p(1)I(1)
=-(p(0)\log{}p(0) + p(1)\log{}p(1))
\]
条件熵
为了定义条件熵\(H(X|Y)\),我们先看\(H(X|y)\)
\[H(X|y) = -\sum_{x}p(x|y)\log(p(x|y))
\]
\(H(X|y)\)是关于\(y\)的随机变量函数,则
\[\begin{aligned}
H(X|Y)&=\sum_{y}p(y)H(X|y) \\\\
&=-\sum_{xy}p(x,y)log(p(x|y))
\end{aligned}
\]
熵的性质
假如信源\(X\)的信源空间为
\[[X \cdot P]:
\begin{cases}
X: \quad &a_1 \quad &a_2 \quad &\ldots &a_r \\\\
P(X): \quad &p(a_1) \quad &p(a_2) &\ldots \quad &p(a_r)
\end{cases}
\]
则其熵为
\[H(X) = -\sum_{i = 1}^r p(x_i)\log{}p(x_i)
\]
所以\(H(X)\)是\(p(x_1),p(x_2),\ldots,p(x_r)\)的函数,所以\(H(X)\)可以写为\(H(p(x_1),p(x_2),\ldots,p(x_r))\),下面主要研究熵的几个性质。
对称性
变量\(p(x_1),p(x_2),\ldots,p(x_r)\)随意交换顺序,熵不变,即
\[H(p(x_1),p(x_2),\ldots,p(x_r)) = H(p(x_2),p(x_1),\ldots,p(x_r)) = H(p(x_r),p(x_2),\ldots,p(x_1)) = \ldots
\]
非负性
由于\(0\leq p(x_i) \leq 1\),所以\(-p(x_i)log p(x_i) \geq 0\),所以
\[H(X) = -\sum_{i=1}^rp(x_i)log p(x_i) \geq 0
\]
确定性
若\(p(x_i) = 1, p(x_j) = 0(j \neq i)\),则\(H(X) = 0\)
首先利用高等数学的知识可以得到
\[\lim_{\epsilon \to 0}\epsilon log \epsilon = 0
\]
所以我们可以定义
\[0 \cdot log 0 = 0
\]
所以
\[H(X) = 1\cdot log1 + (r-1)\cdot (0\cdot log0) = 0 + 0 = 0
\]
扩展性
假设信源发生微小波动,使得信源空间变为
\[[X^{'} \cdot P]:
\begin{cases}
X: \quad &a_1 \quad &a_2 \quad &\ldots &a_r &a_{r+1}\\\\
P(X): \quad &p(a_1) \quad &p(a_2) &\ldots \quad &p(a_r)-\epsilon &\epsilon
\end{cases}
\]
则
\[\begin{aligned}
H(X^{'})&=\lim_{\epsilon \to 0}-\sum_{i = 1}^{r-1}p(a_i)logp(a_i) - (p(a_r)-\epsilon)log(p(a_r)-\epsilon) - \epsilon log\epsilon \\\\
&=-\sum_{i = 1}^{r-1}p(a_i)logp(a_i) - \lim_{\epsilon \to 0}p(a_r)log(p(a_r - \epsilon)) + \lim_{\epsilon \to 0}\epsilon log(p(a_r)-\lim_{\epsilon \to 0}\epsilon log \epsilon \\\\
&=-\sum_{i = 1}^{r}p(a_i)logp(a_i) \\\\
&=H(X)
\end{aligned}
\]
递推性
假设信源空间被划分为了\(r\)块,其信源空间为
\[[X \cdot P]:
\begin{cases}
X: \quad &a_1 \quad &a_2 \quad &\ldots &a_r \\\\
P(X): \quad &p(a_1) \quad &p(a_2) &\ldots \quad &p(a_r)
\end{cases}
\]
其熵为\(H(p(a_1),p(a_2),\ldots,p(a_r))\),假设\(p(a_r)\)又被划分为了\(m\)块,信源空间如下
\[[X \cdot P]:
\begin{cases}
X: \quad &a_1 \quad &a_2 \quad &\ldots &a_{r-1} &a_{r1} &a_{r2} &\ldots &a_{rm} \\\\
P(X): \quad &p(a_1) \quad &p(a_2) &\ldots \quad &p(a_{r-1}) &p(a_{r1}) &p(a_{r2}) &\ldots &p(a_{rm})
\end{cases}
\]
其中
\[p(r) = \sum_{i=1}^m p(a_{ri})
\]
则
\[p(a_{ri}) = p(r) \cfrac{p(a_{ri})}{p(r)}
\]
此时信源的熵为
\[\begin{aligned}
H(X) &= -(\sum_{i = 1}^{r -1}p(a_i)log p(a_i)+\sum_{n = 1}^m p_{a_{rn}}logp_{a_{rn}}) \\\\
&= - (\sum_{i = 1}^{r -1}p(a_i)log p(a_i)+\sum_{n = 1}^m p(a_r)\cfrac{p(a_{rn})}{p(a_r)}logp(a_r)\cfrac{p(a_{rn})}{p(a_r)}) \\\\
&= -(\sum_{i = 1}^{r -1}p(a_i)log p(a_i) + p(a_r)logp(a_r) + p(a_r)\sum_{n = 1}^m \cfrac{p(a_{rn})}{p(a_r)}log\cfrac{p(a_{rn})}{p(a_r)}) \\\\
&=H_r(p(a_1), \ldots, p(a_r)) + p(a_r)H_m(\cfrac{p(a_{r1})}{p(a_r)}, \ldots, \cfrac{p(a_{rm})}{p(a_r)})
\end{aligned}
\]
其中下标\(r,m\)代表信源空间中符号的个数。
极值性
可以在数学上证明\(H(p(a_1), \ldots, p(a_r))\)是上凸函数,所以\(H(p(a_1), \ldots, p(a_r))\)具有最大值,并且当
\[p(a_i) = \cfrac{1}{r}
\]
即信源发送每个符号的概率相等时具有最大值,且最大值为
\[H_r(\cfrac{1}{r}, \ldots, \cfrac{1}{r}) = -\sum_{i = 1}^r \cfrac{1}{r}log\cfrac{1}{r} = log r
\]