APP下载

基于BP神经网络的SCL译码研究①

2019-01-07卢丽金李世宝

计算机系统应用 2018年12期
关键词:译码离线复杂度

卢丽金,李世宝

(中国石油大学(华东)计算机与通信工程学院,青岛 266580)

Arikan 首次提出极化码 (Polar Code),且极化码是人类已知的第一种能够被严格证明达到信道容量的信道编码方法[1].在串行抵消(SC)译码算法下,极化码的复杂度低、译码结构简单.然而,SC译码算法在码长为有限长的配置下,纠错性能不理想.

为了提高极化码的性能,引入置信度传播[2,3]和线性规划[4]算法,但,这两种算法只适用于二进制输入删除信道 (BEC).随后,I.Tal 和 A.Vardy 等提出串行抵消列表(SCL)算法[5,6],其性能非常接近最大似然(ML)的纠错性能.为了进一步提高极化码的纠错能力,几种解码方法相继被提出[7–9].其中,文献[8]通过级联循环冗余校验(CRC)码,SCL译码能够获得比Turbo码和LDPC 码更好的性能,并记为 CA-SCL.然而,其复杂度与列表大小L呈正比关系.为了降低复杂度,提出一种自适应的串行抵消列表(AD-SCL)译码[10],其复杂度不会随着列表大小L的增大而增加.但是,在低信噪比下,AD-SCL会呈现明显的高复杂度现象.AD-SCL总是把L的初始值设置为1.当L=1译码失败时,ADSCL会将L更新为2L,并返回根节点,重新进行译码,直至L=Lmax.在信噪比较低的情况下,经过基于L=1的译码后,往往还需要更新L值.这样无疑是增加了复杂度.值得考虑的是,由小到大的更新L能够带来明显的低平均译码复杂度,这一优势值得借鉴.如果L的初始值不固定为1,那么,就能够解决现存的复杂度问题.因而,寻找L的最优初始值是本文的研究关键.若L的最优初始值的大小有l种可能,则相当于L的最优初始值有l种类别.在某一实验配置下,L的最优初始值到底属于哪一种类别,本文需要处理此问题.若在线阶段采用传统的追踪记录与概率统计方式来分类,需要进行大量的数据存储和计算,将会大幅度增加复杂度,且此处理方式不适用于离线操作.BP神经网络可以用作分类器[11,12]并实现快速、精确分类.若BP神经网络的训练和分类都是在线操作,也会大幅度增加复杂度,但可以离线训练BP神经网络,在线时将数据输入到已完成训练的BP神经网络模型中,输出一个类别,且不会增加复杂度.因此,本文确定采用BP神经网络来寻找L的最优初始值.

本文的主要工作是介绍极化编码、极化译码与BP神经网络的相关原理,然后离线构建并训练BP神经网络以及在线寻找L的最优初始值,最后提出一种基于BP神经网络的SCL译码算法.

1 相关原理

1.1 极化编码与极化译码

1.1.1 极化编码

信道极化将一个二进制输入无记忆信道的一组独立的时隙看作一组相互独立的信道,通过信道分割、信道合并操作引入相关性.当参与信道极化的信道(时隙)数足够多时,所得到的极化信道的信道容量会出现极化现象,即一部分信道的容量将会趋于1、其余趋于0.在信道极化的基础上,只需要在一部分容量趋于1的信道上传输信息比特,而在剩下的容量趋于1的信道以及容量趋于0的信道上传输对收发端都己知的固定比特.

用符号W:X→Y来表示一个B-DMC信道,其中X和Y分别表示该信道的输入、输出符号集合,X={0,1}.信道转移函数被定义为W(y|x),其中x∈X,y∈Y.那么,对称信道容量表示为

其中,β =W(y|x),β0=W(y|0),β1=W(y|1).通过对信道W的N次占用(即信道W的N个可用时隙),能够得到N个独立的具有相同信道特性的B-DMC信道,然后对这N个信道进行信道变换,在各个独立的信道之间引入相关性,将会得到信道转移概率函数

1.1.2 极化译码

当谈及SC译码时,似然比(LLR)[13]和路径度量尤为重要.一般地,LLR 的计算如下

其中,yi是通过AWGN信道获得的接收信号.LLR的递归计算方式为

以及

与传统的SC译码一样,SCL译码仍然是从译码树的根节点开始,逐层依次向叶子节点层进行路径搜索.然而,与传统的SC译码不同的是,SCL译码用路径度量来估计每一条路径的可靠性;此外,SCL的每一层译码将会把L条最有可能的路径保存下来.那么,的路径度量的计算公式为

1.2 BP神经网络

因强大的学习能力,神经网络吸引着众多学者[14].BP神经网络是神经网络中的一种,本质上是一种前馈神经网络.BP神经网络主要涉及三部分:准备样本、搭建结构及训练网络.

在准备样本阶段,主要是整理训练集和测试集.在搭建结构阶段,主要是设置参数.在训练网络阶段,基于监督学习,首先计算输出层和隐藏层的输出值;然后计算输出层和隐藏层的误差项;在此基础上,通过设定一个学习率来设置参数更新的大小,并不断迭代调整权值和偏置项,最终完成训练.特别强调的是,偏置项可以是固定的,也可以设置成同权值相关的.

2 基于BP神经网络的SCL译码算法

由于极化码能够达到信道容量,因此它的译码技术受到了极大关注.近年来,各种译码方法应运而生,如 SC,SCL,CA-SCL,AD-SCL 等.为了降低低信噪比下的平均译码复杂度,综合考虑性能及AD-SCL对L进行由小到大更新时所带来的低平均译码复杂度,若L的初始值不固定为1,那么,就能够解决低信噪比下的复杂度问题.因而,寻找L的最优初始值是本文的研究关键.

假设令Lmax=32,则L的最优初始值有6种情况:1,2,4,8,16,32.当寻找L的最优初始值时,可以看作是简单的分类问题.在某一信噪比和某一似然比下对应着哪个L值,则相对应的L值即为寻找的L的最优初始值.若用普通的计算来寻找L的最优初始值,需要大量的数据存储和概率统计,从而导致复杂度呈上升趋势.而BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,可以离线操作和准确处理分类问题,因此,其技术适用于寻找L的最优初始值.

本文研究主要分2个阶段来进行:离线阶段和在线阶段,具体的系统框图如图1所示.观察图1,离线阶段主要是构建并训练BP神经网络;在线阶段首先是寻找L的最优初始值,其次是完成译码.对于图1的整个系统框图,首先执行离线操作,完成虚框中的各项任务,包括收集数据、构建BP神经网络及训练BP神经网络,得到一个训练好的BP神经网络模型;然后启动在线操作,从极化编码开始,将码字发送到信道中,得到接收信号,并根据接收信号来计算似然比,一旦完成似然比的计算,系统会激活已完成训练的BP神经网络模型,将似然比及与该似然比相对应的信噪比输入到BP神经网络模型中,得到一个值,即为L的最优初始值,最后执行译码操作.

2.1 构建与训练BP神经网络

综合考虑网络训练复杂度及极化码译码复杂度,确定在离线阶段完成BP神经网络的构建与训练.需要注意的是,此处理方式不会影响极化码译码复杂度和性能.

2.1.1 样本数据的准备及预处理

采用BP神经网络方法建模的首要和前提条件是有足够多典型性好和精度高的样本.为此,建模的关键是收集并选取样本数据;在此基础上,随机选取其中的75%的数据作为训练样本,剩余的25%数据作为测试样本;最后,通过预处理将样本数据转换为数值数据.本文采用的预处理手段是归一化处理,其线性转换算法的形式如下:

其中,smin为输入向量S的最小值,smax为输入向量S的最大值,zr是节点r的输出值.

2.1.2 神经网络的训练

基于监督学习,利用反向传播算法来训练网络.假设每个训练样本为(S,g),向量S是训练样本的特征,g是样本的目标值.

本文取网络所有输出层节点的误差平方和作为目标函数:

其中,En表示样本n的 误差.在此基础上,运用随机梯度下降优化方法对目标函数进行优化.经过优化之后,能分别得到输出层的误差项、隐藏层的误差项以及权重的更新方法.对于输出层节点r,误差项的计算为

其中,δr是节点r的误差项,zr是节点r的输出值,gr是样本对应于节点r的目标值.对于隐藏层节点,误差项的计算为

其中,ar是节点r的输出值,ωkr是节点r到它的下一层节点k的连接权重,δk是节点r的下一层节点k的误差项.由此,更新每个连接上的权重:

其中,ωjr是节点r到节点j的权重,η是一个学习速率常数,δj是节点j的误差项,sjr是节点r传递给节点j的输入.由于偏置项的输入值永远为1,故偏置项的计算为

根据上述训练规则,不断修正 ωjr与 ωrb,则可完成训练.

2.2 基于BP神经网络的SCL译码算法

为了降低平均译码复杂度,本文提出了一种基于BP神经网络的SCL(BNN-SCL)译码算法.BNNSCL译码算法包括两个阶段:离线构建并训练BP神经网络模型阶段与在线译码阶段.在第2.1节中,已经完成BP神经网络模型的构建与训练,对应地,即已完成图1系统框图中虚框的操作.因此,在本节中主要介绍的是在线阶段的译码操作,即从图1的得到接收信号开始介绍.根据接收信号来计算似然比,一旦完成似然比的计算,系统会激活已完成训练的BP神经网络模型,将似然比及与该似然比相对应的信噪比输入到BP神经网络模型中,得到一个值,即为L的最优初始值.此时,译码端将会进行初始化,将L初始化为L的最优初始值.BNN-SCL算法与现存的译码算法不同,L的初始值的大小不固定为1.

为详细了解译码端进行初始化之后的操作,本文给出具体的后续操作步骤,即本文提出的降低平均译码复杂度的SCL译码算法在译码端的具体步骤如下:

1)对L进行初始化,将L初始化为L的最优初始值;

2)执行SCL译码算法,并对其译码候选路径进行CRC校验;

3)如果有一条或多于一条的候选路径通过CRC校验,则输出一条最有可能的路径,并退出译码;否则,跳到 4).

4)将L更新为2L,并判断更新之后的L是否大于Lmax.若不大于Lmax,则跳回 2);否则,退出译码.

为辅助理解,图2给出了基于BP神经网络的SCL译码算法在译码端的流程图.

图2 BNN-SCL 译码算法在译码端的流程图

3 实验结果与分析

本文的仿真实验包括2个部分:离线部分和在线部分.现将各部分主要涉及的参数、配置列出.离线部分,将输入层、隐藏层及输出层的节点数分别设置为2、300、6,采用全连接方式来搭建网络,并将激活函数设置为sigmoid函数,网络训练的目标误差设为0.01,显示中间结果的周期设为50,最大迭代次数设为500,学习率设为0.01.在线部分的参数、配置如下所示.

根据实验的数值结果来分析新提出算法的误比特率(BER)和复杂度.在本文的仿真实验中,所涉及的译码方案的码长和码率分别配置为N=1024,R=0.5.根据文献[15]构造极化码,极化码级联一个长度为16比特的CRC.

图3给出不同译码算法下的BER性能比较,其中列表译码的列表大小分别配置为4和32.对于ADSCL和BNN-SCL译码算法,均将最大搜索宽度设置为Lmax=32.通过已完成训练的BP神经网络来寻找的L的最优初始值被运用于仿真实验中.从图3中可以看出,CA-SCL、AD-SCL及BNN-SCL的曲线是重叠的.与CA-SCL和AD-SCL类似,经过适当配置,BNN-SCL也能够获得非常接近ML译码的性能.

图4给出不同译码算法下的平均复杂度比较,其中列表译码的列表大小为32.对于AD-SCL和BNNSCL译码算法,均将最大搜索宽度设置为Lmax=32.如图4所示,在高信噪比下,BNN-SCL译码的复杂度非常接近SC译码的复杂度.此外,与AD-SCL译码算法相比,在 0~1.25 dB 下,BNN-SCL 能够显著降低平均复杂度,例如,在SNR=0.75时,BNN-SCL 能够降低约26.1%的复杂度.

图3 不同译码算法下的BER性能比较

4 结语

为了降低复杂度,提出一种基于BP神经网络的SCL译码算法.综合考虑现存算法的优点,通过在离线阶段完成训练的BP神经网络来寻找L的最优初始值,以改变L的初始值总是设置为1的现状;在此基础上,设计一种改进的SCL译码算法,最终降低复杂度.实验结果表明,与 AD-SCL 译码算法相比,在 0~1.25 dB 下,BNN-SCL能够显著降低平均复杂度且保持译码性能不变.

猜你喜欢

译码离线复杂度
极化码自适应信道译码算法
基于卷积神经网络的离线笔迹鉴别系统
基于扩大候选码元范围的非二元LDPC加权迭代硬可靠度译码算法
一类长度为2p2 的二元序列的2-Adic 复杂度研究*
异步电机离线参数辨识方法
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
毫米波MIMO系统中一种低复杂度的混合波束成形算法
新版Windows 10补丁离线安装更简单
Kerr-AdS黑洞的复杂度