其他分享
首页 > 其他分享> > On Deep Learning-Based Channel Decoding(阅读笔记)未完待续——

On Deep Learning-Based Channel Decoding(阅读笔记)未完待续——

作者:互联网

On Deep Learning-Based Channel Decoding

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、abstract

摘要—我们重新审视了使用深度神经网络对随机和结构化代码(如极坐标代码)进行一次性解码的想法。尽管对于两种码族和短码字长度来说,都有可能实现最大后验(MAP)误码率(BER)性能,但是我们观察到(I)结构化代码更容易学习,并且(ii)神经网络能够推广到在结构化代码的训练期间从未见过的码字,但对于随机代码却不是这样。这些结果提供了一些证据,表明神经网络可以学习一种形式的解码算法,而不仅仅是一个简单的分类器。为了进一步研究基于深度学习的解码在性能和复杂性方面的潜力和局限性,我们引入了度量归一化验证误差(NVE)。

二、INTRODUCTION

1.研究背景

翻译:

基于深度学习的信道解码注定要受到维数灾难的影响[1]:对于长度为N = 100、速率为r = 0.5的短码,存在250个不同的码字,这些码字太多,实际上无法完全训练任何神经网络。神经网络可以被训练为实际块长度的唯一方法是,如果它学习某种形式的解码算法,该算法可以从对一小部分码字的训练中推断出完整的码本。然而,为了能够学习解码算法,代码本身必须具有某种基于简单编码规则的结构,如卷积码或代数码。本文的目的是阐明结构化代码是否比随机代码更容易“学习”,以及神经网络能否解码训练中从未见过的码字。我们要强调的是,这项工作基于非常短的块长度,即N ≤ 64,这使得能够与最大后验(MAP)解码进行比较,但对物联网(IoT)等实际应用也有独立的兴趣。由于指数训练的复杂性,我们目前仅限于短码[1]。因此,神经网络解码(NND)的概念目前还不能与最先进的解码算法相竞争,这些算法在过去几十年中已经被高度优化,并可扩展到任意的块长度。

是的,可能存在某些有助于学习过程的代码结构。我们的主要发现之一是,结构化代码确实比随机代码更容易学习,即所需的训练时间更少。另外,我们的结果表明,只要代码具有结构,在仅看到示例子集之后,NN可以将其整体化或“内插”到完整的代码本。

2.相关工作

1943年,McCulloch和Pitts提出了神经网络的思想,该神经网络可以模拟人脑的结构以解决问题[2]。但是用了大约45年的时间,反向传播算法[3]使得有用的应用程序,例如手写邮政编码识别[4]成为可能。 NN的一种早期形式是Hopfield网络[5]。事实证明,此概念类似于线性块纠错码(ECC)的最大似然解码(MLD)[6]:错误的码字将收敛到代表最可能的码字的Hopfield网络的最近稳定状态。 MLD的一个简单的实现意味着将接收到的调制符号矢量与所有可能的码字相关,这使得它对于大多数实际的码字长度都是不可行的,因为解码复杂度为(2**K)其中k表示代码字中的信息位数。 NN的并行计算能力使我们能够在多项式时间内解决或至少近似MLD问题[7]。此外,NN的权重是在训练过程中预先计算的,因此解码步骤本身就相对简单。

由于其低存储容量,Hopfield网络很快就被前馈NN所取代,前馈NN可以学习嘈杂的输入模式和码字之间的适当映射。无需假设信道噪声的统计信息,因为NN能够在学习过程中学习映射或提取信道统计信息[8]。关于使用NN进行解码的不同想法在90年代出现了。尽管在[8]中,输出节点表示代码字的位,但每个代码字也可以使用一个输出节点(一次热编码)[9]。对于汉明编码,另一种变化是仅使用校正子作为NN的输入,以便找到最可能的错误模式[10]。随后,用于卷积码的NND出现在1996年,当时Wang和Wicker表明NND与理想的维特比解码器的性能相匹配[1]。但是他们也提到了NND的一个非常重要的缺点:解码问题比传统的模式识别问题具有更多的可能性。这将NND限制为短代码。然而,通过使用递归神经网络,用于卷积码的NN解码器得到了进一步的改进[11]。

无论是块码还是卷积码,NND都没有取得任何重大突破。由于当时采用标准的训练技术,因此无法使用采用大量神经元和神经元的神经网络,这导致它们不适合较长的代码字。因此,不仅对于机器学习应用而且对于解码目的,对NN的兴趣都在减少。在接下来的几年中,例如通过使用随机神经网络[12]或通过减少权重的数量[13]进行了一些细微的改进。

2006年,一种新的训练技术,称为逐层无监督预训练,然后进行梯度下降微调[14],导致了神经网络的复兴,因为它使对具有更多层次的神经网络的训练变得可行。具有许多隐藏层的NN被称为“深层”。如今,功能强大的新硬件(例如图形处理单元(GPU))可用于加速学习和推理。在NN的复兴中,出现了新的NND想法。是的,与以前的工作相比,NN学习技术仅用于优化众所周知的解码方案,我们将其称为专家知识的介绍。例如,在[15]中,权重被分配给信念传播(BP)算法的Tanner图,并通过NN技术学习以改进BP算法。机器学习领域的最新进展似乎仍未适应纯粹的学习解码思想。


DEEP LEARNING FOR CHANNEL CODING

在这里插入图片描述
如果神经元分层排列而没有反馈连接,那么我们说的是前馈NN,因为信息在没有反馈的情况下从左到右流过网络(见图1)。具有ni input和mi output的每一层i都执行映射f(i):Rni→Rmi,其中神经元的权重和偏差作为参数。将v表示为NN的输入,将w表示为NN的输出,通过一系列函数根据参数θ定义输入-输出映射
在这里插入图片描述
其中L给出层数,也称为深度。在[17]中表明,如果神经元的数量足够大的话,这种具有L = 2和非线性激活函数的多层NN在理论上可以任意近似地逼近有界区域上的任何连续函数。
为了找到NN的最佳权重,需要一组已知的输入-输出映射的训练集,并且必须定义特定的损失函数。通过使用梯度下降优化方法和反向传播算法[3],可以找到NN的权重,从而使训练集上的损失函数最小。训练的目的是使NN能够为看不见的输入找到正确的输出。这称为概括。为了量化泛化能力,可以为尚未用于训练的数据集(所谓的验证集)确定损失。
在这项工作中,我们希望使用NN来解码嘈杂的代码字。在发射机处,将k个信息比特编码为长度为N的代码字。对已编码的比特进行调制,并通过一个有噪声的信道进行传输。在接收器处,接收到码字的噪声版本,并且解码器的任务是恢复相应的信息比特。与迭代解码相比,NN通过每层仅传递一次来找到其估计值。由于此原理可以实现低延迟的实现,因此我们将其称为一次性解码。
对于机器学习领域来说,获得标记的训练数据通常是非常艰巨和昂贵的任务。但是使用NN进行信道编码是很特殊的,因为我们处理的是人造信号。因此,我们能够生成任意数量的训练样本。此外,免费获得了所需的NN输出(也表示为标签),因为如果生成了嘈杂的码字,显然就知道了所传输的信息位。为了简单起见,使用了二进制相移键控(BPSK)调制和加性高斯白噪声(AWGN)通道。可以直接采用其他通道,正是这种灵活性可能是基于NN的解码的特殊优势
为了使训练集保持较小,可以使用额外的层来扩展NN,以调制和添加噪声(请参见图1)。这些附加层没有可训练的参数,即,它们执行某种操作,例如添加噪声,并且仅将此值传播到具有相同索引的下一层的节点。代替创建并因此存储相同代码字的许多嘈杂版本,对无噪声代码字进行处理就足够了。因此,训练集X由所有可能的码字xi∈FN 2以及F2∈{0,1}(标签为对应的信息比特)组成,并由X = {x0,。 。 。 ,x2k-1}。如[16]中的建议,每个隐藏层都采用ReLU激活函数,因为它是非线性的,同时又非常接近线性,这在优化过程中会有所帮助。由于输出层代表信息位,因此S型函数会迫使输出神经元处于零到一之间,这可以解释为传输“ 1”的概率。如果概率接近标签的位,则损失应仅略微增加,而较大的误差将导致非常大的损失。此类损失函数的示例是均方误差(MSE)和二元交叉熵(BCE),分别定义为
在这里插入图片描述
其中bi∈{0,1}是第i个目标信息位(标签),ˆbi∈ [0,1]是NN软估计。此设置有一些替代方法。首先,可以使用对数似然比(LLR)值代替通道值。对于AWGN信道上的BPSK调制,这些值可通过以下方式获得:
在这里插入图片描述

LEARN TO DECODE

在续篇中,我们将考虑两个不同的代码族:随机代码和结构化代码,即极性代码[19]。两者的码字长度N = 16,码率r = 0.5。尽管通过从汉明距离大于2的码字空间中随机选择码字来生成随机码,但块大小N = 2**n的极码的生成器矩阵为
在这里插入图片描述
现在,F*n表示F的第n个Kronecker幂。现在通过x = uGN获得码字,其中u包含k个信息位和N -k个冻结位置,有关详细信息,请参考[19]。这样,极性代码就具有固有的结构。
A. Design parameters of NND
我们的起点是之前描述的NN(见图1)。我们引入符号128-64-32,该符号描述了采用三个分别具有128、64和32个节点的隐藏层的NN解码器的设计。但是,还有其他设计参数对性能的影响不可忽略:
1)最佳训练信噪比(SNR)是多少?
2)需要多少训练样本?
3)从LLR通道输出值而不是从直接通道输出中学习会更容易吗?
4)什么是适当的损失函数?
5)NN应该使用多少层和节点?
6)应该使用哪种类型的正则化?
研究这些参数优化的领域称为超参数优化[20]。在这项工作中,我们不再进一步考虑这种优化,而是将自己限制在一组固定的超参数上,我们发现这些超参数可以达到良好的效果。我们的重点是随机代码和结构化代码之间的差异。
由于NND的性能不仅取决于验证数据集的SNR(针对其计算误码率(BER)),而且还取决于训练数据集的SNR6,因此我们在下面定义了一个新的性能指标,即归一化的验证错误(NVE)。
用ρt和ρv分别表示训练和验证数据集的SNR(以Eb / N0度量),并将BERNND(ρt,ρv)设为在数据下以ρv训练的NN所获得的BER。类似地,令BERMAP(ρv)为SNRρv下MAP解码的BER。对于一组S个不同的,具有SNRsρv,1,…的验证数据集。 。 。 ,ρv,S,NVE定义为
在这里插入图片描述
NVE衡量在特定SNR下训练的NND与在不同SNR范围内的MAP解码相比有多好。显然,对于NVE = 1,NN可以实现MAP性能,但通常更高。在续篇中,我们计算了S = 20个不同SNR点(从0 dB到5 dB)的NVE,每个SNR的验证集大小为20000个示例。

我们在所谓的“epoch”中训练我们的NN解码器。在每个时期,损失函数的梯度都是使用Adam’(一种用于随机梯度下降优化的方法)在整个训练集X上计算的[22]。由于我们架构中的噪声层每次使用都会产生新的噪声实现,因此NN解码器永远不会看到相同的输入两次。因此,尽管训练集的大小限制为2**k码字,但是我们可以通过简单地增加时期Mep的数量来在实质上不受限制的训练集上进行训练。但是,这使得无法区分是通过大量训练样本还是通过更多优化迭代来改善NN。

在这里插入图片描述
从128-64-32和Mep = 222学习纪元的NN解码器架构开始,我们使用不同训练SNR的数据集训练NN,并评估所得的NVE。结果如图2所示,从中可以看出存在“最佳”训练Eb / N0。可以通过以下两种情况来解释最佳值的出现:
1、Eb / N0→∞;在没有噪声的情况下训练,NN在处理噪声方面没有经过训练。
2、Eb / N0→0;仅靠噪声训练,NN无法学习代码结构。
这显然表明这两种情况之间的最佳位置。从现在开始,为极性码和随机码分别选择1 dB和4 dB的训练Eb / N0
在这里插入图片描述
图3示出了由尺寸为128-64-32的非常小的NN实现的BER,其是训练周期的数量的函数,其范围从Mep = 210,…,。 。 。 ,218。对于BER仿真,我们每个SNR点使用一百万个码字。对于这两个代码系列,训练时期的数量越多,MAP和NND性能之间的差距就越小。
但是,对于极性代码,对于Mep = 2**18个时元,已经达到了接近MAP的性能,而对于随机代码,我们可能需要更大的NN或更多的训练epoch。
在这里插入图片描述

在图4中,我们结合两个损耗函数MSE和BCE,说明了作为解码器输入的直接信道值与信道LLR值的关系。将所有组合的NVE绘制为训练时期数的函数。这样的曲线也称为“学习曲线”,因为它表示学习的过程。尽管通常建议对NN输入进行归一化以使其均值和单位方差为零,但我们训练NN时无需进行任何归一化,这似乎足以满足我们的设置要求。在一些培训时期,LLR的输入可以改善学习过程。但是,对于较大的Mep,这种优势消失了。 BCE针对MSE的情况也是如此。对于具有LLR值和BCE的极码,学习似乎不会收敛于所应用的时期数。总之,对于使用大量训练时期来训练NN,是否将LLR或通道值用作输入以及采用哪种损失函数都没有关系。此外,不需要标准化。

为了回答NN应该有多大的问题,我们训练了具有不同大小和结构的NN。从图5可以得出结论,对于极性码和随机码,都有可能实现MAP性能。而且,有些令人惊讶的是,网络越大,训练时间就越少。通常,层和神经元的数量越大,NN的表达能力或容量就越大[16]。与经典机器学习任务中常见的情况相反,增加网络规模不会导致过度拟合,因为网络永远不会两次看到相同的输入。在这里插入图片描述
B. Scalability:可扩展性
到现在为止,我们仅考虑了16位长度的代码,这些代码几乎没有实际意义。因此,在图6中研究了NN解码器的可伸缩性。可以看到,长度N对于通过深度学习技术学习代码并不关键。然而,重要的是信息位的数量k决定了NN必须区分的不同类别(2k)的数量。因此,对于固定大小和固定训练次数的NN,对于较大的k值,NVE呈指数增长。如果要对NN解码器进行缩放,则它必须能够从一些训练示例中进行概括。换句话说,与其学习分类2k个不同的码字,不如说NN解码器应该学习一种解码算法,该算法为任何可能的码字提供正确的输出。在下一节中,我们将研究结构是否允许某种形式的概括。
在这里插入图片描述
IV. CAPABILITY OF GENERALIZATION:泛化能力
总而言之,我们可以区分两种形式的概括。首先,如第三部分所述,NN可以从具有一定训练SNR的输入通道值推广到具有任意SNR的输入通道值。其次,NN能够将Xpof码字的子集推广到看不见的Xp子集。但是,我们观察到,对于较大的NN,第二种形式的泛化能力消失了。
在这里插入图片描述

V. OUTLOOK AND CONCLUSION

对于小块长度,我们实现了对具有MAP性能的随机码和极性码进行解码的功能。但是随着码字中信息位数的增加,学习受到指数复杂度的限制。非常令人惊讶的结果是NN能够针对结构化代码进行泛化,这给人们希望学习解码算法带来了希望。当前,最先进的极性解码遭受高解码复杂度,缺乏可能的并行化以及因此关键的解码等待时间的困扰。 NND本质上描述了一种高度可并行化的结构,可实现单次解码。这使得基于深度学习的解码成为一种有希望的替代信道解码方法,因为它避免了顺序算法。未来的研究将基于对正则化技术以及递归和记忆增强神经网络的探索,已知它们是Turing complete [23],并且最近在算法学习中表现出卓越的性能。

标签:Based,NN,训练,解码,Deep,学习,Learning,码字,代码
来源: https://blog.csdn.net/kopkd/article/details/114577422