数据率失真理论(Rate distortion theory)或称信息率-失真理论(information rate-distortion theory)是信息论的主要分支,其的基本问题可以归结如下:对于一个给定的信源(source, input signal)分布与失真度量,在特定的码率下能达到的最小期望失真是多少;或者为了满足一定的失真限制,可允许的最大码率为何, D D D 定义为失真的符号。
要完全避免失真几乎不可能。处理信号时必须允许有限度的失真﹐可减小所必需的信息率。1959年﹐Claude Shannon 首先发表《逼真度准则下的离散信源编码定理》一文,提出了率失真函数的概念。
我们通常都通过一个失真度量(distortion measure)来衡量一个随机变量以及它的表示(representation)之间的距离。下面以一个例子为开始,介绍具体的率失真理论中的一些定义与定理。
1. 一个例子
假设一个随机变量 X X X,其一个表示定义为 X ^ ( X ) \hat{X}(X) X^(X),若我们使用 R R R个比特(bit)来表示 X X X,每个比特的数值为 0 0 0或 1 1 1,那么函数 X ^ \hat{X} X^可以有 2 R 2^R 2R中不同取值,那么我们现在的问题是找到一个 X ^ \hat{X} X^的最优值集(称为再生点(reproduction points)或码点(code points)),而目的是通过最小化定义的一个失真度量得到。
现在我们假设 X ∼ N ( 0 , σ 2 ) X \sim \mathcal{N}\left(0, \sigma^{2}\right) X∼N(0,σ2),同时假设一个平方误差的失真度量。目的则要通过最小化 E ( X − X ^ ( X ) ) 2 E(X-\hat{X}(X))^{2} E(X−X^(X))2从 2 R 2^R 2R个不同值中找到最优的 X ^ \hat{X} X^。举一个简单的例子,假设我们现在只能用一个比特来表示,那么 X ^ \hat{X} X^可以有两个不同的取值。由于分布是关于 0 0 0对称的,因此我们将是否 X > 0 X>0 X>0作为两种不同取值的划分标准。为使平方误差达到最小,函数 X ^ \hat{X} X^应该取其所在区域上 X X X的条件均值。将正态分布截断的分布称为半正态分布(Half-normal distribution),其期望为: 2 / π σ {\sqrt {2/\pi}} \sigma 2/πσ,因此有:
X ^ ( x ) = { 2 π σ if x ≥ 0 , − 2 π σ if x < 0. \hat{X}(x)= \begin{cases}\sqrt{\frac{2}{\pi}} \sigma & \text { if } x \geq 0, \\ -\sqrt{\frac{2}{\pi}} \sigma & \text { if } x<0 .\end{cases} X^(x)=⎩⎨⎧π2σ−π2σ if x≥0, if x<0.
而当比特数提升到两个甚至更多之后,区域的划分方法就不再这么简单了,需要将实轴划分为多个区域。但这些区域该如何划分,再生点应该怎样选取?为此,引入关于最优区域划分和再生点选取的两个性质:
- 给定一个再生点的集合 { X ^ ( w ) } \{\hat{X}(w)\} { X^(w)},通过将源随机变量 X X X映射到最接近它的表示 X ^ ( w ) \hat{X}(w) X^(w)来最小化失真。由这个映射定义的 X X X的区域集称为由再生点定义的Voronoi或Dirichlet划分(partition)。
- 再生点应该在各自划分到的区域上使条件期望失真最小化。
由上述两个性质可以得到一个简单算法:
- 首先从某个再生点集合开始,找到最优的再生区域集(在失真度量下的最邻近的区域);
- 再确定出这些区域的相应最优再生点。
迭代重复上述两个步骤,直到算法收敛于失真的一个局部极小值。
2. 一些定义
前面的例子中假设需要量化的是单个随机变量,而通常实际情况中,我们通常假设 n n n个独立同分布的随机变量集合,共需要 n R nR nR比特来表示。
假设某信号源产生的序列(信源序列) X 1 , X 2 , ⋯ , X n ∼ i . i . d . p ( x ) X_1, X_2, \cdots, X_n \stackrel{i.i.d.}{\sim}p(x) X1,X2,⋯,Xn∼i.i.d.p(x),信源序列 X n X^n Xn的编码用 f n ( X n ) ∈ { 1 , 2 , … , 2 n R } f_{n}\left(X^{n}\right) \in\left\{1,2, \ldots, 2^{n R}\right\} fn(Xn)∈{ 1,2,…,2nR}进行表示, X n X^n Xn的译码则用估计形式 X ^ n \hat{X}^n X^n表示。具体如下图所示:
失真函数/度量: 失真函数(distortion function)或失真度量(distortion measure)指从信源空间与再生空间的乘积空间到非负实数集上的映射:
d : X × X ^ → R + d: \mathcal{X} \times \hat{\mathcal{X}} \rightarrow \mathcal{R}^{+} d:X×X^→R