写在前面:本文是参照傅祖芸老师编写的信息论——基础理论与应用编写的学习笔记,其中包含相当数量的不足之处,欢迎在评论区指出。另外,为了提高作者的书写体验与连贯性,本文将只对一些重要或有趣的定理定律进行严谨的证明。总而言之,把它当睡前故事看吧
好,睡前先来听香农先生说点话吧
信息传输系统的模型
跳过繁琐且无趣的定义环节,对书本上一大坨的信息传输系统模型进行简化
其中信源信宿如同图中所示,是消息的产生方与接收方。
编码器与译码器分别的作用是进行将消息转化成可以被信道传输的信号与将信号转化成可以被信宿识别的消息。
信道是传输由编码器传化出来的信号的媒介
拿小时候做过的纸杯电话筒游戏来说,信源和信宿分别是发出声音的嘴和听到声音的耳朵;编码器和译码器是两端的纸杯,它们将声音信号转化成绳子可以传输的振动信号;信道是连接两个听筒的绳子,在传输的途中绳子可能收到风、障碍物等的影响导致信宿接收的信号与信源发出的信号不一致,这里的风就是信号传输过程中的噪声
在信息论基础学习笔记(1)中,主要对信源进行描述
信源的数学模型
拿出我们在概率论与数理统计的学习中用过的骰子,可以发现它会出现这几种情况
“向上的点数是1点”
“向上的点数是2点”
“向上的点数是3点”
“向上的点数是4点”
“向上的点数是5点”
“向上的点数是6点”
下面是一个离散信源的例子
在信息论中,我们将这个骰子看成一个信源,那么上面这些情况就是它可能产生出来的信息。将这些信息分别按照
a
i
=
向上的点数是
i
点
a_i=向上的点数是i点
ai=向上的点数是i点的格式与他们对应的概率排布在一起
[
X
P
(
x
)
]
=
[
a
1
a
2
a
3
a
4
a
5
a
6
1
6
1
6
1
6
1
6
1
6
1
6
]
\left[ \begin{array}{c} X\\P(x) \end{array}\right]=\left[ \begin{array}{c} a_1\ a_2\ a_3\ a_4\ a_5\ a_6\\\frac{1}{6}\ \ \ \frac{1}{6}\ \ \frac{1}{6}\ \ \ \frac{1}{6}\ \ \ \frac{1}{6}\ \ \frac{1}{6} \end{array}\right]
[XP(x)]=[a1 a2 a3 a4 a5 a661 61 61 61 61 61]
其中元素
a
i
a_i
ai被称作信源输出的符号,
P
(
x
)
P(x)
P(x)被称作每个符号
a
i
a_i
ai被输出的先验概率
上式就是常用的离散信源数学模型表示方法,其中
Σ
P
i
(
x
)
=
1
\Sigma P_i(x)=1
ΣPi(x)=1表示这个概率空间是一个完备集,即骰子信源只能输出
[
1
,
6
]
[1,6]
[1,6]中的整数点数。
有些读者自然而然地从上面离散随机变量的例子联想到产生连续随机变量的实验设备能否作为产生连续信源进而推出连续信源的数学模型表示方法。先说结论,是可以的,形式如下
[
X
P
(
x
)
]
=
[
(
a
,
b
)
p
(
x
)
]
\left[ \begin{array}{c} X\\P(x) \end{array}\right]=\left[ \begin{array}{c} (a,b) \\p(x) \end{array}\right]
[XP(x)]=[(a,b)p(x)]
且满足
∫
p
(
x
)
d
x
=
1
\int p(x)dx=1
∫p(x)dx=1
但是作者懒(笑 与之后的内容无法形成有机连接,因此下面的讲解若无特殊说明都是按照离散信源讲解。
对于有一些信源来说,先验概率 P ( x ) P(x) P(x)的统计是很困难的,比如一副RGB图象上的所有像素点组成的RGB信源,在它的概率空间上每一点输出的符号都是随机的RGB值。这种信源输出的符号序列被称作随机序列,记为 X = ( x 1 x 2 x 3 x 4 … x n ) X=(x_1x_2x_3x_{4…}x_n) X=(x1x2x3x4…xn)。
这样的信源的统计与分析显然是困难的,与之对应的是先验概率 P ( x ) P(x) P(x)不随任何因素变化的信源,如上面骰子的例子,这样的信源被称为平稳信源,或是更具体的平稳离散信源。
在平稳信源中,有一些信源的先验概率与前驱元素有着强相关性,这些就被对中文输入中,对于所有中文字符与标点符号组成的样本空间 X X X,其对应的先验概率 P ( x ) P(x) P(x) 显然是和前驱元素有关,这种信源被称为有记忆信源,当记忆长度达到m+1(输出符号与前m个元素有关)是,它被称为m阶马尔可夫信源。同时,它的先验概率变成了条件概率 P ( x i ) = p ( x i ∣ x i − 1 x i − 2 x i − 3 x i − 4 … x i − m ) P(x_i)=p(x_i|x_{i-1}x_{i-2}x_{i-3}x_{i-4}…x_{i-m}) P(xi)=p(xi∣xi−1xi−2xi−3xi−4…xi−m)
离散信源的信息熵
在上一节中,我们给出了离散信源的数学模型,它是一个离散型的概率空间。在这节中我们会给出信息的量化方法,它的本质是衡量获取信息前后消除不确定性的量。
先来看一个例子
掏出8个小灯泡并把它们串联起来,如图
-(x)-(x)-(x)-(x)-(x)-(x)-(x)-(x)-
现在有一个灯泡是损坏的,在未测量时我们很容易根据先验分布知道每个灯泡损坏的先验概率是 1 8 \frac{1}{8} 81
之后,我们万用表按照二分法测量是否断路,如图
-(x)-(x)-(x)-(x)-(x)-(x)-(x)-(x)-
|…d…d…d…|
|–(万用表)—|(不要管上面的d,缩进用的)
测量之后就可以判断剩下的四个灯泡损坏的后验概率是 1 4 \frac{1}{4} 41
这时我们发现收到万用表测量结果这个消息之后,每个灯泡损坏的概率降低了
1
4
\frac{1}{4}
41。这个数字不是我们平时看到的比特的形式,但你别急,先来点无聊的符号表示
我们用
I
(
P
(
x
)
)
I(P(x))
I(P(x))来表示事件x不确定性的量——I是information的缩写,此时我们通过测量的行为消除的不确定性的量是
I
[
P
1
(
x
)
]
−
I
[
P
2
(
x
)
]
I[P_1(x)]-I[P_2(x)]
I[P1(x)]−I[P2(x)]
在没有噪声(干扰)的情况下,我们收到的信息可以完全消去不确定性,也就是说
I
[
P
2
(
x
)
]
=
0
I[P_2(x)]=0
I[P2(x)]=0
另一方面,我们收到大量信息比如听铃鹿的睡前故事 国足出线的时候往往会猪脑过载,而收到例如明天太阳会升起之类的信息时一般没什么反应。本着量化的目的,我们将前一种收到的信息量定义成
+
∞
+\infty
+∞,而后一种的信息量是
0
0
0。
回到上面的例子,
I
[
P
1
(
x
)
]
−
I
[
P
2
(
x
)
]
I[P_1(x)]-I[P_2(x)]
I[P1(x)]−I[P2(x)]因为消去了不确定性,获得了信息,因此获得的信息量显然是一个正值。按照归纳法,当
P
(
x
1
)
>
P
(
x
2
)
时,
I
(
P
(
x
1
)
)
>
I
(
P
(
x
2
)
)
P(x_1)>P(x_2)时,I(P(x_1))>I(P(x_2))
P(x1)>P(x2)时,I(P(x1))>I(P(x2))让我们猜猜哪个函数在
[
0
,
1
]
[0,1]
[0,1]上,不但单调递减还大于零而且两个端点值还分别是
+
∞
和
0
+\infty和0
+∞和0。当然是我(1/P(x)-1)(划掉)
−
l
o
g
P
(
x
)
-logP(x)
−logP(x)哒
因此,我们终于可以量化本章开头那个例子获取的信息量了:
g
e
t
i
n
f
o
r
m
a
t
i
o
n
=
−
log
2
1
8
−
log
2
1
4
=
1
b
i
t
get information=-\log_{2}{\frac{1}{8}}-\log_{2}{\frac{1}{4}}=1bit
getinformation=−log281−log241=1bit
读者注意了上面对信息的量化是有单位的,这是因为我们选取2作为对数的底数,这个单位叫做Bit比特。熟悉吗,就是平时在内存中见到的kb(kilobit)的基础单位。常见的单位还有自然对数e为底数时的奈特,10为底数时的哈特。
好了,话说完了,你可以请睡觉了
下期预告:
“你这平均量!”
初次见面就称之为平均?!