当咱们说“A与B通讯”时,咱们本质意思是在说A的物理行为使B产生一种须要的物理状态。信息的传输是一个物理过程,所以,必然受到没法控制的周边噪声以及信号处理自己缺陷的影响。若是接受者B与传输者A就所传输的内容是一致的,那么说此次通讯是成功的。网络
在数据压缩和数据传输之间存在对偶性:less
这么看起来,数据压缩和数据传输的目标是彼此对抗的,没法同时达到最优。通常地,通讯系统能够分为两部分,并且数据压缩与数据传输问题能够分开单独考虑和设计,通讯系统设计的目标就是让这两个目标总体达到最优。机器学习
假设A与B在经过某种物理渠道(或抽象物理结构)进行通讯,在n次使用信道下,咱们能够计算出可区分的信号的最大数目。该数与n成指数增加关系,这个指数就是所说的信道容量。信道容量(可区分的信号数目的对数值)被特征化为最大互信息,是信息论中一个关键问题。函数
下图给出了一个物理发送信号系统的数学模拟。工具
信道容量理论研究的问题,并非讨论一个物理通道最大能传输的极限信息,而是在保证很是低偏差的状况下,能达到的理论传输率。有明确的理论能够支撑证实,咱们可以以很高的几率从输入序列中挑选出一个“不会混淆”的子集,使得对于每个特定的输出序列,只存在惟一的一个输入最有可能致使该输出。因而,在可忽略的偏差几率状况下,能够在输出端重构输入序列。学习
将信源映射到适合于输入信道的“足够分散的”输入序列集合,咱们可以以很是低的偏差几率传输一条消息,而且在信道的输出端重构出这个信源消息。可实现的最大的码率称做该信道的容量。优化
这个小节,咱们经过几个典型例子,来从不一样角度看一下信道容量的决定因素。编码
以下图所示,它的二元输入在输出端能精确地重现:spa
无噪声二元信道,C=1比特设计
在这种状况下,任何一个传输的比特都能被无偏差地接收到。所以,每次使用该信道,均可以毫无偏差地传输一个比特,信道容量就是1比特。
另外一方面,也能够计算获得信息容量C=maxI(X;Y)=1比特,且在p(x)=(1/2,1/2)时达到。
这种信道对于两个输入中的每个,均有两个可能的输出,以下图所示:
无重叠输出的有噪声信道,C=1比特
这种信道虽然有噪声,可是依然能够根据输出精确肯定输入,只是须要更多的信息。
所以,该信道的容量仍然是1比特/传输,也能够计算出该信道的信息容量C=maxI(X;Y)=1比特,且在p(x)=(1/2,1/2)时达到。
在这种信道中,信道输入以几率1/2在输出端精确接收,或以1/2几率转变为下一个字母,以下图所示:
有噪声信道
从上图能够看到,从输出端存在彼此交叠重合,没法从输出端精确地还原出输入端。为了解决这个问题,能够参考上一节的例子,将输出端以间隔的方式进行编码映射,以此获得独立同分布的无噪声输出端几率分布。
若输入端有26个字符,并以间隔的方式使用输入字符,以下图所示,
那么在每次传输过程当中,能够毫无偏差地传输其中的13个字符。所以,该信道的容量为log13比特/传输,也能够计算获得信道的容量:
C=maxI(X;Y) = max[H(Y) - H(Y|X)] = max(H(Y)) - 1 = log26 - 1 = log13比特,且当p(x)为整个输入字母表上的均匀分布时达到该最大容量
考虑下图所示的二元对称信道(binary symmetric channel,BSC),这个二元信道的输入字符以几率p互补,这是一个有偏差信道的最简单典型模型。
在出现错误时,0做为1收到,或者正好相反。从接收到的比特中咱们并不能看出哪里发生了错误。从某种意义上说,全部接收到的比特都不可靠。可是信道噪声定理告诉咱们,咱们仍然可使用这样的通讯信道以非0的传输码率发送信息,而且偏差几率任意小。
这里给出互信息的一个界,
最后一个不等式成立是由于Y是一个二元随机变量,当输入分布是均匀分布时等号成立。所以,参数为p的二元对称信道的信息容量是:C = 1 - H(p)比特。
从公式中能够看到,信道输出端的几率分布越均匀,则信道容量越小。
有一种信道相似于二元对称信道,会直接损失一些比特(丢失信息),这种信道称做二元檫除信道(binary erasure channel)。在二元檫除信道中,比例为a的比特被檫除掉,而且接受者知道哪些比特已经被檫除掉了,以下图所示:
二元檫除信道,两个输入,三个输出
计算二元檫除信道的容量以下:
从公式上咋一看,彷佛H(Y)的的最大值是log3,但不管选择什么输入分布p(x),都没法达到这个值。设E表明事件{Y=e},并使用表达式:
设Pr(X=1)=π,咱们有,
所以,
,其中,当π=1/2时,达到该信道容量
这个信道容量的表达式有很强的直观意义:因为比例为α的比特在信道中损失,于是咱们至多可以恢复比例为1-α的比特输入信息。所以,信道容量最多为1-α。
从上面的几个例子讨论能够获得一个归纳性的结论,信道容量由两部分组成:
笔者思考:
从信道容量这个视角来看机器学习模型的训练和拟合过程,咱们能够将一个训练集抽象理解为一个通讯信道,训练集信道的目的是经过抽样方法,获得一个目标函数的典型集,典型集中包含了目标函数的信源信息。对于训练集自身来讲,咱们的目的老是但愿训练集中包含的有用信息尽可能多,也就说,咱们的目标是”让训练集信道的信道容量尽可能大“,那如何让信道容量尽可能大呢?由前面的结论咱们能够获得几点启发:
Relevant Link:
《信息论基础》阮吉寿著 - 第七章
离散信道是数字通讯中,最经常使用的抽象模型,咱们本文的讨论对象也是针对离散信道。
离散信道是由:
三部分构成的系统,以下图所示,
取自下标集的消息W,产生信号
,这个信号以随机序列
的方式被接受者收到。而后,接受者使用适当的译码规则
猜想消息W。若是
与所传输的消息W不一样,则代表接受者出错。下面咱们用数学符号严格定义这些概念,
用表示的离散信道由两个有限集X和Y以及一簇几率密度函数p(y|x)构成,其中对任意的x与y,有p(y|x)>=0,以及对任意的x,有
,而X和Y分别看作信道的输入与输出。
值得注意的是,若是输出的几率分布仅依赖于它所对应的输入,而与先前通讯的输入或者输出条件独立,就称这个信道是无记忆的(memoryless),值得注意的是,马尔科夫过程也是一种无记忆过程。本文在讨论离散无记忆信道时,如无特别说明,通常都是指不带反馈的离散无记忆信道。
离散无记忆信道的“信息”信道容量(channel capacity)定义为:
,这里最大值取全部可能的输入分布p(x)
从随机过程熵率的角度来看,信道容量定义为信道的最高码率(比特/信道使用),在此码率下,信息可以以任意小的偏差几率被传输。香农第二定理代表,信道容量等于这个可操做的信道容量。
离散无记忆信道(DMC)的n次扩展是指信道,其中
,即进行n次通讯的通讯过程。
由于是无记忆的,离散无记忆信道的n次扩展的信道转移函数能够简化为,
信道的(M,n)码由如下部分构成:
这个小节,咱们来讨论下信道容量的几个典型性质,
设,
为已知下标 i 被发送的条件下,接受者译码错误的条件几率(conditional probability of error),其中 I(.) 为示性函数。
(M,n)码的最大偏差几率λ(n)(maximum probability of error)定义为,
(M,n)码的(算术)平均偏差几率Pe(n)(average probability of error)定义为,
显然有,
(M,n)码的码率R(rate)为,
进一步的,若是存在一个码序列,知足当
时,最大偏差几率
,则称码率R是可达的(achievable)。
信道的容量定义为:全部可达码率的上确界。
因而,对于充分大的分组长度,小于信道容量的码率对应的偏差几率能够任意小。
Relevant Link:
《信息论基础》阮吉寿著 - 第七章
所谓联合典型序列,简单地说,就是若是码字与接收到的信号
是”联合典型“的话,就将信道输出
译为第 i 个下标。
服从分布p(x,y)的联合典型序列所构成的集合
是指其经验熵与真实熵ε接近的n长序列构成的集合,即:
其中,
设(Xn,Yn)为服从的i.i.d.的n长序列,那么,
下图是关于联合典型集的示意图,
大约有2nH(X)个典型的X序列和大约2nH(Y)个典型的Y序列。可是,联合典型序列只有2nH(X,Y)个,因此并非全部典型的Xn与典型的Yn构成的序列对都是联合典型的。
随机选取的序列对是联合典型的几率大约为2-nI(X;Y)。所以,咱们可能须要考虑约2nI(X;Y)这样的序列对,才可能遇到一个联合典型对,这代表存在大约2nI(X;Y)个可区分的信号Xn。
着眼于上述问题的另外一种方式是考虑固定输出序列Yn下的联合典型序列集,这里假定该输出序列来自真实的输入信号Xn。对于序列Yn,大约存在2nH(X|Y)个条件典型的输入信号。某个随机选取的(其余)输入信号Xn与Yn为联合典型的几率大约等于。
这再次代表,咱们可能选取出大约2nI(X;Y)个码字Xn(W),才能使其中的一个码字与产生输出Yn的对应码字混淆起来。
Relevant Link:
《信息论基础》阮吉寿著 - 第七章
前面的章节中咱们已经讨论了离散无记忆信道的信息容量定义,即容量能够视为可以在该信道中可靠传输的比特数。咱们这小节将尝试给出一个直观思路,解释为何能经过信道来传输C比特的信息。
基本的思路是,对于大的分组长度,每一个信道能够看做是有噪声打字机信道(前面章节提到),由此每一个信道都有一个输入子集,使得在输出端接收到的序列基本互不相交。
对于输入的每一个n长序列,会有大约2nH(Y|X)个可能的Y序列与之对应,而且全部这些序列是等可能的(AEP定理),以下图所示,
咱们但愿确保没有两个X序列可以产生相同的Y输出序列,不然,将没法判断到底传输的是哪一个X序列。
全部可能的Y序列的总数约等于2nH(Y),对应于不一样的输入X序列,这个集合分割成大小为2nH(Y|X)的小集合。因此不相交集的总数小于等于。所以,咱们至多能够传输
个可区分的n长序列,这就是所谓的信道容量。
信道编码定理最初的证实由香农在1948年的开创性论文中给出。该结果与直观感受正好相反,若是在信道传输过程当中存在偏差,那么如何纠正全部偏差?任何纠错过程自己也受到偏差的影响,这样将无穷无尽地进行下去。
香农证实,只要码率小于信道容量,信息就能够经过该信道可靠地传输,香农在证实中使用了不少精妙的思考,包括:
香农的概述性证实基于典型序列、随机码选择的思想(计算随机选择的码字的平均偏差几率)等等。
即寻找一个与收到的序列是联合典型的码字,若是找到惟一知足该性质的码字,咱们则认为这就是被发送的码字。
依据前面所讨论的联合典型性的性质,因为发送的码字与接收到序列是几率相关的,因此他们以很高的几率成为联合典型。而且,任意其余码字与接收到的序列是联合典型的几率是2-nl,所以,若是码字个数小于2nI,那么能够以很高的几率判定不会有其余的码字可以与被传输的码字相混淆,而且偏差几率很小。
虽然联合典型译码是次优的,可是它便于分析并且能够达到小于信道容量的任何码率。
对于离散无记忆信道,小于信道容量C的全部码率都是可达的。具体来讲,对任意码率R<C,存在一个(2nR,n)码序列,它的最大偏差几率为。反之,任何知足
的(2nR,n)码一定有R<=C。
值得注意的是,虽然这个定理说明了对于大的分组长度,存在偏差几率任意小的好码,但它并无提供一种构造最佳码的方法。若是使用定理证实中的方法,根据适当的分布随机地生成一个码,那么对于充分大的分组长度,这样构造出来的编码多是最好的。
然而,因为该编码中缺少某个结构,译码将是很是困难的,所以,这个定理并不能提供一个实际的编码方案,而仅仅只是一个方法论,咱们后面会具体讨论具体的易于编和译的构造性编码,例如汉明(Hamming)码,它在每一个比特分组中纠正一个错误。
在容许彻底无偏差的状况下,咱们来从新论证一次信道编码定理。首先证实蕴含结论R<=C。
假定有一个零偏差几率的(2nR,n)码,也就是说,译码器输出的g(Yn)以几率1等于输入的下标W。那么,输入下标W彻底由输出序列决定,即。
为了得到更强的界,随意假定W服从上的均匀分布,因而,H(W) = nR。从而,咱们有以下不等式推导过程,
其中,
所以,对任何零偏差的(2nR,n)码及全部的n,有:
下面将零偏差码的证实过程推广到具备很是小偏差几率的编码,证实须要用到的新工具就是费诺不等式,它依据条件熵给出偏差几率的下界。
这里先给出费诺不等式的定义,下标W服从集合上的均匀分布,序列Yn与W是几率相关的。经过Yn来估计被发送的下标W。设
为其估计,那么,W->Xn(W)->Yn->W‘行程马尔柯夫链,注意到偏差几率为:
咱们给出下面的引理,
【费诺不等式】设离散无记忆信道的码簿为C,且输入消息W服从2nR上的均匀分布,则有,
【信道容量不变定理】设Yn为Xn通过容量C离散无记忆信道传输所获得的输出信号,则,
,对于任意的p(xn)
上式说明屡次使用信道并不增长每次传输的信心容量比特。
笔者总结:
本质上讲,当R<C时,能够以任意低的偏差几率传输信息;而当R>C时,偏差几率将远离0。最佳的码率就是信道容量。
Relevant Link:
《信息论基础》阮吉寿著 - 第七章
信道编码定理使用分组码的方案,若是分组长度足够大的话,当码率小于信道容量时,能够用分组码以任意低的偏差几率传输信息。香农在其开创性论文中提出了获得这种码的一种概述性方法,此后人们一直在寻找这样的码。除了要达到低的偏差几率以外,还须要具有简单的特性,以保证能够大规模进行有效编码和译码。咱们本章介绍由汉明开发的一种最简单的方案,它能够说明大多数码所共有的一些基本思想。
编码的目的是经过增长冗余使得在一些信息损失或者损坏的状况下,扔可能由接受者恢复出原始的消息。
一种最显而易见的编码方案是重复信息,例如,为了发送一个1,咱们发送11111,为了发送一个0,咱们发送00000。这一方案使用5个字符来传输1比特,所以码率为1/5比特/字符。若是在二元对称信道中使用这样的码,最优的译码方案就是将接收到的每一个5比特分组译为其中占多数的比特。显然,当且仅当超过3/5的比特发生错误时,才会致使译码错误。经过使用更长的重复码,能够达到任意小的偏差几率。可是,随着分组长度的增长,码率也趋于0,所以,一个”最简单的“编码,不必定是一个很是实用的编码。
替代这种简单的重复比特方法,能够用某种巧妙的方式将比特联合起来,使得每个额外的比特均可以用来检验某个信息比特子集中是否发生错误。
一个简单的例子就是奇偶校验码,从n-1个信息比特的分组出发,选取第n个比特,使得整个分组的奇偶校验数为0。这样,若是在传输过程当中发生了奇数次错误,那么接受者可以注意到奇偶性的变化,并察觉到错误,这就是检错码(error-detecting code)最简单的例子。可是要注意的是,该编码既不能察觉到出现偶数次错误,也不能提供任何有关纠正这些错误的信息。
咱们能够推广奇偶校验的思想,容许存在多个奇偶校验位,也能够容许奇偶校验依赖于各类各样的信息比特子集。
接下来要讨论的汉明码就是奇偶校验码的一个例子,咱们会利用线性代数中的一些简单思想来描述它。
为了说明汉明码的基本思想,考虑分组长度为7,单个码字长度为3的非0二元向量的集合,以它们为列向量构成一个矩阵:
考虑H的零空间(与H相乘获得000的向量)中长度为7的向量的集合。由线性空间理论,由于H的秩为3,故指望H的零空间的维数为4,这24个码字以下:
因为这个码字集是矩阵的零空间,因此从任意两个码字的和扔是一个码字的意义上看,这是一个线性空间。所以,码字集造成7维向量空间中的一个4维线性子空间。
观察这些码字,不难注意到除了全是0的码字外,任何码字中1的最小数目为3,该最小数称为码的最小重量(minimum weight)。能够看出,因为H的全部列互不相同,没有两列的和能够为000,所以码的最小重量至少为3。
基于任意两列的和必然为该矩阵中某一列的事实,咱们能够推出最小距离刚好为3。因为该码是线性的,任意两个码字的差还是一个码字,所以,任意两个码字之间至少在3个位置上有所不一样。
两个码字不一样的最小位置数称为该码的最小距离(minimum distance)。码的最小距离是用来表示码字之间相隔多远的一个度量,而且能够决定在信道的输出端码字之间差别的程度。对线性码来讲,最小距离等于最小重量,咱们的目的是设计出最小距离尽量大的码(信道编码定理)。
上述码的最小距离是3,所以,若是码字c仅占一个位置损坏,那么产生新字符串将与其余任何码字之间至少存在两个位置上是不用的,它与c更加接近。根据香农给出的联合典型码思想,依然能够根据似然译码获得码字c。可是,是否能够经过穷举搜索就发现哪个是距离最近的码字呢?
回答是确定的!能够利用矩阵H的结构译码!
矩阵H称做奇偶校验矩阵(parity check matrix),具备以下性质:
对任意码字c均有Hc = 0,设ei是第 i 个位置为1其他位置为0的向量。若是码字的第 i 个位置损坏,则接收到的向量为 r=e+ei,若是将矩阵H与接收到的向量相乘,则获得,
这正好是H的第 i 列向量。所以,经过计算Hr,就能够发现接收向量的哪个位置损坏的,还原该位置上的值就获得一个码字。这样就有了一个简单的程序用来纠正接收序列中的一个错误。
咱们已经构造出分组长度为7的16个码字组成的码簿,它能纠正至多一个错误,这个码就是汉明码(Hamming code)。
至此,咱们尚未给出明确的编码程序,咱们继续明肯定理汉明码,
通常地,让码字的前k个比特表明消息,然后面n-k个比特留做奇偶校验位,这样获得的编码称做系统码(systematic code)。该码每每由它的分组长度n,信息比特数k,以及最小距离d三个参数来决定。例如,上述编码称做(7,4,3)汉明码。
能够用简单的文氏图表示来解释汉明码的工做原理,为了发送信息序列1101,将序列中的4个信息比特分别放在图中4个相交的区域中,而后在剩余的区域中各放置一个校验位使得每一个圈中的校验结果为偶数(即每一个圆中有偶数个1),以下图,
如今不妨假设其中的一个比特被改变了,以下图中,有一个信息比特从1变成了0,
此时,有两个圆违背了原先的校验约束(图中加黑部分)。于是,当咱们知道了这两个约束违背,不难看出,致使产生约束违背的这个单一的比特错误只可能在两圆的相交部分发生。
相似地,经过分析其余情形,能够看出,这种码能够检测并纠正发生在接收码字中的任何单个比特错误
很容易推广这一程度来构造更大的矩阵H。通常来讲,若是使用矩阵H中的 l 行,那么所得编码的分组长度为 n=2l-1,k=2l-l-1,以及最小距离为3。全部这些码都称做汉明码,并能够纠正一个错误。
汉明码是全部线性奇偶校验码中最简单的例子,经过汉明码说明了构造其余线性码的基本原则,即分组码(block code)---- 将一组信息比特映射成一个信道码字,且不依赖于过去的信息比特。
Relevant Link:
《信息论基础》阮吉寿著 - 第七章
这章咱们来讨论一个问题,为了节省传输进行了数据压缩(R>H)和用户信道传输的信道编码(R<C)是彼此独立的仍是互相依赖的呢?
例如,考虑经过离散无记忆信道传输数字语音或音乐,设计一个码,将语言样本序列直接映射成信道的输入信号,或者先将语音压缩成最有效的格式,而后使用适当的信道编码从该信道将他发送出去。因为数据压缩不依赖于信道,而信道编码又不依赖于信源分布。
在这章中,咱们将证实:在有噪声信道中,数据压缩和信道编码这两个步骤是彼此独立的。这意味着,能够将通讯系统的设计转化成信源编码与通讯编码两个部分的组合。这种组合的方法与将两个问题一块儿考虑所能设计出的任何方法同样有效。
数据的一般表示是二元字母表,最现代的通讯系统是数字化通讯系统,而且为了能在一般的信道上传输,数据简化为二进制表示。这使复杂度大大减少,像ATM和因特网这样的网络系统容许语音、视频和数字数据共用相同的通讯信道。
如今对上述讨论问题作一个严格的定义,假设有一个信源V,从字母表V中生成字符。对于由V生成的随机过程,除了要求其取值于有限字母表且知足AEP以外,不作任何假设。这种过程的例子包括独立同分布的随机变量序列和平稳不可约马尔柯夫链的状态序列。任何平稳遍历信源均知足AEP。
如今想经过信道发送字符序列,而且保证接受者能够重构序列。为了达到这个目的,将序列映射成码字
,经过信道发送这个码字。接受者观察接收到的序列Yn后,给出发送序列Vn的估计
。若是
,则接受者犯了错误,咱们定义偏差几率为:
其中 I 为示性函数,为译码函数,这个系统以下图所示,
若是V1,V2,....,Vn为有限字母表上知足AEP和H(v)<C的随机过程,则存在一个信源信道编码使得偏差几率。反之,对任意平稳随机过程,若是H(v)>C,那么偏差几率远离0,从而不可能以任意低的偏差几率经过信道发送这个过程。
证实:可达性。
证实前半部分的重点就是此前描述的两步骤编码,因为已经假定随机过程知足AEP,因此必然存在一个元素个数<=2n(H(v)+ε)的典型集Aε(n),它拥有几率的绝大部分。仅对属于这个典型集的信源序列进行编码,其他全部序列将产生一个错误,它对偏差几率的贡献不会超过ε。
给Aε(n)中的全部序列加上下标,因为至多有2n(Hv+ε)个这样的序列,n(H+ε)比特足以给出它们的下标了,若是
咱们能以小于ε的偏差几率将须要的下标发送给接收者,接收者能够经过穷举典型集Aε(n),选择与被估计下标相应的序列,从而重构出Vn。这个序列将以很高的几率与传输序列相一致。具体来讲,对充分大的n,咱们有,
所以,若是
那么对于充分大的n,咱们可以以低的偏差几率重构出序列。
联合信源信道分离定理促使咱们将信源编码问题从信道编码问题中独立出来考虑,
分离定理代表,分离编码器与联合编码器可以达到相同的码率,咱们能够独立地涉及信源码和信道码,而后结合二者达到最优的效果,
总结一下,
Relevant Link:
《信息论基础》阮吉寿著 - 第七章
TODO