侯 濤,鄭郁正
(成都信息工程大學(xué),四川 成都 610225)
調(diào)制信號識別在現(xiàn)代無線通信應(yīng)用中具有非常重要的地位,在電子對抗、通信偵查、信號識別等非合作通信方式中有著非常廣泛的應(yīng)用,民用領(lǐng)域主要在非法信號監(jiān)測、認(rèn)知無線電系統(tǒng)中有著非常廣泛的應(yīng)用。傳統(tǒng)的調(diào)制識別方法主要是利用人工提取到的調(diào)制信號特征,利用統(tǒng)計學(xué)的方法,對提取到的特征進(jìn)行分類,如文獻(xiàn)[1]中提出的基于高階累積量和文獻(xiàn)[2]中提出的采用高階累計量結(jié)合循環(huán)譜密度對通信信號的分類,是目前在調(diào)制識別任務(wù)上主要采用的方法。但這類識別方式最大的缺陷在于需要人工提取特征,且識別的即時性和準(zhǔn)確率不高,因此,提出一種新的并且能夠達(dá)到端到端的調(diào)制識別方法是非常必要和迫切的。
隨著深度神經(jīng)網(wǎng)絡(luò)在2012年ILSVRC圖像識別比賽中大放異彩,深度學(xué)習(xí)技術(shù)出現(xiàn)了前所未有的熱潮,深度神經(jīng)網(wǎng)絡(luò)中新型網(wǎng)絡(luò)結(jié)構(gòu)也在不斷被全世界的科研人員提出。但是這些深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)大多數(shù)是針對語音識別和圖像分類等任務(wù)而設(shè)計,專門為通信信號調(diào)制識別提供的網(wǎng)絡(luò)結(jié)構(gòu)相對較少且準(zhǔn)確率普遍不高。目前,國內(nèi)外對通信信號調(diào)制識別已經(jīng)做了大量的研究,如文獻(xiàn)[3]比較了利用專家特征和卷積神經(jīng)網(wǎng)絡(luò)提取特征的差異,實驗中證明使用神經(jīng)網(wǎng)絡(luò)對時域通信信號進(jìn)行識別有較大的優(yōu)勢。文獻(xiàn)[4]提出一種利用空間轉(zhuǎn)換網(wǎng)絡(luò)(Spatial Transformer Network)對調(diào)制信號進(jìn)行識別的方法,是一種很好的創(chuàng)新,但最大的缺陷在于準(zhǔn)確率相對不高。通過借鑒其他領(lǐng)域成功的案例,文獻(xiàn)[5]提出一種通過神經(jīng)網(wǎng)絡(luò)對語音序列信號進(jìn)行特征提取的方法,對于處理類似序列類型的數(shù)據(jù)提供了一種方法,以及文獻(xiàn)[6]采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)與長短時記憶網(wǎng)絡(luò)(LSTM)相互組合的方法來處理語音序列的方法取得了較好的效果,也對信號的特征提取有很大的參考價值。本文中的實驗參考語音識別中的方法將卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行組合,設(shè)計了一個最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)來對通信信號進(jìn)行特征的提取,能夠?qū)W習(xí)到大量真實通信信號數(shù)據(jù)的特征,并將學(xué)習(xí)好的神經(jīng)網(wǎng)絡(luò)保存為一個模型文件,達(dá)到能夠?qū)νㄐ判盘栠M(jìn)行識別的效果。
Keras深度學(xué)習(xí)框架是用Python語言編寫的高級神經(jīng)網(wǎng)絡(luò)API,它具有極好靈活性以及高度的可擴展性,同時支持CPU和多GPU的計算方式,在Keras中神經(jīng)網(wǎng)絡(luò)層、損失函數(shù)、初始化方法及激活函數(shù)等等已經(jīng)被封裝和模塊化,可以大大減少用戶的工作量,同時也提供了清晰且可操作的反饋。在硬件平臺上面,實驗中使用的硬件平臺為2張Nvidia Geforce 1080Ti顯卡和單塊Intel Core i7 7700k處理器作為訓(xùn)練神經(jīng)網(wǎng)絡(luò)的平臺,通過多GPU的方式對神經(jīng)網(wǎng)絡(luò)進(jìn)行加速迭代運算而達(dá)到優(yōu)化隱藏層參數(shù)的目的。
文獻(xiàn)[8]提出的批量歸一化(Batch Normalization)算法是2015年由美國Google公司提出的一種數(shù)據(jù)預(yù)處理算法,被廣泛使用在各種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,批量歸一化算法可以在學(xué)習(xí)率較小的情況下加快深度神經(jīng)網(wǎng)絡(luò)的收斂速度,同時緩解數(shù)據(jù)過擬合和梯度消失等問題。批量歸一化算法對每一層的輸入進(jìn)行預(yù)處理以避免非線性激活函數(shù)引起的數(shù)據(jù)分布的變化,不單單按照每一批量將數(shù)據(jù)進(jìn)行均值轉(zhuǎn)化為0、標(biāo)準(zhǔn)差轉(zhuǎn)化為1的歸一化過程,而是采用了一種可學(xué)習(xí)參數(shù)γ和β的方法對數(shù)據(jù)進(jìn)行處理,這種創(chuàng)造性的方法有效地增強了算法的魯棒性,有效解決了在數(shù)據(jù)通過激活函數(shù)時數(shù)據(jù)分布被破壞的問題。以下是批量歸一化算法的原理介紹,對于一個一般的d維輸入數(shù)據(jù)x=(x(1)…x(d))進(jìn)行歸一化的方法:
(1)
式中,E[x(k)]為d維輸入數(shù)據(jù)x的均值,Var[x(k)]為d維的輸入數(shù)據(jù)x的方差。具有可學(xué)習(xí)參數(shù)γ和β的批量歸一化算法對數(shù)據(jù)進(jìn)行處理的流程如下所示:
假設(shè)給定一個mini-batch的輸入數(shù)據(jù)的值B={xi…m}算法流程中可學(xué)習(xí)參數(shù)為γ和β,可以得到輸出值為yi=γx^i+β,其中μB為均值,σ2B為方差,x^i為一般歸一化結(jié)果;μB=1m∑mi=1xi;σ2B=∑mi=1(xi-μB)2;x^l=xi-μB σ2B+ε;x^l中的ε為一個很小的可以忽略不計的數(shù)值。
長短時記憶網(wǎng)絡(luò)(LSTM)最早于1997年被提出,是一種擁有“記憶功能”的神經(jīng)網(wǎng)絡(luò),常應(yīng)用于語音識別、圖像識別、自然語言處理等領(lǐng)域。實驗中采用的是文獻(xiàn)[9]提出的長短時記憶網(wǎng)絡(luò),由于可以很好地學(xué)習(xí)到前后序列之間的關(guān)系,處理信號序列數(shù)據(jù)時在一定程度上能夠提升識別的準(zhǔn)確率,該神經(jīng)網(wǎng)絡(luò)由多個cell單元構(gòu)成,每個cell單元包括遺忘門、輸入門和輸出門3種門,結(jié)構(gòu)如圖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)。
文獻(xiàn)[10]提出的稠密網(wǎng)絡(luò)(Densenet)是Google于2018年提出的一種最新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),相比較于文獻(xiàn)[11]提出的目前最為主流的殘差網(wǎng)絡(luò)(Resnet),收斂速度更快,在增加了神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)層數(shù)的同時可以避免梯度消失的問題而不影響最終識別的效果,文獻(xiàn)[12]通過實驗證明在通信信號識別的任務(wù)中稠密網(wǎng)絡(luò)效果較主流的殘差網(wǎng)絡(luò)更好。在結(jié)構(gòu)上,如果將神經(jīng)網(wǎng)絡(luò)中第i層的輸出用Xi表示,那么一般的前饋神經(jīng)網(wǎng)絡(luò)可以表示為Xi=Η(Xi-1),相應(yīng)的殘差網(wǎng)絡(luò)由于增加了旁路連接則可以表示為Xi=Xi-1+Η(Xi-1),而稠密網(wǎng)絡(luò)采用將之前所有層輸出的特征進(jìn)行組合,可以表示為Xi=Η([X0,X1,X3,…,Xi-1]),其中Η表示的是通過這一層的激活函數(shù)。正是由于稠密網(wǎng)絡(luò)這種特殊的結(jié)構(gòu),使得信息的損失更少,才能更好地保持?jǐn)?shù)據(jù)的完整性也是在識別任務(wù)上取得更好效果的主要原因。
實驗中的數(shù)據(jù)集采用文獻(xiàn)[12]提出的專門為機器學(xué)習(xí)設(shè)計的通信信號開源數(shù)據(jù)集,這個數(shù)據(jù)集由GNUradio軟件無線電平臺產(chǎn)生,產(chǎn)生的是真實的通信數(shù)據(jù),通信數(shù)據(jù)中加入了高斯白噪聲等噪聲,信號數(shù)據(jù)包含8PSK,AM-DSB,AM-SSB,BPSK,CPFSK,GFSK,PAM4,QAM16,QAM64,QPSK,WBFM這11種數(shù)字和模擬調(diào)制方式,共220 000條采樣之后得到的通信信號數(shù)據(jù),每種調(diào)制方式有20 000個信號數(shù)據(jù),每種信號數(shù)據(jù)信噪比(SNR)在-20~20 dB之間,每個信號都被采樣為2×128的向量數(shù)據(jù),在進(jìn)行訓(xùn)練時將數(shù)據(jù)集分為80%訓(xùn)練集和20%測試集,11種調(diào)制信號在時域上的圖像如圖2所示。
圖2 調(diào)制信號數(shù)據(jù)集時域圖像
實驗采用Densenet+LSTM+DNN的網(wǎng)絡(luò)結(jié)構(gòu),輸入層的輸入數(shù)據(jù)被轉(zhuǎn)化為[batch,2,128,1]的格式,緊接著輸入層則是四層卷積層,在每層卷積層之后都會利用批量歸一化對每一個卷積層的輸出進(jìn)行歸一化處理,四層卷積層之后接一個長短時記憶網(wǎng)絡(luò),隨后連接一個全連接層和一個softmax層進(jìn)行最后的分類。卷積網(wǎng)絡(luò)部分是在稠密網(wǎng)絡(luò)的基礎(chǔ)上修改的網(wǎng)絡(luò)結(jié)構(gòu),在全連接層(FCN)部分,參考文獻(xiàn)[13]和文獻(xiàn)[14]已經(jīng)證明在信號調(diào)制方式識別問題上面,單純增加網(wǎng)絡(luò)深度對識別準(zhǔn)確率沒有太大提升,且全連接層網(wǎng)絡(luò)具有大量的參數(shù),會導(dǎo)致模型難以訓(xùn)練。在整個網(wǎng)絡(luò)中盡量少地使用全連接網(wǎng)絡(luò),同時在全連接層中也使用了文獻(xiàn)[15]提出的Dropout算法通過隨機去除神經(jīng)元而避免過擬合問題的出現(xiàn),調(diào)制識別模型網(wǎng)絡(luò)結(jié)構(gòu)網(wǎng)絡(luò)中數(shù)據(jù)的流向如圖3所示。
圖3 調(diào)制識別模型網(wǎng)絡(luò)結(jié)構(gòu)
卷積層1的輸出和卷積層2的輸出合并作為卷積層3的輸入,卷積層1、卷積層2和卷積層3合并作為卷積層4的輸入,隨后通過長短時記憶網(wǎng)絡(luò)、全連接網(wǎng)絡(luò)和softmax層。
由于進(jìn)行訓(xùn)練的數(shù)據(jù)本身長度不長,卷積核的默認(rèn)步長設(shè)置為1,卷積核設(shè)置為2×5和1×5兩種,通過卷積神經(jīng)網(wǎng)絡(luò)中卷積窗提取通信信號的數(shù)據(jù)特征,在設(shè)計上采用開源深度學(xué)習(xí)框架Keras中的絕對交叉熵?fù)p失(categorical_crossentropy)函數(shù),損失函數(shù)Li如下:
(2)
式中,t代表真實結(jié)果;i代表輸入數(shù)據(jù);j代表類別;p代表預(yù)測結(jié)果。
這種損失函數(shù)常用在多分類的情況下,如使用softmax函數(shù)作為最終輸出,利用優(yōu)化器不斷降低損失函數(shù)的值以達(dá)到更新隱藏層參數(shù)的目的,在優(yōu)化器方面選擇目前應(yīng)用最為廣泛的Adam優(yōu)化器,文獻(xiàn)[16]證明了這種優(yōu)化器具有對內(nèi)存需求少、實現(xiàn)簡單及計算高效等一系列優(yōu)勢,優(yōu)化器的學(xué)習(xí)率設(shè)置為固定的0.001,同時Dropout部分設(shè)置0.5的隨機失活率,以避免由于全連接層中參數(shù)量過大而造成的過擬合問題。圖4為在信噪比-20 dB下的混淆矩陣圖,圖中橫坐標(biāo)代表預(yù)測正確的11種調(diào)制類別,縱坐標(biāo)代表實際的11種調(diào)制類別。
圖4 信噪比為-20 dB下的混淆矩陣
在使用訓(xùn)練數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進(jìn)行200輪訓(xùn)練同時使用測試數(shù)據(jù)對每一輪模型進(jìn)行測試。圖5 (a)為模型的損失下降曲線圖,損失最低可以下降到0.2左右,圖5(b)為模型的訓(xùn)練準(zhǔn)確率和測試準(zhǔn)確率,深度神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練準(zhǔn)確率最高可以達(dá)到88.4%,測試數(shù)據(jù)集準(zhǔn)確率最高達(dá)到85.6%,模型測試準(zhǔn)確率伴隨訓(xùn)練準(zhǔn)確率不斷上升直到一個較平穩(wěn)的過程,曲線沒有出現(xiàn)極端分化。沒有出現(xiàn)過擬合和欠擬合問題,且神經(jīng)網(wǎng)絡(luò)模型已經(jīng)很好地學(xué)習(xí)到了訓(xùn)練數(shù)據(jù)的特征,由測試結(jié)果也可以看出,訓(xùn)練之后的模型也具有非常好的泛化能力。
圖5 訓(xùn)練和驗證結(jié)果
本文通過大量實驗測試了多種不同超參數(shù),在對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行不斷優(yōu)化的同時,重新設(shè)計了一種深度神經(jīng)網(wǎng)絡(luò)模型,并通過實驗證明了這種方法的有效性。在識別多種調(diào)制方式上較傳統(tǒng)的方法有很大的提升,最為關(guān)鍵的是解決了端到端的信號識別問題,以及大量的人工提取特征的繁瑣過程。測試準(zhǔn)確率很高,且模型泛化能力較好。相信在未來更多學(xué)者的不斷研究以及深度學(xué)習(xí)的不斷發(fā)展下,在調(diào)制識別的方法上肯定會有更多突破,準(zhǔn)確率也會不斷提高。本實驗中需要改進(jìn)的地方還很多,比如數(shù)據(jù)質(zhì)量較差和數(shù)據(jù)數(shù)量較少,網(wǎng)絡(luò)結(jié)構(gòu)以及超參數(shù)還有一定的提升空間,后續(xù)工作中也會不斷地進(jìn)行嘗試和完善。