On Deep Learning-Based Channel Decoding 论文笔记

摘要

我们重新考虑使用深度神经网络对随机和结构化码字(例如极性码字)进行一次性解码。 虽然可以为码字族和短码字长度实现最大后验(MAP)误码率(BER)性能,但我们观察到(i)结构化码字更容易学习和(ii)神经网络能够生成在结构化训练期间从未见过的码字,而不是随机码字。 这些结果提供了一些证据,表明神经网络可以学习一种解码算法,而不仅仅是一种简单的分类器。 我们引入了度量标准化验证错误(NVE),以进一步研究基于深度学习的解码在性能和复杂性方面的潜力和局限性。

简介

基于深度学习的信道解码由于维度的灾难难以实践[1]:对于长度为N = 100且码率r = 0.5的短码,存在2^50个不同的码字,在实践中这些码字太多而无法完全训练任何神经网络 (NN)。那么NN可以被训练用于实际块长度的唯一方法是, 如果NN可以学习某种形式的解码算法,它可以从一小部分码字的训练中推断出完整的码本。 然而,为了能够学习解码算法,码字本身必须具有一些基于简单编码规则的结构,如卷积或代数码字的情况。 本文的目的是阐明结构化代码是否比随机代码更容易“学习”的问题,以及NN是否可以解码在训练期间从未见过的码字。

我们要强调的是,这项工作是基于非常短的块长度,即N≤64,它能够与最大后验(MAP)解码进行比较,但对物联网(IoT)等实际应用也有兴趣由于指数训练的复杂性,我们目前仅限于短码字[1]。 因此,神经网络解码(NND)概念目前与现有技术的解码算法不具竞争性,该算法在过去几十年中已被高度优化并且可扩展到任意块长度。

然而,可能存在某些促进学习过程的码字结构。 我们的一个重要发现是结构化码字确实比随机码字更容易学习,即需要更少的训练时期。 另外,我们的结果表明,只要码字具有结构,NN就可以在仅看到示例的子集之后概括或“内插”到完整码本。

深度学习的信道编码

深度学习理论在[16]中得到了全面的描述。 然而,为了完整起见,我们将简要解释主要思想和概念,以便为信道(解)编码及其术语引入NN。 NN由许多连接的神经元组成。 在这样的神经元中,所有的加权输入相加,可选地增加偏差,并且结果通过非线性激活函数传播,例如,sigmoid函数或整流线性单元(ReLU),它们分别定义为(公式见论文)

如果神经元在没有反馈连接的情况下排列成层,我们就会提到前馈NN,因为信息在没有反馈的情况下从左向右流过网络(见图1)。 具有ni输入和mi输出的每个层i执行映射f(i),以神经元的权重和偏差作为参数。 将v表示为NN的输入,将w表示为NN的输出。输入输出映射由一系列函数定义,具体取决于参数集

为了找到NN的最佳权重,需要一组已知输入 - 输出映射的训练集,并且必须定义特定的损失函数。 通过使用梯度下降优化方法和反向传播算法[3],可以找到NN的权重,其最小化训练集上的损失函数。 训练的目标是使NN能够为看不见的输入找到正确的输出。 这称为泛化。 为了量化泛化能力,可以确定尚未用于训练的数据集的损失,即所谓的验证集。

在这项工作中,我们希望使用NN来解码噪音码字。 在发射机处,k个信息比特被编码成长度为N的码字。编码比特被调制并在有噪声的信道上发送。 在接收器处,接收到噪声版本的码字,并且解码器的任务是恢复相应的信息比特。 与迭代解码相比,NN通过仅传递每一层一次来找到其估计。 由于此原则支持低延迟实现,我们将其称为一次性解码。

获得标记的训练数据对于机器学习领域来说通常是非常困难和昂贵的任务。 但是使用NN进行信道编码是特殊的,因为我们处理的是人造信号。 因此,我们能够生成尽可能多的训练样本。 此外,也可以免费获得所需的NN输出,也称为标签,因为如果产生有噪声的码字,则显然已知所发送的信息比特。 为简单起见,使用二进制相移键控(BPSK)调制和加性高斯白噪声(AWGN)信道。 其他信道可以直接采用,正是这种灵活性可能是基于NN的解码的特殊优势。

为了使训练集保持较小,可以使用附加层扩展NN,以调制和增加噪声(见图1)。 这些附加层没有可训练的参数,即它们执行某些动作,例如添加噪声并仅将该值传播到具有相同索引的下一层的节点。 不是创建并因此存储相同码字的许多噪声版本,而是在无噪声码字上工作就足够了。 因此,训练集X由所有可能的码字(标签是相应的信息位)并由(论文公式)给出。

正如[16]中所推荐的,每个隐藏层都采用ReLU激活函数,因为它是非线性的,同时非常接近线性,这有助于优化。 由于输出层表示信息位,因此sigmoid函数迫使输出神经元处于0和1之间,这可以解释为发送“1”的概率。 如果概率接近标签的位,则损失应仅略微增加,而大的误差应导致非常大的损失。 这种损失函数的示例是均方误差(MSE)和二进制交叉熵(BCE),分别定义为(公式见论文)

这种设置有一些替代方案。 首先,可以使用对数似然比(LLR)值代替信道值。 对于AWGN信道上的BPSK调制,可以通过以下方式获得(公式见论文)

该处理步骤也可以实现为没有任何可训练参数的附加层。 注意,在这种情况下必须知道噪声方差,并将其作为NN的附加输入提供。将输出层中的信息位表示为长度为2^k的one-hot编码矢量是另一种变体。 但是,我们避免这个想法,因为它没有扩展到k的大值。 免费提供的开源机器学习库,如Theano,有助于在快速并发GPU架构上实现和训练复杂的NN模型。 我们使用Keras作为Theano的方便的高级抽象前端。 它允许从Python编程语言中以非常抽象的角度快速部署NN,从而隐藏了许多底层内容的复杂度。由于我们支持可重复的研究,我们已经提供了本文的部分源代码

学习编码

我们将考虑两个不同的码字系列:随机代码和结构化代码,即极性码字[19]。 两者都具有码字长度N = 16并且码率r = 0.5。 当通过从汉明码距离大于2的码字空间中随机挑选码字来生成随机码时,块大小N = 2^n的极性码的生成矩阵由下式给出:(公式见论文)

  • 设计NND的参数

我们的开始点是如前所述的NN(见图1)。 我们引入了符号128-64-32,其描述了NN解码器的设计,其采用分别具有128,64和32个节点的三个隐藏层。 但是,还有其他设计参数会对性能产生不可忽视的影响:
1)什么是最佳训练信噪比(SNR)?
2)需要多少训练样本?
3)从LLR通道输出值而不是直接通道输出中学习是否更容易?
4)什么是适当的损失函数?
5)NN应该使用多少层和节点?
6)应该使用哪种类型的正规化?
处理这些参数优化的研究领域称为超参数优化[20]。 在这项工作中,我们不会进一步考虑这种优化,而是将自己局限于一组固定的超参数,我们发现这些超参数可以获得良好的结果。 我们的重点是随机和结构化代码之间的差异。

猜你喜欢

转载自www.cnblogs.com/dushuxiang/p/10081876.html