李 碩,王友國,柴 允,任珈儀
(1.南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003;
2.南京郵電大學(xué) 理學(xué)院,江蘇 南京 210023)
隨著移動(dòng)通信系統(tǒng)需求的增加,第五代移動(dòng)通信系統(tǒng)已經(jīng)得到了廣泛應(yīng)用,但低時(shí)延和高速率仍然是人們不懈的追求[1]。極化碼屬于線性分組碼,它的復(fù)雜度較低,速率高[2],目前已被選為5G控制信道的編碼方案。然而,極化碼傳統(tǒng)的解碼算法迭代計(jì)算較多,有效性和可靠性難以均衡[3],因此,迫切需要設(shè)計(jì)一種高速低延遲的極化碼解碼算法。
深度神經(jīng)網(wǎng)絡(luò)通過具有非線性處理單元的多層層疊尋找和轉(zhuǎn)換編碼結(jié)構(gòu)和噪聲特征,與傳統(tǒng)的迭代解碼相比,深度神經(jīng)網(wǎng)絡(luò)的解碼器通過單次解碼,為低延遲實(shí)現(xiàn)提供了基礎(chǔ)[4]。此外,通過利用現(xiàn)有的深度神經(jīng)網(wǎng)絡(luò)平臺(tái),可以輕松滿足高速需求[5]。Lyu[6]使用了三種經(jīng)典的神經(jīng)網(wǎng)絡(luò)進(jìn)行譯碼嘗試,它們的參數(shù)大小相同,經(jīng)測試對比,RNN具有較好的解碼性能,但需要以高計(jì)算開銷為代價(jià),并且由于學(xué)習(xí)能力受到限制,導(dǎo)致每種類型的神經(jīng)網(wǎng)絡(luò)都存在一個(gè)飽和長度。郭銳[7]嘗試通過調(diào)控神經(jīng)網(wǎng)絡(luò)的batch和epoch參數(shù),利用CNN對極化碼長碼進(jìn)行譯碼,在低信噪比下CNN性能略優(yōu)于傳統(tǒng)譯碼算法,但在高信噪比下CNN的性能會(huì)逐漸下降。徐想[8]針對神經(jīng)網(wǎng)絡(luò)譯碼器對于極化碼長碼的訓(xùn)練效果不佳的問題,設(shè)計(jì)了分區(qū)神經(jīng)網(wǎng)絡(luò)譯碼算法,降低了譯碼器譯碼時(shí)延。
通過利用傳統(tǒng)的CNN和RNN作為工具對極化碼的譯碼研究在時(shí)間效率上取得了不錯(cuò)的效果,但為了推廣到更多更復(fù)雜的場合中,還需要更廣泛且高效的技術(shù)。近年來許多改進(jìn)的研究陸陸續(xù)續(xù)被提出,其中Shaojie Bai等人[9]設(shè)計(jì)了新型架構(gòu),將其命名為時(shí)間卷積網(wǎng)絡(luò),它與RNN的功能相似,相比傳統(tǒng)的CNN,可以進(jìn)行大規(guī)模并行處理,縮短了訓(xùn)練和驗(yàn)證的時(shí)間,減小了梯度消失的可能性。該文將嘗試使用TCN進(jìn)行極化碼的譯碼,并通過調(diào)試TCN的各式參數(shù),探討對譯碼性能的影響。
極化碼由Arikan提出[10],它在二進(jìn)制離散無記憶信道的條件下,當(dāng)碼長N趨近于無限長的時(shí)候,可以產(chǎn)生信道極化的現(xiàn)象。它是信道合并與信道分裂兩種信道操作的結(jié)果,在這兩種操作下,原本相同的N個(gè)分裂信道產(chǎn)生了極化現(xiàn)象,使它們的信道容量趨近于0或趨近于1,從而在理論上逼近了香農(nóng)極限。
極化碼的傳統(tǒng)解碼方式為連續(xù)消除(successive cancellation,SC)譯碼算法,它采用蝶形算法,特點(diǎn)是當(dāng)前第i位的碼字的判定需要第i-1位的估計(jì)值,串行執(zhí)行,通過譯碼器進(jìn)行逐次迭代遞歸求解似然比的方式進(jìn)行解碼,其中似然比見式(1),判決式見式(2)[2]。
(1)
(2)
通過這樣的方式,SC的譯碼算法可將當(dāng)前位的估計(jì)值直接判決為“0”或者“1”,雖然算法復(fù)雜度較低,但它僅能保證局部最優(yōu)化,無法進(jìn)行并行解碼,且當(dāng)前位碼字的判決需要前一位的估計(jì)值,容錯(cuò)性較差。Vardy等人[11]提出了改進(jìn)算法,可保留L條譯碼路徑進(jìn)行可靠性選擇。Niu等人[12]進(jìn)一步加入了循環(huán)冗余校驗(yàn)碼,相比SC譯碼算法,大幅度提升了譯碼準(zhǔn)確性,但需要更多的譯碼時(shí)延和存儲(chǔ)空間,大大增加了復(fù)雜度。
RNN之所以擅長處理時(shí)序相關(guān)的問題,正是因?yàn)樗h(huán)自回歸的結(jié)構(gòu),非常適合處理時(shí)間序列。傳統(tǒng)的CNN由于卷積核大小的限制,無法收獲時(shí)間較長的相關(guān)信息。但經(jīng)過人們不懈的研究發(fā)現(xiàn),一些特定的CNN結(jié)構(gòu)也會(huì)有不錯(cuò)的效果。TCN作為一種特殊的卷積神經(jīng)網(wǎng)絡(luò),通過一維全卷積網(wǎng)絡(luò)(1-dimensional fully convolutional networks,1-D FCN)結(jié)構(gòu)和膨脹因果卷積結(jié)構(gòu),實(shí)現(xiàn)了每個(gè)時(shí)間的輸入都有對應(yīng)的輸出,并且保證了歷史數(shù)據(jù)的完整性,在目前多種任務(wù)中可以實(shí)現(xiàn)超越RNN模型的效果[9]。
TCN采取因果卷積的構(gòu)造,其特點(diǎn)是對于輸出t時(shí)刻的數(shù)據(jù)yt,其輸入時(shí)刻只可能是t或t時(shí)刻以下。因果卷積無法看到未來的數(shù)據(jù),它為單向結(jié)構(gòu),當(dāng)計(jì)算當(dāng)前時(shí)間步的輸出時(shí),會(huì)自動(dòng)將超過當(dāng)前時(shí)間步的輸入“切掉”,這樣嚴(yán)格保證了時(shí)序性。同時(shí),TCN還使用了1-D FCN的結(jié)構(gòu)代替了全連接,減少了不必要的計(jì)算和空間[13],更使得每個(gè)輸出層都可以保持和輸入層一樣的時(shí)間長度被繼續(xù)傳遞,維持了相同的時(shí)間步,不論在哪一層,每個(gè)時(shí)間步的輸入與輸出均一一對應(yīng)。其中,當(dāng)處理第一個(gè)時(shí)間步時(shí),由于沒有任何歷史的信息,TCN默認(rèn)其歷史數(shù)據(jù)全是0。以卷積核大小為2的單次卷積操作為例,TCN的卷積運(yùn)算如圖1所示,在任意t時(shí)刻,卷積操作輸出yt為:
yt=ω1xt-1+ω2xt
(3)
圖1 TCN的卷積操作
假設(shè)在因果卷積中,一個(gè)輸出與輸入的N個(gè)時(shí)間點(diǎn)都存在關(guān)聯(lián),則構(gòu)成的TCN深度為N-1,當(dāng)N很大時(shí),TCN深度過大,會(huì)使得網(wǎng)絡(luò)結(jié)構(gòu)過于復(fù)雜,因此提出改進(jìn)結(jié)構(gòu)膨脹因果卷積[9],通過引入膨脹因子d,可以克服這一問題。設(shè)卷積核大小為2,擴(kuò)展值為{1,2,4,8},膨脹因果卷積的TCN示意圖如圖2左半部分所示。
此外,為了應(yīng)對一些很深的復(fù)雜模型,使TCN在深層條件下不會(huì)丟失信息,采用殘差網(wǎng)絡(luò)的連接方式,其結(jié)構(gòu)框圖如圖2右半部分所示。它替代了TCN層與層之間的簡單連接,與ResNet的殘差塊結(jié)構(gòu)相似[14]。卷積核接收到的信息也會(huì)分為兩部分,左側(cè)是參加多次卷積核處理后獲得的信息,包括兩層的膨脹因果卷積和非線性映射,并在每層加入WeightNorm和Dropout防止過擬合;右側(cè)則是底層的局部信息的直接連接內(nèi)容通過自設(shè)的卷積層進(jìn)行簡單的變換,兩者相加,這樣使得輸出的內(nèi)容具有豐富并清晰的底層信息,不容易遺失細(xì)節(jié)特征,是訓(xùn)練深層網(wǎng)絡(luò)的有效方法??偟膩碚f,將膨脹因果卷積和殘差鏈接兩種技術(shù)一起使用,可使處理的數(shù)據(jù)值保證精確度和特征,兼顧訓(xùn)練,速度可觀,再將改進(jìn)的TCN模型的最頂層連接至最頂部隱藏層進(jìn)行輸出[15]。
圖2 膨脹因果卷積與殘差模塊示意圖
TCN的極化碼譯碼算法架構(gòu)如圖3所示。
圖3 TCN譯碼器架構(gòu)
(4)
該文使用交叉熵函數(shù)(binary_crossentropy)作為損失函數(shù),并通過Adam算法[16]優(yōu)化網(wǎng)絡(luò)神經(jīng)參數(shù),能夠?qū)Σ煌瑓?shù)調(diào)整合適的學(xué)習(xí)速率,使得學(xué)習(xí)速率在一定的范圍內(nèi)移動(dòng),達(dá)到最小化損失函數(shù)的目的。
數(shù)據(jù)預(yù)處理:訓(xùn)練數(shù)據(jù)大小為4×106,設(shè)置信息比特?cái)?shù)目為K,通過極化碼編碼將K個(gè)信息比特混入凍結(jié)比特,調(diào)制并添加設(shè)置好信噪比(固定)的高斯噪聲,將添加噪聲后的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),信源數(shù)據(jù)作為標(biāo)簽,反復(fù)訓(xùn)練;測試集同理,數(shù)據(jù)大小為2×104。為了解決龐大的數(shù)據(jù)輸入的問題,使用minibatch和epoch參數(shù)限制輸入數(shù)據(jù)的大小。為加快TCN的訓(xùn)練速度,提高收斂速度,卷積層使用批量歸一化函數(shù)。
參數(shù)設(shè)置:訓(xùn)練階段輸入為(16,8),碼率為1/2,序列數(shù)為4×105,測試階段輸入序列為2×104。minibatch設(shè)置為1,epoch設(shè)置為45。隨機(jī)抽取2×104組16×1個(gè)序列,在訓(xùn)練階段的信噪比設(shè)置為3 dB,測試階段的信噪比設(shè)置為0~5 dB,間隔為0.2 dB。默認(rèn)殘差塊數(shù)目為4,每個(gè)殘差塊有三層卷積層,每層有175個(gè)卷積核,卷積核大小為5。
圖4 TCN譯碼器在訓(xùn)練過程中損失函數(shù)的變化
圖5 基于TCN的極化碼譯碼性能(N=16,K=8)
圖4為訓(xùn)練時(shí)損失函數(shù)的變化,可以看出當(dāng)訓(xùn)練樣本的迭代次數(shù)在50之前時(shí),損失函數(shù)下降較明顯,學(xué)習(xí)速度較快;當(dāng)訓(xùn)練樣本的迭代次數(shù)超過50以后,損失函數(shù)基本保持穩(wěn)定,網(wǎng)絡(luò)性能趨于收斂狀態(tài)。TCN的譯碼性能如圖5所示,可以看出隨著測試信噪比的不斷增加,譯碼的準(zhǔn)確率也逐漸變得越來越可觀,證明了TCN模型作為極化碼譯碼的有效工具的可行性。為了探究TCN模型各個(gè)參數(shù)對譯碼性能的影響,接下來控制其他參數(shù)不變,探究各個(gè)參數(shù)對誤碼率的影響。
(1)僅調(diào)整TCN內(nèi)的卷積核大小(分別為1、2、3、4、5)進(jìn)行TCN譯碼性能對比,效果如圖6(a)所示??梢钥闯鏊鼈兌紩?huì)隨著信噪比的增加而逐漸降低誤碼率,并且卷積核大小越小,譯碼性能越好,譯碼性能提升越明顯。
(a)不同卷積核大小
(b)不同卷積核個(gè)數(shù)
(2)僅調(diào)整TCN的殘差塊內(nèi)卷積核的數(shù)量(分別為100、125、150、175、200)進(jìn)行譯碼性能對比,效果如圖6(b)所示??梢钥闯鏊鼈兌紩?huì)隨著信噪比的增加而逐漸降低誤碼率,并且卷積核數(shù)量和譯碼性能是正相關(guān)的,其中當(dāng)卷積核數(shù)目在100~175的范圍內(nèi),通過提升卷積核數(shù)目改進(jìn)TCN的譯碼效果明顯。
(3)僅調(diào)整TCN內(nèi)的殘差塊數(shù)量(分別為1、2、4、6)進(jìn)行譯碼性能對比,效果如圖7(a)所示。可以看出它們都會(huì)隨著信噪比的增加而逐漸降低誤碼率,但是它們的性能相差不大,殘差塊為6時(shí)的譯碼性能要略低于殘差塊為1時(shí)的譯碼性能,并且每增加一個(gè)殘差塊都會(huì)大大增加復(fù)雜度,提高內(nèi)存需求,因此在實(shí)際設(shè)計(jì)進(jìn)行極化碼譯碼時(shí),不宜設(shè)計(jì)過多殘差塊。
(a)不同殘差塊個(gè)數(shù)
(b)不同輸入信噪比
(4)僅調(diào)整TCN訓(xùn)練階段的輸入信噪比(分別為1 dB、3 dB、5 dB、10 dB、15 dB、20 dB)進(jìn)行譯碼性能對比,效果如圖7(b)所示??梢钥闯鏊鼈兌紩?huì)隨著信噪比的增加而逐漸降低誤碼率,輸入信噪比大小為3 dB左右時(shí),譯碼性能較佳,增加輸入信噪比并不會(huì)對譯碼性能有較好的改善。
(5)僅調(diào)整TCN訓(xùn)練參數(shù)epoch的值(分別為5、15、25、35、45、65、85、105)進(jìn)行譯碼性能對比,效果如圖8(a)所示??梢钥闯鏊鼈兌紩?huì)隨著信噪比的增加而逐漸降低誤碼率,在epoch值從5至15時(shí)對譯碼性能提升明顯,當(dāng)epoch值超過15時(shí),對譯碼性能的影響不大。
(6)僅調(diào)整TCN的訓(xùn)練序列數(shù)(分別為1×105、2×105、3×105、4×105)進(jìn)行譯碼性能對比,效果如圖8(b)所示??梢钥闯鏊鼈兌紩?huì)隨著信噪比的增加而逐漸降低誤碼率,當(dāng)訓(xùn)練序列數(shù)小于2×105時(shí),譯碼性能相差較小;當(dāng)訓(xùn)練序列數(shù)超過2×105時(shí),譯碼性能會(huì)大幅度提升,當(dāng)訓(xùn)練序列數(shù)為4×105時(shí),譯碼效果較好。
(a)不同epoch值
(b)不同訓(xùn)練數(shù)
通過對六種網(wǎng)絡(luò)模型參數(shù)的調(diào)試,可以在原有的基礎(chǔ)上實(shí)現(xiàn)TCN對極化碼譯碼的性能提升,其中對訓(xùn)練序列數(shù)、卷積核的大小和數(shù)目進(jìn)行適當(dāng)調(diào)試可取得較好的譯碼增幅效果,使得TCN在極化碼譯碼的應(yīng)用推廣又前進(jìn)了一步。
該文提出了基于TCN的極化碼譯碼模型,利用TCN內(nèi)特有的膨脹因果卷積和殘差塊結(jié)構(gòu),實(shí)現(xiàn)了對極化碼較好的譯碼,并通過調(diào)試TCN的各式參數(shù),探討對譯碼性能的影響。該文主要探討了極化碼為短碼時(shí)的時(shí)間卷積網(wǎng)絡(luò)的譯碼性能,但可以基于此進(jìn)一步探究當(dāng)極化碼為長碼時(shí),TCN的性能是否會(huì)有較大影響。