基于深度学习的通信信号调制方式识别

2019-08-26 05:23:32郑郁正
无线电工程 2019年9期
关键词:网络结构准确率卷积

侯 涛,郑郁正

(成都信息工程大学,四川 成都 610225)

0 引言

调制信号识别在现代无线通信应用中具有非常重要的地位,在电子对抗、通信侦查、信号识别等非合作通信方式中有着非常广泛的应用,民用领域主要在非法信号监测、认知无线电系统中有着非常广泛的应用。传统的调制识别方法主要是利用人工提取到的调制信号特征,利用统计学的方法,对提取到的特征进行分类,如文献[1]中提出的基于高阶累积量和文献[2]中提出的采用高阶累计量结合循环谱密度对通信信号的分类,是目前在调制识别任务上主要采用的方法。但这类识别方式最大的缺陷在于需要人工提取特征,且识别的即时性和准确率不高,因此,提出一种新的并且能够达到端到端的调制识别方法是非常必要和迫切的。

随着深度神经网络在2012年ILSVRC图像识别比赛中大放异彩,深度学习技术出现了前所未有的热潮,深度神经网络中新型网络结构也在不断被全世界的科研人员提出。但是这些深度学习网络结构大多数是针对语音识别和图像分类等任务而设计,专门为通信信号调制识别提供的网络结构相对较少且准确率普遍不高。目前,国内外对通信信号调制识别已经做了大量的研究,如文献[3]比较了利用专家特征和卷积神经网络提取特征的差异,实验中证明使用神经网络对时域通信信号进行识别有较大的优势。文献[4]提出一种利用空间转换网络(Spatial Transformer Network)对调制信号进行识别的方法,是一种很好的创新,但最大的缺陷在于准确率相对不高。通过借鉴其他领域成功的案例,文献[5]提出一种通过神经网络对语音序列信号进行特征提取的方法,对于处理类似序列类型的数据提供了一种方法,以及文献[6]采用卷积神经网络(CNN)、循环神经网络(RNN)与长短时记忆网络(LSTM)相互组合的方法来处理语音序列的方法取得了较好的效果,也对信号的特征提取有很大的参考价值。本文中的实验参考语音识别中的方法将卷积神经网络和循环神经网络进行组合,设计了一个最优的网络结构来对通信信号进行特征的提取,能够学习到大量真实通信信号数据的特征,并将学习好的神经网络保存为一个模型文件,达到能够对通信信号进行识别的效果。

1 相关研究

1.1 Keras深度学习框架以及硬件平台

Keras深度学习框架是用Python语言编写的高级神经网络API,它具有极好灵活性以及高度的可扩展性,同时支持CPU和多GPU的计算方式,在Keras中神经网络层、损失函数、初始化方法及激活函数等等已经被封装和模块化,可以大大减少用户的工作量,同时也提供了清晰且可操作的反馈。在硬件平台上面,实验中使用的硬件平台为2张Nvidia Geforce 1080Ti显卡和单块Intel Core i7 7700k处理器作为训练神经网络的平台,通过多GPU的方式对神经网络进行加速迭代运算而达到优化隐藏层参数的目的。

1.2 批量归一化原理

文献[8]提出的批量归一化(Batch Normalization)算法是2015年由美国Google公司提出的一种数据预处理算法,被广泛使用在各种神经网络结构中,批量归一化算法可以在学习率较小的情况下加快深度神经网络的收敛速度,同时缓解数据过拟合和梯度消失等问题。批量归一化算法对每一层的输入进行预处理以避免非线性激活函数引起的数据分布的变化,不单单按照每一批量将数据进行均值转化为0、标准差转化为1的归一化过程,而是采用了一种可学习参数γ和β的方法对数据进行处理,这种创造性的方法有效地增强了算法的鲁棒性,有效解决了在数据通过激活函数时数据分布被破坏的问题。以下是批量归一化算法的原理介绍,对于一个一般的d维输入数据x=(x(1)…x(d))进行归一化的方法:

(1)

式中,E[x(k)]为d维输入数据x的均值,Var[x(k)]为d维的输入数据x的方差。具有可学习参数γ和β的批量归一化算法对数据进行处理的流程如下所示:

假设给定一个mini-batch的输入数据的值B={xi…m}算法流程中可学习参数为γ和β,可以得到输出值为yi=γx^i+β,其中μB为均值,σ2B为方差,x^i为一般归一化结果;μB=1m∑mi=1xi;σ2B=∑mi=1(xi-μB)2;x^l=xi-μB σ2B+ε;x^l中的ε为一个很小的可以忽略不计的数值。

1.3 长短时记忆网络原理

长短时记忆网络(LSTM)最早于1997年被提出,是一种拥有“记忆功能”的神经网络,常应用于语音识别、图像识别、自然语言处理等领域。实验中采用的是文献[9]提出的长短时记忆网络,由于可以很好地学习到前后序列之间的关系,处理信号序列数据时在一定程度上能够提升识别的准确率,该神经网络由多个cell单元构成,每个cell单元包括遗忘门、输入门和输出门3种门,结构如图1所示。

图1 LSTM的工作流程

遗忘门:ft=σ(Wf[ht-1,xt]+bf);

输入门:it=σ(Wi[ht-1,xt]+bi);

输出门:ot=σ(Wo[ht-1,xt]+bo);

通过输出门得到最终的输出:ht=ot*tanh (Ct)。

1.4 稠密网络原理

文献[10]提出的稠密网络(Densenet)是Google于2018年提出的一种最新的神经网络结构,相比较于文献[11]提出的目前最为主流的残差网络(Resnet),收敛速度更快,在增加了神经网络网络层数的同时可以避免梯度消失的问题而不影响最终识别的效果,文献[12]通过实验证明在通信信号识别的任务中稠密网络效果较主流的残差网络更好。在结构上,如果将神经网络中第i层的输出用Xi表示,那么一般的前馈神经网络可以表示为Xi=Η(Xi-1),相应的残差网络由于增加了旁路连接则可以表示为Xi=Xi-1+Η(Xi-1),而稠密网络采用将之前所有层输出的特征进行组合,可以表示为Xi=Η([X0,X1,X3,…,Xi-1]),其中Η表示的是通过这一层的激活函数。正是由于稠密网络这种特殊的结构,使得信息的损失更少,才能更好地保持数据的完整性也是在识别任务上取得更好效果的主要原因。

2 数据集和网络结构设计

2.1 数据集

实验中的数据集采用文献[12]提出的专门为机器学习设计的通信信号开源数据集,这个数据集由GNUradio软件无线电平台产生,产生的是真实的通信数据,通信数据中加入了高斯白噪声等噪声,信号数据包含8PSK,AM-DSB,AM-SSB,BPSK,CPFSK,GFSK,PAM4,QAM16,QAM64,QPSK,WBFM这11种数字和模拟调制方式,共220 000条采样之后得到的通信信号数据,每种调制方式有20 000个信号数据,每种信号数据信噪比(SNR)在-20~20 dB之间,每个信号都被采样为2×128的向量数据,在进行训练时将数据集分为80%训练集和20%测试集,11种调制信号在时域上的图像如图2所示。

图2 调制信号数据集时域图像

2.2 网络设计

实验采用Densenet+LSTM+DNN的网络结构,输入层的输入数据被转化为[batch,2,128,1]的格式,紧接着输入层则是四层卷积层,在每层卷积层之后都会利用批量归一化对每一个卷积层的输出进行归一化处理,四层卷积层之后接一个长短时记忆网络,随后连接一个全连接层和一个softmax层进行最后的分类。卷积网络部分是在稠密网络的基础上修改的网络结构,在全连接层(FCN)部分,参考文献[13]和文献[14]已经证明在信号调制方式识别问题上面,单纯增加网络深度对识别准确率没有太大提升,且全连接层网络具有大量的参数,会导致模型难以训练。在整个网络中尽量少地使用全连接网络,同时在全连接层中也使用了文献[15]提出的Dropout算法通过随机去除神经元而避免过拟合问题的出现,调制识别模型网络结构网络中数据的流向如图3所示。

图3 调制识别模型网络结构

卷积层1的输出和卷积层2的输出合并作为卷积层3的输入,卷积层1、卷积层2和卷积层3合并作为卷积层4的输入,随后通过长短时记忆网络、全连接网络和softmax层。

3 训练过程和结果分析

3.1 训练过程和超参数选择

由于进行训练的数据本身长度不长,卷积核的默认步长设置为1,卷积核设置为2×5和1×5两种,通过卷积神经网络中卷积窗提取通信信号的数据特征,在设计上采用开源深度学习框架Keras中的绝对交叉熵损失(categorical_crossentropy)函数,损失函数Li如下:

(2)

式中,t代表真实结果;i代表输入数据;j代表类别;p代表预测结果。

这种损失函数常用在多分类的情况下,如使用softmax函数作为最终输出,利用优化器不断降低损失函数的值以达到更新隐藏层参数的目的,在优化器方面选择目前应用最为广泛的Adam优化器,文献[16]证明了这种优化器具有对内存需求少、实现简单及计算高效等一系列优势,优化器的学习率设置为固定的0.001,同时Dropout部分设置0.5的随机失活率,以避免由于全连接层中参数量过大而造成的过拟合问题。图4为在信噪比-20 dB下的混淆矩阵图,图中横坐标代表预测正确的11种调制类别,纵坐标代表实际的11种调制类别。

图4 信噪比为-20 dB下的混淆矩阵

3.2 结果分析

在使用训练数据对神经网络进行200轮训练同时使用测试数据对每一轮模型进行测试。图5 (a)为模型的损失下降曲线图,损失最低可以下降到0.2左右,图5(b)为模型的训练准确率和测试准确率,深度神经网络模型训练准确率最高可以达到88.4%,测试数据集准确率最高达到85.6%,模型测试准确率伴随训练准确率不断上升直到一个较平稳的过程,曲线没有出现极端分化。没有出现过拟合和欠拟合问题,且神经网络模型已经很好地学习到了训练数据的特征,由测试结果也可以看出,训练之后的模型也具有非常好的泛化能力。

图5 训练和验证结果

4 结束语

本文通过大量实验测试了多种不同超参数,在对网络结构进行不断优化的同时,重新设计了一种深度神经网络模型,并通过实验证明了这种方法的有效性。在识别多种调制方式上较传统的方法有很大的提升,最为关键的是解决了端到端的信号识别问题,以及大量的人工提取特征的繁琐过程。测试准确率很高,且模型泛化能力较好。相信在未来更多学者的不断研究以及深度学习的不断发展下,在调制识别的方法上肯定会有更多突破,准确率也会不断提高。本实验中需要改进的地方还很多,比如数据质量较差和数据数量较少,网络结构以及超参数还有一定的提升空间,后续工作中也会不断地进行尝试和完善。

猜你喜欢
网络结构准确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
健康之家(2021年19期)2021-05-23 11:17:39
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
管理现代化(2016年3期)2016-02-06 02:04:41
沪港通下A+ H股票网络结构演化的实证分析
管理现代化(2016年3期)2016-02-06 02:04:13