时间:2024-07-28
秦博伟, 蒋 磊, 郑万泽, 许 华
(1.空军工程大学信息与导航学院,西安,710077; 2.空军工程大学科研学术处,西安,710051)
通信信号的调制样式识别是从信号检测到信息获取的一个重要过程,其目的是在调制信息未知的情况下对通信信号的调制参数进行估计分析得出信号的调制样式,从而为最终解调信号获取信息提供理论依据。传统通信信号调制样式识别通常采用基于特征工程的方法,根据专家的经验构造信号特征并建立特征工程。传统方法主要针对特定调制样式,准确率和识别精度高,但是要以大量的先验信息作为基础,需要人工设定判决门限或固定特征参数,实际应用中受环境的不确定因素影响[1-5]。因此寻求一种准确、适应性强的调制分类识别算法迫在眉睫。
随着深度学习算法在图像和自然语言处理等方面展现出优异性能,使得神经网络提取特征的能力被逐渐发掘出来[6-7]。基于深度学习的网络模型不需要预先人工设计信号特征,可直接利用网络学习信号特征,建立端到端的信号分类模型[8],具有代表性的网络模型有卷积神经网络(convolution neural network,CNN)和循环神经网络。CNN具有局部区域感知、权值共享以及空间下采样等特点。T. J. O’Shea等人[9]首次将浅层CNN应用到无线电信号的特征提取中,并利用Softmax激活函数实现信号调制样式的分类;Jeong等人首先将原始中频信号通过短时傅里叶变换为二维的时频域信号,利用图像处理的方法,使用CNN完成了7种信号的调制识别[10]。Peng Shengliang等人[11]则将解调后的信号数据转化为星座图格式,将著名的神经网络模型Alex-Net和GoogLe-Net应用到调制识别领域。Zeng Yuan等人[12]将无线电信号变换为高光谱图片,利用CNN直接提取图像特征,在相同信噪比条件下相比较决策树分类网络识别准确率提升5%。基于深度学习的网络模型利用监督学习,依托大量带标签数据训练网络,取得了很好的效果,但实际应用中往往难以获得大量的标签数据。
针对小样本学习[13]问题,目前普遍采用的是基于数据增强的算法和元学习算法。数据增强算法从特征和属性方面通过学习数据的分布生成新样本[14]和构造人工特征[15]来实现样本扩充;元学习算法[16]通过学习模型最优化时的初始条件、参数、网络权值和梯度更新等,迁移到其他任务上的相应权值网络以实现在小样本条件下新任务的快速学习。这两种方法都需要一个泛化性较强的初始网络来实现对新任务的快速适应学习,在实际应用中需要相同分布域的数据来训练这个初始网络。
近年来生成式对抗网络[17](generative adversarial networks,GAN)在图像处理、数据生成、信号分类识别等领域体现出明显的优势,GAN直接利用网络去学习不同分布域的数据,生成与之相似度较高的虚假数据,一定程度上解决了网络训练所需标签数据量不足的问题,并且它独特地使用对抗训练机制对2个神经网络进行训练,利用随机梯度下降实现优化,避免了反复应用马尔科夫链,从而提高了网络训练效率。BuKe等人[18]借鉴GAN的思想,提出一种基于对抗迁移的通信信号调制识别算法,该算法利用大量标签数据生成可靠性较高的虚假数据供网络进行训练,在低信噪比下信号识别准确率较参数迁移方法提升4%~6%。
基于深度学习的网络模型训练所需标签数据较多、识别准确率不高,针对上述问题,本文设计并提出一种基于半监督生成式对抗网络(semi-supervised auxiliary classifier GAN,SACGAN)的调制识别算法。
GAN最早由Goodfellow在2014年提出,它的基本框架包含两个相互对抗的网络:生成器G和判别器D,G尽量模拟数据真实分布,而D则是为了准确区分真实数据和虚假数据。受博弈论中二元零和博弈的启发,GAN采用对抗训练方法。首先将噪声作为数据输入,通过G模拟真实数据并生成虚假数据,其次将生成的虚假数据和真实数据一起送入D进行判决,最后输出的结果反馈到G和D用于训练,通过这种反馈迭代训练过程,最终G生成的虚假数据不再被D所识别,网络训练停止,输出结果。
原始GAN中G和D的网络结构均为BP神经网络,Goodfellow等[19]从博弈论的角度阐释了GAN的思想,即达到纳什均衡点的条件为G最小化真实数据与生成数据的差异,D最大化真实数据与生成数据的差异。G和D的对抗训练最终会达到一个纳什均衡点。这里的差异通常是指Jensen-Shannon散度或者Kullback-Leibler散度[20]。
为适应通信信号调制识别的应用场合,本文提出的基于SACGAN的算法对原始GAN结构进行了修改。SACGAN模型使用不同的激活函数使网络可以更好地进行梯度计算;用反卷积代替池化操作,最大限度地保留数据的初始信息量;网络还根据输入输出的对应关系设计了新的目标函数,满足生成虚假数据、实现信号调制样式识别的目的。
图1为本文算法的网络结构,G和D的网络结构均为CNN,G的输入为噪声、输出为带有指定标签类别的虚假数据,D的输入为真实数据和虚假数据,输出为两个判别结果,一个结果为生成数据的真假性,另一个结果为所有数据的类别属性,将数据的类别信息与标签样本进行对比分析,结果反馈到网络中进行参数调整和损失函数计算。
图1 SACGAN模型
图2所示为G和D的具体网络结构参数,由于本文设定的小样本条件,网络层数的深度堆叠会直接造成网络训练过拟合,参照文献[21]对网络层数的选择标准,本文通过大量实验证明G网络采用3层CNN,D网络采用4层CNN,隐藏层激活函数选用ReLU函数时网络性能最好。
图2 G和D的网络模型参数
以单个数据为例,生成器的输入为1×100的服从(0,1)高斯分布的噪声,经过卷积和上采样操作,输出2×128×1的虚假数据;判别器的输入为2×128×1的真实数据,添加零填充层和卷积操作,最终输出数据的真/假结果和类别属性。
本文所提的SACGAN模型结构不同于其他的GAN。首先为了扩大感受野,D网络添加零填充层;其次为了更好地实现网络的分层分块提取信号的局部特征,减少网络参数并有效降低算法复杂度,D网络选取2×4、1×7、1×5、1×3的步幅为1卷积核,G网络选取2×2、2×3的步幅为1卷积核;最后,为了保留数据的原始信息,避免因池化操作带来的数据关键信息丢失,用反卷积和Dropout操作代替池化层。
基于SACGAN的算法训练过程主要分为无标签数据训练和有标签数据训练。无标签数据训练阶段,G网络需要利用噪声生成与真实数据相似度较高的虚假数据,用D网络输出层的辅助分类器来判断虚假数据的相似度。有标签数据训练阶段,D网络需要学习真实数据的标签信息,用类别分类器判断真实数据的类别。训练过程中通过D输出的结果分别对G和D进行梯度下降训练。下面给出算法的具体训练步骤。
SACGAN算法模型中G和D可以映射为任意的可微函数,G生成样本Xfake=G(c,s),每一类生成样本c~pc,D的输出为两部分:正确信号源概率分布P(S/X)和正确信号标签概率分布P(C/X),D的输出层激活函数分别使用Sigmoid和Softmax。Sigmoid函数输出一个范围在0~1之间的数,越接近于0代表生成的数据越假,越接近于1代表生成的数据越真。Softmax函数输出k维向量l={l1,l2,…,lk},转化成概率表示为p={p1,p2,…,pk}。
(1)
式(2)为D的输出的具体表达式。
(2)
SACGAN的目标函数包括两部分:正确来源的对数似然函数Ls和正确类别的对数自然函数Lc。
Ls=E[logD′(P1)]+E[logD′(G′(P2))]
Lc=E[logD′(P3)]+E[logD′(G′(P4))]
(3)
式中:E为求期望;G′和D′分别表示G与D映射的可微函数;D的目标函数为最大化Lc+Ls;G的目标函数为最大化Lc-Ls。
本文的模型训练均使用python的Keras环境,配置为Nvidia GTX 1650 GPU,借助Tensorflow后端进行训练,数据集采用的是Deepsig公开调制识别数据集[9]RML 2016.10b,表2为本文采用的信号集信息。
表2 调制信号数据集
根据3通道原则,将数据维度由(2,128)调整为(2,128,1),因为数据集信号已经进行归一化,所以直接利用服从(0,1)高斯分布噪声进行拟合数据,训练轮数设成80个epoch。训练时采用提前终止迭代算法,确保网络收敛到验证集损失值最低点。
3.3.1 实验1:网络参数初始值设定
为了验证本文设计的网络参数最优性和相比较于其他优化算法是否具有优势,本文首先对比不同优化器下的算法识别性能,实验结果见图3。
图3 不同优化算法对比结果
实验结果表明,基于Adam优化器相较于其他优化器算法在低信噪比下收敛速度较快,高信噪比下稳定性更好,因此本文选用Adam优化算法。当改变Adam的学习率时,不管怎么设置其他网络参数,网络损失值始终保持不变,因此Adam学习率设置为默认数值0.000 2。在基于Adam优化器算法的前提下,本文还通过大量对比实验得出Adam第一衰减率、Batch-size、Dropout不同取值时的网络性能,部分实验结果如表3所示。
表3 不同参数下的网络性能比较
根据对结果可以看出,Batch-size设置为64,Dropout设置为0.05,第一衰减率设置为0.5时,网络的性能最好,将此状态下的各项数值设置为网络参数的初始值。
3.3.2 实验2:调制信号分类结果
根据实验1的网络参数初始值设定,将数据集切分后输入到网络中进行训练,为了验证小样本条件下的网络性能,分别对(-4~18 dB)信噪比下的每种信号随机选取900,2 700,5 400,8 100,10 800, 21 600,43 200,86 400个标签样本,将选取后的所有样本按照8∶1∶1的比例分为训练集、验证集和测试集实验,实验步骤按照表1进行,m为标签样本数量,n取100。
表1 SACGAN算法具体步骤
训练过程中先训练D,从图4可以看到D的损失在5 epoch以前下降很快,之后下降较为缓慢;D的验证集选取样本较少,损失函数曲线有波动但整体呈下降趋势。D训练结束以后固定D的参数训练G,从图5中可以看出G的损失曲线整体表现平稳,说明每一次G的训练较为稳定。
图4 D的损失函数曲线
图5 D的损失函数曲线
从图6中可以看出在SNR=0 dB以上的信号分类准确率可以达到95.1%。
图6 分类准确率曲线
图7~9为网络测试后的混淆矩阵图。
图8 SNR=10 dB的混淆矩阵
图9 SNR=18 dB的混淆矩阵
为了测试网络所需要的最少标签样本量,表4给出了具体的对比结果。
表4 标签样本量对网络的影响
可以看到当无标签样本数量保持不变,增加有标签样本的数量时,识别准确率的提升并没有那么明显,并且增大标签数据量会显著增加网络的训练时间,因此本文算法收敛的标签样本数量在900左右。
3.3.3 实验3:对比实验
将本文所提算法的网络结构分别替换为参考文献[18]提出的ATLA算法,参考文献[19]设计的BP神经网络和参考文献[22]设计的VTCNN和CLDNN,将5种网络的特征提取能力进行对比。在本文设定的小样本条件下,选取5种网络收敛后的最佳模型结果,分类准确率曲线对比如图10所示,网络参数对比如表5所示,其中运行时间代表每一个epoch的训练时间。
图10 分类准确率曲线对比
表5 网络性能对比
在本文设定的小样本条件下,BP神经网络的参数最少,时间最短,分类准确率相对较低;VTCNN、ATLA和 CLDNN3种网络的网络参数较多、算法复杂度相对较高;SACGAN的网络参数显著减少,时间复杂度有所降低,准确率明显提升,模型性能相比较其他4种网络有较好提升。在SNR=0 dB以下网络性能提升6%、 SNR=10 dB以上网络性能提升13%。
综合上述实验结果,对比常规算法采用的标签样本数量,SACGAN算法采用的标签样本数量显著降低,验证了算法在小样本条件下的有效性。
针对小样本条件下通信信号识别混淆问题,本文提出一种基于SACGAN的调制识别算法,该算法不需要人工设计特征,网络模型添加辅助分类器作为结果判定,并结合半监督学习思想,有效利用少量标签数据和大量未标签数据,通过两个基础网络间的交替对抗训练,更好地学习不同分布域的信号特征。该算法网络结构简单易实现,所用参数和标签样本量明显减少。仿真实验结果表明,在相同样本量条件下较其他深度学习模型效果更优,针对9种调制信号在SNR=0 dB以上分类准确率可以达到95.1%,有效解决了小样本条件下网络难以训练的问题。后续工作将在本文算法基础上,添加级联网络来进一步提升网络特征提取能力,使网络可以更好地区分相近信号。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!