(陆军工程大学,江苏 南京 210007),
在非协作通信中,由于难以捕获信号或者大多信号被干扰,使得可用信号样本不多,造成没有足够多的训练样本。此外,在5G 动态频谱共享[1](Dynamic Spectrum Sharing,DSS)中,主次用户占用频谱的时间不固定且占用时间也不同,因此在一段时间捕获的信号中会造成某类样本很小。事实上,大多数分类器都需要充足的样本数据,否则会出现过拟合[2],进而无法准确预测新数据。因此,在小样本无法充分表征信号特征的前提下,数字通信信号调制方式识别算法常常表现为泛化能力弱、鲁棒性差和识别率下降。目前对于小样本问题,常见的解决方法有两种,一种是采用在小样本条件下具有良好预测能力的识别方法,如k-近邻法[3](K-Nearest Neighbor,KNN)和支持向量机[4](Support Vector Machine,SVM)等;另一种是通过拟合原数据生成新样本扩充数据集来提高算法的识别效果。通常选择生成式对抗网络[5](Generative Adversarial Networks,GAN)来生成样本数据,以满足训练需求。
文献[3]提出一种基于k-最近邻图的小样本KNN 分类算法。通过划分k-最近邻图,形成多个相似度较高的簇,根据簇内已有标记的数据对象来标识同簇中未标记的数据对象扩展样本集,利用该新样本集对类标号未知数据对象进行类别标识[3]。实验结果表明,该算法在小样本情况下能够提高KNN 的分类精度,减小最近邻阈值k 对分类效果的影响。但是该文献对数字信号的迁移性较弱,并且识别准确率无法满足现代通信的要求。文献[6]利用支持向量机来解高维小样本数据和类别不平衡数据的分类问题。实验结果验证了该方法在特征较明显数据分类中的可行性,仍然无法解决通信领域中复杂多变的数字通信信号的小样本问题。2014 年Goodfellow 等人提出了GAN 的方法[5],至此关于小样本的研究打开了一扇新的大门。本文在原始GAN 的基础上将深度卷积对抗网络用于条件生成式对抗网络,实现小样本条件下数据的扩充和识别。
生成式对抗网络[5](generative adversarial networks,GAN)是一种训练生成模型的深度学习方法,是近年来复杂分布上无监督学习最具前景的方法之一。该方法让两个网络相互博弈:生成器(Generator,G)捕捉数据分布,判别器(Discriminator,D)区分从G 中生成的数据和真实的数据,其结构图如图1 所示。生成器(Generator,G)将服从Pz分布的噪声序列z作为输入来尽量拟合真实数据分布Pdata,并产生输出G(z)。判别器(Discriminator,D)则尽可能判断输入样本是真实样本x还是生成样本G(z)。当输入为x时,D 输出为大概率;当输入为G(z)时,D 输出为小概率。因此GAN 采用极大极小目标对两种模型一起训练:
当训练样本足够多时,GAN 收敛为纳什均衡[7]。此时鉴别器对真假的判断能力相当,即:Pz(x)=Pdata(x),生成数据达到为以假乱真的效果。
图1 GAN 结构图
GAN 训练流程大致为:固定D 的参数,更新G。将一个噪声向量z输入G,得到一个输出G(z),将G(z)输入D,然后会得到输出值p,由于D 的参数已经固定,G 需要调整自己的参数来最大化输出值p。GAN 的算法描述如下。
GAN 算法:
1.参数初始化:初始化G 参数θg和D 参数θd。
2.迭代。
3.训练D:
(1)分别在真实数据集Pdata和噪声分布z中采样m个样本点构成真实样本x{x1,x2,…,xm}和噪声向量z{z1,z2,…,zm},m是可调节的超参数;
(2)将(1)中z输入G中,获得m个生成数据;
(3)更新D 的参数θd,最大化:
4.训练G:
GAN 通过两个网络互相博弈的方式解决了传统建模需要大量的先验知识和计算量巨大的问题[5]。但是基础的GAN 存在训练困难的缺陷。因此学者们对基础GAN 做了一些改进,常见的GAN 模型有:条件GAN (conditional GAN,cGAN)[8],增加分类器的GAN(Auxiliary Classifier GAN,ACGAN)[9],与自动编码解码器结合的GAN (Bidirectional GAN,BIGAN)[10],与变分自动编码器(Variational Autoencode,VAE)[11-12]结合的GAN (VAE-GAN),深度卷积GAN(Deep Convolutional GAN,DCGAN)[13]。
2015 年Alec Radford 等人[13]在GAN 基础上提出了深度卷积生成对抗网络(Deep Convolutional GAN,DCGAN)。DCGAN 相对于原始GAN 进行了以下改进:使用卷积和微步卷积代替池化层;在生成模型和判别模型时都使用 BatchNormalization[14];在生成器和判别器中都添加了批量归一化操作;使用全局池化层替代全连接层;生成器的输出层使用Tanh 激活函数,其他层使用RELU;判别器的所有层都采用Leaky ReLU 激活函数。该模型性能稳定,受到广泛应用[13]。
条件生成对抗网络(CGAN)是GAN 的扩展,其中网络G 和D 都接收到额外的信息标签y作为输入。基础的GAN 中的D(x)和G(z)变为D(x|y)和G(z|y)。因此,损失函数表达式如下:
式中,(x|y)表示在y标签限制下取到x;(z|y)表示在y标签限制下取到z[7]。该模型允许生成模型的输出由条件变量y控制。其结构图表示如图2所示。
图2 cGAN 结构示意
本文采用CGAN 和DCGAN 相结合的方法(Conditional Deep Convolutional,CDCGAN)扩充样本信号。不同于传统的cGAN,CDCGAN 的生成器和判别器均改用深度卷积网络构造,解决GAN 的不稳定、不收敛和难训练的问题。其结构图如图3所示。
本文将条件生成对抗网络中生成器和判别器的网络结构引入深度学习模型,其中生成器输入的噪声样本由1×100 噪声序列和1×11 类别标签组成。判别器不仅要实现真假样本的判别,还要对所有数字信号样本进行分类。
CDCGAN 模型的原理:通过生成器和判别器的对抗学习,促使判别器进一步挖掘数据深层本质特征,进而提高判别器的识别能力[7]。然后利用CDCGAN 的判别器对调制信号进行分类识别。算法实现步骤如下:
(1)从数据集中随机采样m个样本x,从正态分布中随机产生m个噪声序列z并与条件信息c连接作为噪声样本;
图3 CDCGAN 结构示意
(2)将样本x与噪声样本作为一批训练样本输入CDCGAN,根据判别器的输出,获取判别概率和分类结果;
(3)根据判别概率和分类结果计算判别损失Ls,加权判别损失,分类损失Lc和识别损失,并通过损失Ls,,Lc和计算梯度来训练生成器和判别器,其中为了防止在训练过程中生成器生成能力过强,导致生成数据坍塌,判别器每训练5 次,生成器训练1 次[15]。
仿真实验采用Adam 优化器,学习率为0.001,动量为0.5,噪声是加性高斯白噪声,信噪比SNR条件为0~15dB。训练集中11 种目标样本数均为100,共1100 个样本。将含有相同噪声不同标签的噪声样本输入训练好的生成器,实验仿真结果如图4-10 所示。
图4 和图5 分别表示生成器和判别器损失函数值随迭代次数(epoch)的变化趋势。
图4 生成器损失函数变化曲线
图4 中生成器损失值在开始阶段骤然下降,表示生成器逐渐学习到真实样本分布。中间比较平缓的曲线表明,生成器的生成样本与真实样本拟合度很高,足以欺骗判别器。损失值上升阶段表明,判别器通过挖掘数据更深层本质特征使得在和生成器博弈对抗中能力得到提升,即判别器区分真实样本和生成样本的能力得到增强,生成器逐渐无法欺骗判别器。
图5 判别器损失函数变化曲线
从图5 可以看出,判别器损失值在初期下降较快,表示现阶段判别器可以通过监督学习判别数据的真假性。当epoch=40 时,判别器损失值出现上升趋势,表示判别器已经无法准确无误地识别数据是真实样本还是生成样本;而此时生成器拟合真实样本分布能力增强,产生的生成样本更加逼真。但当epoch>40 时,损失值又呈现出下降趋势,表示对抗学习中判别器逐渐占优势,能够正确地分析数据的真假性,对样本进行有效的判断和分类。
图6 是CDCGAN 算法的平均识别准确率曲线随信噪比SNR 的变化曲线。从图中可以看出不同信号随信噪比SNR 的增大,识别准确率越来越高。
图7 是CDCGAN 算法在信噪比SNR 为8dB 时的混淆矩阵,其中混淆矩阵中每一列表示目标所属的真实类别,每一行表示识别结果,标签从上至下,从左至右依次为:8PSK、AM-DSB、AM-SSB、BPSK、CPFSK、GFSK、4PAM 16QAM、64QAM、QPSK、WBFM。
图7 混淆矩阵
从图7 可以看出,在5dB 的高信噪比下混淆矩阵的对角线也要尖锐得多。但是仍然有误判的可能性。
图8 比较了不同算法在不同信噪比SNR 下,对小样本数字通信信号的识别准确率。
从图中可以看出该模型的识别性能较其他模型的优势。可以看出在不需要先验知识和样本不足的条件下,采用该模型可以胜任数字通信信号识别任务。
图8 不同算法性能比较
本文在条件生成对抗网络的基础上结合深度学习模型,对小样本接收数据进行扩充,以达到盲调制识别的目的。仿真实验结果表明,该模型能够较好地拟合真实数据分布,深度学习模型又可以进行准确的类别判断。