李 硕,王友国,柴 允,任珈仪
(1.南京邮电大学 通信与信息工程学院,江苏 南京 210003;
2.南京邮电大学 理学院,江苏 南京 210023)
随着移动通信系统需求的增加,第五代移动通信系统已经得到了广泛应用,但低时延和高速率仍然是人们不懈的追求[1]。极化码属于线性分组码,它的复杂度较低,速率高[2],目前已被选为5G控制信道的编码方案。然而,极化码传统的解码算法迭代计算较多,有效性和可靠性难以均衡[3],因此,迫切需要设计一种高速低延迟的极化码解码算法。
深度神经网络通过具有非线性处理单元的多层层叠寻找和转换编码结构和噪声特征,与传统的迭代解码相比,深度神经网络的解码器通过单次解码,为低延迟实现提供了基础[4]。此外,通过利用现有的深度神经网络平台,可以轻松满足高速需求[5]。Lyu[6]使用了三种经典的神经网络进行译码尝试,它们的参数大小相同,经测试对比,RNN具有较好的解码性能,但需要以高计算开销为代价,并且由于学习能力受到限制,导致每种类型的神经网络都存在一个饱和长度。郭锐[7]尝试通过调控神经网络的batch和epoch参数,利用CNN对极化码长码进行译码,在低信噪比下CNN性能略优于传统译码算法,但在高信噪比下CNN的性能会逐渐下降。徐想[8]针对神经网络译码器对于极化码长码的训练效果不佳的问题,设计了分区神经网络译码算法,降低了译码器译码时延。
通过利用传统的CNN和RNN作为工具对极化码的译码研究在时间效率上取得了不错的效果,但为了推广到更多更复杂的场合中,还需要更广泛且高效的技术。近年来许多改进的研究陆陆续续被提出,其中Shaojie Bai等人[9]设计了新型架构,将其命名为时间卷积网络,它与RNN的功能相似,相比传统的CNN,可以进行大规模并行处理,缩短了训练和验证的时间,减小了梯度消失的可能性。该文将尝试使用TCN进行极化码的译码,并通过调试TCN的各式参数,探讨对译码性能的影响。
极化码由Arikan提出[10],它在二进制离散无记忆信道的条件下,当码长N趋近于无限长的时候,可以产生信道极化的现象。它是信道合并与信道分裂两种信道操作的结果,在这两种操作下,原本相同的N个分裂信道产生了极化现象,使它们的信道容量趋近于0或趋近于1,从而在理论上逼近了香农极限。
极化码的传统解码方式为连续消除(successive cancellation,SC)译码算法,它采用蝶形算法,特点是当前第i位的码字的判定需要第i-1位的估计值,串行执行,通过译码器进行逐次迭代递归求解似然比的方式进行解码,其中似然比见式(1),判决式见式(2)[2]。
(1)
(2)
通过这样的方式,SC的译码算法可将当前位的估计值直接判决为“0”或者“1”,虽然算法复杂度较低,但它仅能保证局部最优化,无法进行并行解码,且当前位码字的判决需要前一位的估计值,容错性较差。Vardy等人[11]提出了改进算法,可保留L条译码路径进行可靠性选择。Niu等人[12]进一步加入了循环冗余校验码,相比SC译码算法,大幅度提升了译码准确性,但需要更多的译码时延和存储空间,大大增加了复杂度。
RNN之所以擅长处理时序相关的问题,正是因为它循环自回归的结构,非常适合处理时间序列。传统的CNN由于卷积核大小的限制,无法收获时间较长的相关信息。但经过人们不懈的研究发现,一些特定的CNN结构也会有不错的效果。TCN作为一种特殊的卷积神经网络,通过一维全卷积网络(1-dimensional fully convolutional networks,1-D FCN)结构和膨胀因果卷积结构,实现了每个时间的输入都有对应的输出,并且保证了历史数据的完整性,在目前多种任务中可以实现超越RNN模型的效果[9]。
TCN采取因果卷积的构造,其特点是对于输出t时刻的数据yt,其输入时刻只可能是t或t时刻以下。因果卷积无法看到未来的数据,它为单向结构,当计算当前时间步的输出时,会自动将超过当前时间步的输入“切掉”,这样严格保证了时序性。同时,TCN还使用了1-D FCN的结构代替了全连接,减少了不必要的计算和空间[13],更使得每个输出层都可以保持和输入层一样的时间长度被继续传递,维持了相同的时间步,不论在哪一层,每个时间步的输入与输出均一一对应。其中,当处理第一个时间步时,由于没有任何历史的信息,TCN默认其历史数据全是0。以卷积核大小为2的单次卷积操作为例,TCN的卷积运算如图1所示,在任意t时刻,卷积操作输出yt为:
yt=ω1xt-1+ω2xt
(3)
图1 TCN的卷积操作
假设在因果卷积中,一个输出与输入的N个时间点都存在关联,则构成的TCN深度为N-1,当N很大时,TCN深度过大,会使得网络结构过于复杂,因此提出改进结构膨胀因果卷积[9],通过引入膨胀因子d,可以克服这一问题。设卷积核大小为2,扩展值为{1,2,4,8},膨胀因果卷积的TCN示意图如图2左半部分所示。
此外,为了应对一些很深的复杂模型,使TCN在深层条件下不会丢失信息,采用残差网络的连接方式,其结构框图如图2右半部分所示。它替代了TCN层与层之间的简单连接,与ResNet的残差块结构相似[14]。卷积核接收到的信息也会分为两部分,左侧是参加多次卷积核处理后获得的信息,包括两层的膨胀因果卷积和非线性映射,并在每层加入WeightNorm和Dropout防止过拟合;右侧则是底层的局部信息的直接连接内容通过自设的卷积层进行简单的变换,两者相加,这样使得输出的内容具有丰富并清晰的底层信息,不容易遗失细节特征,是训练深层网络的有效方法。总的来说,将膨胀因果卷积和残差链接两种技术一起使用,可使处理的数据值保证精确度和特征,兼顾训练,速度可观,再将改进的TCN模型的最顶层连接至最顶部隐藏层进行输出[15]。
图2 膨胀因果卷积与残差模块示意图
TCN的极化码译码算法架构如图3所示。
图3 TCN译码器架构
(4)
该文使用交叉熵函数(binary_crossentropy)作为损失函数,并通过Adam算法[16]优化网络神经参数,能够对不同参数调整合适的学习速率,使得学习速率在一定的范围内移动,达到最小化损失函数的目的。
数据预处理:训练数据大小为4×106,设置信息比特数目为K,通过极化码编码将K个信息比特混入冻结比特,调制并添加设置好信噪比(固定)的高斯噪声,将添加噪声后的数据作为训练数据,信源数据作为标签,反复训练;测试集同理,数据大小为2×104。为了解决庞大的数据输入的问题,使用minibatch和epoch参数限制输入数据的大小。为加快TCN的训练速度,提高收敛速度,卷积层使用批量归一化函数。
参数设置:训练阶段输入为(16,8),码率为1/2,序列数为4×105,测试阶段输入序列为2×104。minibatch设置为1,epoch设置为45。随机抽取2×104组16×1个序列,在训练阶段的信噪比设置为3 dB,测试阶段的信噪比设置为0~5 dB,间隔为0.2 dB。默认残差块数目为4,每个残差块有三层卷积层,每层有175个卷积核,卷积核大小为5。
图4 TCN译码器在训练过程中损失函数的变化
图5 基于TCN的极化码译码性能(N=16,K=8)
图4为训练时损失函数的变化,可以看出当训练样本的迭代次数在50之前时,损失函数下降较明显,学习速度较快;当训练样本的迭代次数超过50以后,损失函数基本保持稳定,网络性能趋于收敛状态。TCN的译码性能如图5所示,可以看出随着测试信噪比的不断增加,译码的准确率也逐渐变得越来越可观,证明了TCN模型作为极化码译码的有效工具的可行性。为了探究TCN模型各个参数对译码性能的影响,接下来控制其他参数不变,探究各个参数对误码率的影响。
(1)仅调整TCN内的卷积核大小(分别为1、2、3、4、5)进行TCN译码性能对比,效果如图6(a)所示。可以看出它们都会随着信噪比的增加而逐渐降低误码率,并且卷积核大小越小,译码性能越好,译码性能提升越明显。
(a)不同卷积核大小
(b)不同卷积核个数
(2)仅调整TCN的残差块内卷积核的数量(分别为100、125、150、175、200)进行译码性能对比,效果如图6(b)所示。可以看出它们都会随着信噪比的增加而逐渐降低误码率,并且卷积核数量和译码性能是正相关的,其中当卷积核数目在100~175的范围内,通过提升卷积核数目改进TCN的译码效果明显。
(3)仅调整TCN内的残差块数量(分别为1、2、4、6)进行译码性能对比,效果如图7(a)所示。可以看出它们都会随着信噪比的增加而逐渐降低误码率,但是它们的性能相差不大,残差块为6时的译码性能要略低于残差块为1时的译码性能,并且每增加一个残差块都会大大增加复杂度,提高内存需求,因此在实际设计进行极化码译码时,不宜设计过多残差块。
(a)不同残差块个数
(b)不同输入信噪比
(4)仅调整TCN训练阶段的输入信噪比(分别为1 dB、3 dB、5 dB、10 dB、15 dB、20 dB)进行译码性能对比,效果如图7(b)所示。可以看出它们都会随着信噪比的增加而逐渐降低误码率,输入信噪比大小为3 dB左右时,译码性能较佳,增加输入信噪比并不会对译码性能有较好的改善。
(5)仅调整TCN训练参数epoch的值(分别为5、15、25、35、45、65、85、105)进行译码性能对比,效果如图8(a)所示。可以看出它们都会随着信噪比的增加而逐渐降低误码率,在epoch值从5至15时对译码性能提升明显,当epoch值超过15时,对译码性能的影响不大。
(6)仅调整TCN的训练序列数(分别为1×105、2×105、3×105、4×105)进行译码性能对比,效果如图8(b)所示。可以看出它们都会随着信噪比的增加而逐渐降低误码率,当训练序列数小于2×105时,译码性能相差较小;当训练序列数超过2×105时,译码性能会大幅度提升,当训练序列数为4×105时,译码效果较好。
(a)不同epoch值
(b)不同训练数
通过对六种网络模型参数的调试,可以在原有的基础上实现TCN对极化码译码的性能提升,其中对训练序列数、卷积核的大小和数目进行适当调试可取得较好的译码增幅效果,使得TCN在极化码译码的应用推广又前进了一步。
该文提出了基于TCN的极化码译码模型,利用TCN内特有的膨胀因果卷积和残差块结构,实现了对极化码较好的译码,并通过调试TCN的各式参数,探讨对译码性能的影响。该文主要探讨了极化码为短码时的时间卷积网络的译码性能,但可以基于此进一步探究当极化码为长码时,TCN的性能是否会有较大影响。