許耀華 周鑫源 黃 興 蔣 芳 王 翊 王 躍
(*安徽大學智能計算與信號處理教育部重點實驗室 合肥 230601)
(**安徽大學物聯(lián)網頻譜感知與測試工程中心 合肥 230601)
(***安徽電信規(guī)劃設計有限責任公司 合肥 230031)
隨著物聯(lián)網和人工智能的快速發(fā)展,接入到通信網絡中的移動智能終端的種類和數(shù)量不斷增多,網絡中采集的用戶數(shù)據(jù)呈指數(shù)級增長。因此研究如何提升系統(tǒng)的用戶容量、提升頻譜資源利用效率、降低系統(tǒng)功耗等問題是非常必要的。文獻[1]提出不同類型的網絡集成到統(tǒng)一的系統(tǒng)中能夠大大提高系統(tǒng)容量和頻譜資源利用率。設備對設備(device to device,D2D)通信允許附近的設備之間在沒有基站(base station,BS)或有限基站參與的情況下直接建立通信,進一步拓展社交網絡結構,支持物聯(lián)網的發(fā)展[2]。蜂窩和D2D 通信混合網絡能夠進一步提升網絡容量和資源利用效率。稀疏碼分多址接入(sparse code multiple access,SCMA)[3]技術由于其低密度擴頻和高維調制的特點,能夠以一定的過載率增加使用頻譜資源的用戶數(shù)量。文獻[4]證實了將SCMA應用在蜂窩和D2D 混合網絡中能夠支持D2D 的海量連接以及提升混合網絡系統(tǒng)的區(qū)域頻譜效率(area spectral efficiency,ASE)。然而混合網絡要面臨許多新的問題,比如新的資源分配、新的解碼方案及用戶間的干擾管理等問題。本文將SCMA 支持的蜂窩和D2D 混合網絡簡稱為SCMA-D2D 混合網絡。對于端到端的通信系統(tǒng)來說,編碼和解碼是最重要的問題。近年來,學者在SCMA-D2D 混合網絡編碼端進行了碼本分配[4-9]、功率優(yōu)化[2,10-11]等一系列研究。然而很少有專門針對SCMA-D2D 混合網絡接收機設計的研究。文獻[12]設計了一種低復雜度的上行鏈路SCMA-D2D 混合網絡解碼器,針對傳統(tǒng)系統(tǒng)用于解碼的消息傳遞算法(message passing algorithm,MPA)和最大似然檢測算法(maximum likelihood,ML)導致的譯碼復雜度過高的問題,提出了一種基于列表球解碼(list sphere decoding,LSD)算法的接收機設計方案LSD-MPA 和MPA-ML 以縮小檢索空間,降低解碼復雜度,但解碼精度沒有明顯提升且D2D 用戶的解碼精度低于SCMA 用戶。SCMA-D2D 混合網絡的用戶間干擾所導致的系統(tǒng)誤比特率(bit error rate,BER)性能差的問題在傳統(tǒng)通信模式下難以有效解決。
隨著人工智能技術的發(fā)展,將深度學習應用于未來移動通信網絡是解決現(xiàn)有諸多通信問題的一種可行方法[13]。深度學習(deep learning,DL)已被用于解決碼本設計[14-15]、解碼[16-22]以及信道估計[22]等問題。文獻[16]和[17]都是將深度學習和MPA 相結合改善系統(tǒng)的解碼性能,學習調整神經網絡邊的權值來實現(xiàn)SCMA 多用戶檢測。文獻[18]提出了一種基于卷積神經網絡(convolutional neural network,CNN)的SCMA 的下行鏈路盲譯碼策略,通過離線訓練構建了神經網絡模型,在線測試階段只需要通過一次神經網絡的運算即可完成解碼。避免了傳統(tǒng)的多用戶檢測算法的多次迭代,降低了解碼復雜度。但是文獻[16-18]都沒有涉及到神經網絡輔助的編碼問題。文獻[14]提出了一種深度學習輔助的SCMA(deep learning aided SCMA,D-SCMA)自編碼器結構,能夠自適應地構造最小化誤碼率的碼本,并使用基于深度神經網絡的編解碼器來學習譯碼策略。在碼字的生成和譯碼策略的確定中采用了一種受自動編碼器的結構。文獻[15]將整個網絡看成一個自動編碼器,將編碼和解碼結合在一起進行訓練以生成最優(yōu)的SCMA 碼字和重建原始比特。文獻[19]提出了一種基于卷積和殘差網絡的端到端的SCMA自動編解碼器,在編碼端使用CNN 單元學習碼字映射規(guī)律,在解碼端引入了參加網絡結構解決由深度增加導致的梯度消失問題,提升了系統(tǒng)的誤比特率(bit error rate,BER)性能,降低了計算復雜度。綜上可知,神經網絡輔助的SCMA 系統(tǒng)編解碼器能夠通過神經網絡單元發(fā)掘數(shù)據(jù)之間的關聯(lián),減少網絡中可訓練參數(shù),降低計算復雜度并獲得良好的譯碼性能。SCMA-D2D 混合網絡是多種用戶類型的網絡系統(tǒng),不僅要考慮到多種用戶的不同編碼特征進行編碼,還要考慮構建解碼器時要降低用戶間的干擾,保證多種用戶解碼精度。文獻[20,21]都提到的基于共享層的多用戶分類器給混合網絡解碼問題提供了新思路。基于共享層的多任務解碼模型能夠在共享層學習總的解碼任務,各個解碼子任務之間互不干擾獨立進行,增強了多用戶譯碼的抗干擾性。
受上述文獻啟發(fā),本文提出了SCMA-D2D 混合網絡卷積自編碼器(CNN-SCMA-D2D)。在編碼端,自適應學習使系統(tǒng)誤碼率性能最好的用戶最佳碼本代替?zhèn)鹘y(tǒng)的碼本映射方式,將信道信息和解碼性能都作為碼本生成的訓練條件,提升系統(tǒng)編碼靈活性、魯棒性;在解碼端,提出基于共享層機制的多用戶分類解碼器,提升解碼精度,降低譯碼復雜度。
圖1 展示的是由Jc個蜂窩用戶和Jd個設備對設備(D2D) 用戶共存的多用戶混合網絡系統(tǒng),Ci表示第i個蜂窩用戶,DTj,DRj分別表示第j個D2D用戶對的發(fā)送器和接收器,其中1 ≤i≤Jc,1 ≤j≤Jd。上行鏈路中D2D 用戶對基站的干擾很小,混合網絡的干擾主要體現(xiàn)在一種用戶將另一種用戶的信息視為干擾。
圖1 混合網絡系統(tǒng)圖
Jc個蜂窩用戶、Jd個D2D 用戶、K個頻譜資源的上行鏈路混合網絡系統(tǒng)中使用稀疏碼分多址技術(SCMA)可以實現(xiàn)頻譜資源的過載。在本系統(tǒng)中,蜂窩用戶數(shù)據(jù)以SCMA 映射的方式將分配到的SCMA 碼字信息復用到K個頻譜資源上,每個蜂窩用戶占用Kc個頻譜資源,1 ≤Kc≤K,實現(xiàn)了一維數(shù)據(jù)到二維碼字的拓展。D2D 用戶采用二進制相移鍵控(binary phase shift keying,BPSK)調制的方式,直接占用K個頻譜資源中的1 個。令用戶數(shù)Jc+Jd>K,達到過載的目的,令Jd<K以限制干擾的強度。根據(jù)系統(tǒng)中各個用戶對頻譜資源的占用情況,隨機生成一個映射矩陣F,如式(1)所示,其中矩陣元素為{0,1} 2 種取值。矩陣F的列對應用戶,矩陣F的行對應頻譜資源。矩陣F的前Jc列代表SCMA 用戶占用頻譜資源的情況,矩陣F的后Jd列代表D2D 用戶占用頻譜資源的情況。矩陣F的前Jc列的列權重為Kc,表示這一列有Kc個取值為1的元素;矩陣F的后Jd列的列權重為1,表示這一列僅有1 個取值為1 的元素。若矩陣的第k行和第m列的元素F{k,m}=1,代表該列所對應的用戶m占用了第k個資源塊,反之則表示對應用戶不會占用該資源塊,1 ≤m≤Jc+Jd。矩陣的行權重取值為種情況,其中取值為整數(shù)。
為了便于描述問題,本文暫時以一個有6 個SCMA 用戶、2 個D2D 用戶對和4 個頻譜資源的系統(tǒng)為例,則有式(2)所示的因子矩陣。本文后續(xù)會對D2D 用戶對數(shù)量對系統(tǒng)性能的影響做實驗探究。
由式(2)給出如圖2 所示的用戶占用資源的因子圖。
圖2 SCMA-D2D 混合網絡因子圖
接收端接收的信號用式(3)表示。
由于增加了新的用戶類型,SCMA-D2D 混合網絡系統(tǒng)既要考慮新的編碼策略,也要考慮能夠降低用戶間干擾、提升解碼精度的解碼算法,將系統(tǒng)的誤比特率(BER)降低到可接受范圍內去提升系統(tǒng)的容量、提升系統(tǒng)的過載率。針對傳統(tǒng)的SCMA-D2D混合網絡采用預設好的固定碼本編碼導致的編碼魯棒性較差以及傳統(tǒng)的迭代譯碼算法在解碼精度上沒有明顯提升且譯碼復雜度高等問題,本節(jié)介紹一種基于卷積神經網絡(CNN)的SCMA-D2D 混合網絡系統(tǒng)卷積自編碼器CNN-SCMA-D2D。在編碼端,分別根據(jù)不同的用戶到頻譜資源的連接情況設計了多用戶聯(lián)合編碼器的結構,并在模型訓練的過程中將信道條件、解碼端性能都考慮在內,使用自適應編碼代替固定碼本,得出對系統(tǒng)適應能力最強、解碼BER性能最好的編碼器結構。在解碼端,針對不同類型的多用戶解碼問題,采用一種基于共享層的多用戶分類解碼結構,以降低用戶間干擾、提升解碼精度。
相比于傳統(tǒng)的固定碼本編碼,神經網絡輔助的自編碼器能夠靈敏地發(fā)掘數(shù)據(jù)之間的規(guī)律,快速地學習使系統(tǒng)模型達到最優(yōu)的編碼映射規(guī)則,并且能夠減少可訓練參數(shù)降低編碼復雜度。將圖2 中連接用戶和頻譜資源的邊稱為用戶到頻譜資源的數(shù)據(jù)流。在CNN-SCMA-D2D 編碼器中,在每一個用戶到頻譜資源的數(shù)據(jù)流中間放置一個CNN 單元去尋找如圖2 所示的從輸入數(shù)據(jù)到指定的頻譜資源的星座點的映射關系。CNN-SCMA-D2D 編碼器結構如圖3所示。分別用fc、fd表示蜂窩用戶和D2D 用戶的CNN 編碼單元分別表示第i個蜂窩用戶編碼單元、第j個D2D 用戶編碼單元(1 ≤i≤Jc,1 ≤表示第i個蜂窩用戶加載到第k個頻譜資源的碼字生成函數(shù)或碼字生成器表示第j個D2D 用戶加載到第k個頻譜資源的調制信息生成函數(shù)或調制信息生成器。
圖3 CNN-SCMA-D2D 混合網絡編碼端結構
rc、rd分別是蜂窩用戶和D2D 用戶的二進制輸入數(shù)據(jù)分別表示第i個蜂窩用戶的二進制輸入數(shù)據(jù)和第j個D2D 用戶的二進制輸入數(shù)據(jù)。每個用戶的二進制比特數(shù)據(jù)按照b比特一組轉換成能被神經網絡單元識別的單熱向量lc、ld,單熱向量的維度為M,其中b=log2M。圖4 所示是CNN 編碼單元的內部結構示意圖,共有3 個隱藏層進行數(shù)據(jù)處理操作,CNN 的輸入節(jié)點個數(shù)為M,對應輸入數(shù)據(jù)單熱向量的維度;輸出節(jié)點個數(shù)為2,對應學習到的碼字信息的維度分別表示第i個蜂窩用戶的輸入數(shù)據(jù)所對應的單熱向量和第j個D2D 用戶的輸入數(shù)據(jù)所對應的單熱向量(1 ≤i≤6,1 ≤j≤2)。加載到頻譜資源k上的第i個蜂窩用戶的原始數(shù)據(jù)所對應的碼字向量如式(5)所示。加載到頻譜資源k上的第j個D2D 用戶所對應的編碼單元調制信息向量如式(6)所示。
圖4 CNN 單元隱藏層結構
將頻譜資源上的所有碼字進行疊加之后作為編碼端的輸出,如式(7)所示。
頻譜資源上的混合信號送到高斯信道中,傳輸?shù)浇邮斩?接收端接收到的信號如式(8)所示,其中n表示高斯信道向量。
基于共享層的CNN-SCMA-D2D混合網絡多用戶分類解碼器由共享層和用戶分類解碼層組成。解碼器的任務是輸出不同類型用戶的信息。由于存在多種用戶識別任務,需要建立一個具有共享分支的模型,共享層結構剛好滿足了這一點。共享層[20],簡單來說,就是對一個層的多次調用,即共享這個層。由于不需要每次調用都建立一個新的層,每次調用都可以重復使用相同的權重。在共享層中學習總的解碼任務,并在多任務分支解碼結構中獨立學習本層的解碼任務,各個分支任務獨立進行、互不干擾。由此便可以建立一個接收信號y為共享層、多用戶分類解碼層為分支的基于共享層機制的多用戶分類解碼器,如圖5 所示。
圖5 基于共享層的CNN-SCMA-D2D 多用戶分類解碼器
接收端的接入信號y首先經過共享層處理,共享層的輸入輸出表達式如式(9)所示。
共享層的輸出ys、θs表示共享層的神經網絡超參數(shù),包括權重ws和偏差bs。圖5 中uc表示蜂窩用戶的分類解碼器,ud表示D2D 用戶的分類解碼器;sc和sd分別表示蜂窩用戶和D2D 用戶的解碼器預測結果,在模型訓練和計算信噪比時需要處理成和輸入數(shù)據(jù)類型相同類型的向量,方便代入模型損失函數(shù)進行計算。表示的第i個元素,表示的第j個元素。
第i個SCMA 蜂窩用戶解碼過程如式(10)所示,第j個D2D 用戶解碼過程用式(11)表示。
其中,i=1,2,…,Jc;j=1,2,…,(·) 的輸入為共享層s(·) 的輸出為第i個蜂窩用戶解碼器的網絡參數(shù),包括為第j個D2D 用戶解碼器的網絡參數(shù),包括。在分類解碼器的輸出層采用了softmax 函數(shù)作為激活函數(shù)。softmax 函數(shù)將輸出的結果轉化為總和為1 的概率值,將解碼器輸出的實值向量轉換為歸一化的概率分布。softmax 函數(shù)輸入越大,概率越大,因此softmax 函數(shù)用于本文的多用戶分類解碼器非常合適。softmax 函數(shù)的表示如式(12)所示。
其中,zi表示神經網絡輸出的一個結果,∑kezk表示神經網絡所有輸出結果的總和,Si表示神經網絡輸出結果的概率。
為了使系統(tǒng)能盡可能地重構原始的用戶信息,本文采用了端到端的訓練方式,在不同的訓練信噪比下訓練網絡,不斷更新神經網絡單元中的參數(shù),發(fā)掘有用的信息,在有限的迭代次數(shù)內最小化模型損失函數(shù)的值。
為了使模型訓練達到最好,使用交叉熵損失函數(shù)作為模型優(yōu)化的目標函數(shù)。交叉熵損失函數(shù)用來衡量模型學習到的分布和真實分布的差異。交叉熵越大說明2 種概率分布的差異越大。模型優(yōu)化的目標是最小化目標函數(shù)的值讓模型達到最佳性能。經過解碼器解碼出來的預測數(shù)據(jù)會首先經過softmax處理成0~1 之間的概率數(shù)據(jù),然后送到log()中進行運算。
蜂窩用戶對應的交叉熵損失函數(shù)Lc如式(13)所示。
D2D 用戶對應的交叉熵損失函數(shù)Ld如式(14)所示。
本節(jié)首先對本文提出的CNN-SCMA-D2D 混合網絡自編碼器的最佳參數(shù)進行實驗分析與論述,其次與傳統(tǒng)的混合網絡解碼算法的實驗性能進行對比分析。為公平起見,本文所有的實驗均在相同的實驗設備上進行。所做實驗的場景是單小區(qū)單天線下的上行鏈路SCMA-D2D 混合網絡系統(tǒng)。本節(jié)采用的模擬器實驗使用了深度學習庫,如TensorFlow 和KERAS。仿真實驗基于Python 3.7.6。訓練信噪比定為10 dB,先將用戶原始數(shù)據(jù)按照2 比特一組進行分組,然后轉變成4 比特一組的單熱向量。每個CNN 單元的隱藏層設為3,步長為1,寬度為1。訓練數(shù)據(jù)集由20 萬個隨機數(shù)據(jù)點組成,批處理大小為400。用自適應矩估計(adaptive moment estimation,ADAM)尋找式(13)、(14)中的最佳值,學習率設置為0.000 1。隱藏層的節(jié)點設置為32、64、32。在加性高斯白噪聲(additive white Gaussion noise,AWGN)信道下的混合網絡上行信道中進行了仿真實驗。
由于本文所對比的文獻[12]中并沒有對D2D的最佳數(shù)目進行探究說明,故本節(jié)對D2D 用戶數(shù)目對不同用戶分類解碼器的誤比特率性能影響進行實驗,SCMA 蜂窩用戶的數(shù)目設置為6,頻譜資源的數(shù)目設置為4,分別將D2D 用戶的數(shù)目設置成1、2、3、4 并進行相關的對比實驗。實驗結果如圖6、圖7 所示。
圖6 D2D 用戶數(shù)目對SCMA 分類解碼器的BER 性能影響
圖7 D2D 用戶數(shù)目對D2D 分類解碼器的BER 性能影響
從圖6 所示的實驗結果可以看出,對于SCMA蜂窩用戶來說,D2D 的數(shù)目越多干擾越大,SCMA 用戶分類解碼器解碼性能越差。當D2D 用戶超過2個時,會導致SCMA 用戶分類解碼器失去解碼能力。從圖7 所示的實驗結果可以看出,D2D 的數(shù)目為1和4 的時候,D2D 用戶分類解碼器的解碼性能都很差,當D2D 用戶的數(shù)目為2 和3 時,D2D 用戶解碼器的解碼性能達到最佳。由于我們的系統(tǒng)是多用戶混合網絡,在考慮網絡配置的時候綜合考慮到每種用戶的情況,將D2D 用戶數(shù)目設置為2,可以使每種用戶解碼器的BER 性能都達到良好的水平。
本實驗對比了本文所提出的CNN-SCMA-D2D解碼方案與傳統(tǒng)的使用MPA 解碼的SCMA 方案(SCMA system w/o D2D)以及使用列表球算法的SCMA-D2D 混合網絡[12]解碼方案的BER 性能。文獻[12]介紹了一種上行鏈路下的SCMA-D2D 混合網絡接收機設計方案,網絡因子圖與本文一致,對SCMA 用戶采用LSD-MPA 算法,對D2D 用戶對采用LSD-ML 算法。圖8 所示是本文的解碼器性能與上述系統(tǒng)的解碼器性能的對比圖。由圖8 可知,在AWGN 信道下,本文的CNN-SCMA-D2D for SCMA的誤碼率性能優(yōu)于LSD-MPA,CNN-SCMA-D2D for D2D 誤碼率性能優(yōu)于LSD-ML,并且LSD-ML 的性能明顯差于LSD-MPA。文獻[12]中的解碼算法不同用戶間解碼差異很大。由于共享層的引入,本文所提出的基于共享層的CNN-SCMA-D2D 多用戶分類解碼器能夠很好地降低用戶間干擾對系統(tǒng)解碼器的影響,降低不同用戶解碼器的解碼性能差異。由于用戶間干擾的存在,混合網絡的解碼性能會比單一網絡的解碼性能要差一些。相比于使用MPA 解碼算法進行解碼的單一用戶的SCMA 系統(tǒng),本文的SCMA 多用戶分類解碼器的BER 性能損失在可接受范圍內,且能夠有效地降低譯碼復雜度。在相同的信噪比(signal to noise ratio,SNR)下,比如SNR=10 dB,本文提出的CNN-SCMA-D2D多用戶分類解碼器中的SCMA 用戶分類解碼器相比于只有SCMA蜂窩用戶系統(tǒng)的MPA 解碼的BER 性能損失為0.5 dB,在可接受的范圍內。
圖8 不同算法在AWGN 信道下的誤碼率性能比較
由于神經網絡能夠一次解碼出全部用戶信息,相比于傳統(tǒng)的迭代譯碼方法能夠顯著降低譯碼復雜度。本節(jié)分析了CNN-SCMA-D2D 算法的譯碼計算復雜度。設J為用戶數(shù),K為資源數(shù),Ls(Lu) 表示第n層共享層(用戶層)的隱藏層數(shù)目。Ns(Nu) 表示第n層共享層(用戶層)的隱藏層節(jié)點數(shù)目。由于SCMA 和D2D 用戶解碼端的隱藏層層數(shù)是一樣的,Lu兩者可以共用。本文以SCMA 用戶的解碼復雜度性能進行對比,CNN-SCMA-D2D 和LSD-MPA的乘加(multiply-accumulate,MAC)操作次數(shù)如表1和圖9 所示,每個用戶的平均解碼時間對比如圖10所示。
圖9 LSD-MPA 和CNN-SCMA-D2D 的MAC 數(shù)量對比
圖10 LSD 解碼與CNN-SCMA-D2D 解碼時間對比
本文為解決SCMA-D2D 混合網絡的編碼設計以及不同用戶間干擾等問題,提出了一種基于卷積神經網絡的SCMA-D2D 混合網絡卷積自編碼器。建立端到端的自編碼器訓練模型,將所有用戶的編碼單元、信道條件和解碼單元進行聯(lián)合訓練,得出對系統(tǒng)適應性最強、使BER 性能最好的碼本。在解碼端提出一種基于共享層的多用戶分類解碼器,將解碼問題轉化成多輸出分類問題,在共享層抽取所有用戶的有效信息,由此降低用戶間干擾,提升了解碼精度。此外神經網絡一次性解碼相比于傳統(tǒng)的迭代譯碼算法能夠有效降低計算復雜度,在譯碼時間和譯碼復雜度上本文所提出的解碼器都優(yōu)于傳統(tǒng)的迭代譯碼算法。