2.2 基于深度学习的MIMO信号检测网络 DetNet
2.1节介绍了传统的MIMO信号检测算法,包括基于搜索的ML和SD算法,以及线性的MF、ZF、MMSE等算法。其中基于搜索的检测算法误符号率性能优异但复杂度偏高,在实际中无法应用;而传统的线性检测算法通过线性变换的方式进行检测,它们的复杂度很低,但是SER性能较差。虽然在满足信道硬化条件的系统中,线性检测算法的SER性能也可以接近最优,但是在满足信道硬化条件的系统中发送端的容量也受到了限制。
目前,深度学习技术在多个领域取得了成功,其已经被广泛应用到无线通信领域,针对MIMO信号检测问题,已有学者将深度学习技术引入进行尝试,并取得了不错的成果。从仿真结果来看,基于深度学习技术的信号检测算法可以在计算复杂度和SER性能上做出很好的权衡,并且其灵活的结构特性使其具备巨大的应用潜力与广阔的发展前景。本节将介绍一个已有的基于深度学习的MIMO信号检测算法——DetNet算法(参考文献[9]),包括其检测网络的思路、结构及原理。
2.2.1 投影梯度下降算法
在介绍DetNet算法之前,首先介绍投影梯度下降算法。2.1节提到,ML算法致力于寻找使得似然函数[式(2.5)]值最小的候选,由此获得了它的目标函数。为了方便叙述,这里再次给出ML算法的目标函数,如式(2.19)所示。
(2.19)
ML算法通过在一个包含所有可能的发送符号向量的集合中进行穷举,计算每一个候选向量的目标函数值,再选出目标函数值最小的候选向量作为发送符号估计向量。这样遍历搜索的操作确实能够找到使得似然函数最大的候选向量,但其代价是复杂度极高。
ML算法中穷举的方法因复杂度极高而无法实际应用,但其寻找使似然函数值最大的候选向量作为发送符号估计向量的出发点是有价值的。也就是说,可以利用目标函数,通过其他低复杂度的算法来寻找使似然函数值最大的估计向量。投影梯度下降算法便是这样一种算法。
投影梯度下降算法是一种迭代算法,它以式(2.19)作为目标函数,通过计算目标函数关于发送符号向量x的导数来完成对发送符号的迭代更新。具体来说,首先求得目标函数关于发送符号向量的导数,如式(2.20)所示。
(2.20)
对于第k+1次迭代来说,可以通过第k次迭代获得的发送符号估计向量xk来估计发送符号的第k+1次估计,具体如式(2.21)所示。
(2.21)
其中,表示学习率,表示梯度,且式(2.20)中梯度的系数2融合到了学习率中。通常初值x0设为零向量0。表示投影算子。因为梯度更新后的估计向量是软值符号向量,但是正确的发送符号是离散的硬值符号向量,所以需要投影算子将软值符号向量映射为硬值符号向量。通常投影算子是以距离为导向的,将软值符号向量的每一个元素映射为与之距离最近的硬值符号向量。对于采用实数字母表的实数等效系统来说,投影算子实际上就是阶跃函数的错位叠加,例如,在采用4PAM字母表的实数等效系统中,投影算子的函数式如式(2.22)所示。
(2.22)
其中:;;表示字母表中元素的数目,例如,若,则;表示阶跃函数,与决定阶跃函数叠加时错位的步长和放大因子,均与字母表元素相关。在以4PAM为字母表的实数等效系统中,非线性投影算子(Non differentiable projection operator)的图像如图2.3所示。由图2.3可知,当软值符号向量落在区间[-2,0]时,投影算子会将其映射为-1,因为此时距离-1最近,其他区间情况以此类推。
图2.3 非线性投影算子图像
2.2.2 DetNet
深度展开是深度学习技术应用的一个分支,与常见的卷积神经网络、循环神经网络或者全连接神经网络抑或是它们的组合网络不同,深度展开是以已有迭代算法为基础的,它利用已有的迭代算法来构造深度神经网络。不同的迭代算法,通过深度展开可以获得不同的结构。具体来说,深度展开将已有迭代算法的每一次迭代展开成神经网络的一层,在展开时,可以将迭代算法的一些超参数设为网络的可训练参数,也可以添加一些特殊的结构,这样就可以利用神经网络可训练的特点对这些原本的迭代算法的超参数进行自适应的优化,算法性能就会获得提升。
考虑式(2.1)中的MIMO模型,DetNet模型不直接对接收符号y进行处理,这样做主要是考虑:在接收符号y中的每一路信号都包含所有天线的发送信息。因此DetNet对式(2.1)进行了简单的变换,在等式两边同时乘H T,得到
(2.23)
DetNet是最小化噪声的网络,因此从式(2.23)中可以看出,DetNet的输入应包含和这两个向量。关于输入向量的推导还可以从梯度下降的角度进行考虑。下面给出迭代模型的推导过程。
(2.24)
其中,是第k次迭代的检测结果,表示非线性操作,表示每次迭代的调整步长。每次迭代的输入应为、和,同时因为一些阶模型存在非线性因素,在DetNet的设计中加入了另一个输入向量,用于表示未被考虑到的模型中的非线性因素。
DetNet的核心思想是对投影梯度下降算法进行深度展开。但是在进行具体展开操作时会遇到一些问题。首先,1.1.1小节提到,神经网络的训练是通过反向传播算法来进行的,这要求网络结构是可以求导的。由图2.3和式(2.22)可知,投影梯度下降算法中的投影算子是不可导的,所以并不能直接展开成神经网络。这是将投影梯度下降算法进行深度展开时面临的第一个问题。
针对第一个问题,虽然原始的投影算子不可导,但是可以选择用其他可以求导的结构来代替原始的投影算子。DetNet正是这样解决第一个问题的,它采用一个3层的全连接神经网络来替代投影算子。因为原始投影算子本身是一个非线性的函数,所以DetNet采用非线性的全连接神经网络去拟合投影算子。
DetNet遇到的第二个问题是全连接神经网络的输出仍然是连续的软值,不能直接输出离散的硬值。也就是说,经过全连接神经网络输出的向量仍然是软值符号向量,需要进一步处理将其映射到硬值符号向量。针对这个问题,DetNet是这样解决的:它将全连接神经网络的输出设定为发送符号估计值为字母表中真实值的概率。举例来说,对于采用4PAM字母表的、配备15根发送天线的系统,DetNet全连接神经网络的输出的维度将会是15×4,其中15对应着每一个发送符号,4对应着发送符号分别为-3,-1,1,3的概率,这种长度为4的向量被称为独热编码(One-Hot Encoding)。顾名思义,如果网络预测完全正确,那么输出的概率中应该只有一位是1,其余位均是0。获得独热编码估计值以后,通过加权求和的方式(即概率与对应的字母表中的候选值相乘再叠加)就可以将独热编码变换为硬值符号了,这里将其称为独热映射函数,具体映射方式如式(2.25)所示。
(2.25)
其中,表示全连接神经网络输出的某一发送符号对应的独热向量,表示独热向量的第i个元素,si表示字母表中的第i个符号。综上,通过独热映射函数可以将输出独热向量映射为发送符号。
通过上述方法的构造,DetNet的结构如图2.4所示,相应的算法流程如式(2.26)所示。图2.4中为DetNet单层网络的结构,整个网络通常需要30层这样的结构进行级联;根据系统的复杂程度,也可相应地增加或减少网络的层数。
(2.26)
图2.4 DetNet的结构
DetNet的可训练参数包括,L代表网络的层数,其中所有Wk和bk的维度都与发送天线的规模和调制阶数正相关。也就是说,天线规模越大,调制阶数越高,DetNet的可训练参数就会越多,模型所需的存储空间就越大,训练也越慢。每一对Wk和bk代表了一个全连接层,DetNet在每一层网络中都包含3个全连接层,同时DetNet采用了ReLU作为激活函数以引入非线性。
DetNet采用式(2.27)作为损失函数,通过训练,不断缩小每一层网络输出的独热编码向量与正确的独热编码向量之间的均方误差。因为层数越深的层输出的结果越重要,所以在计算整个损失函数时,深层结果的均方误差占有更大的比重。
(2.27)
其中,。
DetNet在深度学习的应用方面无疑取得了巨大的成功,仿真结果(参考文献[9])表明,在20根发送天线、30根接收天线的QPSK调制场景下,它的SER性能可以逼近SD算法的SER性能。但是DetNet的缺陷也非常明显,首先因为采用了全连接神经网络,它的参数数量非常多,并且随着天线规模和调制阶数的增加还会进一步增加,这导致了它的计算复杂度会比较高,且训练速度很慢。更重要的是,在高阶调制的场景下,其SER性能增益会明显下降,具体SER性能比较图像将在2.3.5小节给出。