王玉環(huán),尹航,楊占昕
(中國傳媒大學(xué)廣播電視數(shù)字化教育部工程研究中心,北京 100024)
當(dāng)今時代,神經(jīng)網(wǎng)絡(luò)技術(shù)得到了質(zhì)的飛躍,應(yīng)用范圍也涉及到了多個領(lǐng)域。神經(jīng)網(wǎng)絡(luò)處理信息的規(guī)則和人腦的信息處理機(jī)制相似,具有并行運(yùn)算、分布式存儲、聯(lián)想記憶、自組織自適應(yīng)和容錯的能力。
神經(jīng)網(wǎng)絡(luò)與糾錯碼技術(shù)有著相似的理論背景,尤其是在數(shù)學(xué)方法上有著相似的密切聯(lián)系。將神經(jīng)網(wǎng)絡(luò)應(yīng)用到糾錯碼的譯碼中,計(jì)算復(fù)雜度得到了降低,且在一定的程度上誤碼性能也得到了提升。
低密度奇偶檢驗(yàn)碼(LDPC碼)和極化碼(Polar碼)是5G移動通信系統(tǒng)中信道編碼的候選技術(shù),也是衛(wèi)星通信、軍事通信等眾多通信系統(tǒng)中信道編碼的常用方法。研究基于神經(jīng)網(wǎng)絡(luò)的LDPC碼和Polar碼的譯碼方法是具有理論和實(shí)用意義的。
本文第二部分介紹了神經(jīng)網(wǎng)絡(luò)的發(fā)展過程;第三部分重點(diǎn)介紹基于神經(jīng)網(wǎng)絡(luò)的LDPC碼和Polar碼的譯碼方法,以及討論了各種方法的優(yōu)缺點(diǎn);第四部分分析了對未來的研究方向。
神經(jīng)網(wǎng)絡(luò)是由大量的神經(jīng)元構(gòu)成。神經(jīng)元模型(如圖1)是由美國心理學(xué)家McCulloch和數(shù)學(xué)家Pitts在1943年提出的,這為神經(jīng)網(wǎng)絡(luò)的理論研究開辟了嶄新的道路。
圖1 神經(jīng)元的模型
圖1中,w_i,j表示兩個神經(jīng)元i和j之間的連接權(quán)值;激活函數(shù)可限制神經(jīng)元輸出的振幅;偏置改變激活函數(shù)的網(wǎng)絡(luò)輸入。
感知機(jī)[1]是最簡單的神經(jīng)網(wǎng)絡(luò),也是首次將神經(jīng)網(wǎng)絡(luò)和模式識別相結(jié)合的裝置。由于自身結(jié)構(gòu)和網(wǎng)絡(luò)層數(shù)的限制,使得感知機(jī)對于一些復(fù)雜的異或問題沒有處理的能力。
Hopfield網(wǎng)絡(luò)模型是由Hopfield教授在1982年提出的[2],同時還提出能量函數(shù)。Hopfield網(wǎng)絡(luò)的出現(xiàn)打破了感知機(jī)的應(yīng)用局限,它是一種遞歸神經(jīng)網(wǎng)絡(luò),其模型可以實(shí)現(xiàn)聯(lián)想記憶功能和作為聯(lián)想存儲器。
1983年,Sejnowski和Hinton提出了“隱單元”的概念,并且設(shè)計(jì)了波爾茲曼機(jī)(Boltzmann Machine,BM)[3]。BM可以從復(fù)雜的數(shù)據(jù)中發(fā)現(xiàn)潛在的特征并進(jìn)行無監(jiān)督學(xué)習(xí),但是網(wǎng)絡(luò)的訓(xùn)練時間比較長。為了減少訓(xùn)練時間,引入了限制波爾茲曼機(jī)(RBM)[4],RBM可以解決分類、回歸、降維等問題。
隨著網(wǎng)絡(luò)層數(shù)的增加,神經(jīng)網(wǎng)絡(luò)的逼近能力也在增強(qiáng),但是網(wǎng)絡(luò)參數(shù)的訓(xùn)練是一個很繁瑣的過程,同時也是制約多層神經(jīng)網(wǎng)絡(luò)發(fā)展的關(guān)鍵因素。
1986年,Rumelhart、Hinton和Williams提出了著名的訓(xùn)練算法—反向傳播算法(BP,Back Propagation)[5],BP算法的出現(xiàn)使得神經(jīng)網(wǎng)絡(luò)的研究進(jìn)入了嶄新的階段。BP神經(jīng)網(wǎng)絡(luò)的優(yōu)勢是在事前不知道輸入和輸出確定數(shù)學(xué)關(guān)系表達(dá)式時,可以通過學(xué)習(xí)來存儲輸入和輸出之間的內(nèi)在關(guān)系。
為了模擬生物神經(jīng)元的局部響應(yīng)特性,1988年,Broomhead和Lowe將徑向基函數(shù)引入到了神經(jīng)網(wǎng)絡(luò)中,形成徑向基神經(jīng)網(wǎng)絡(luò)(RBP)[6]。RBP神經(jīng)網(wǎng)絡(luò)可以實(shí)現(xiàn)問題的線性可分化。
由于有限的樣本和計(jì)算單元導(dǎo)致數(shù)據(jù)間復(fù)雜函數(shù)的表現(xiàn)能力有限,使得一般神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力不強(qiáng),因此,Geoffrey Hinton和Ruslan Salakhutdinov提出了深度學(xué)習(xí)的模型[7],并證明隱含層的個數(shù)越多,網(wǎng)絡(luò)的特征學(xué)習(xí)能力越強(qiáng)。深度學(xué)習(xí)建立了從底層簡單特征到高層抽象語義的非線性映射關(guān)系[8],這一研究成果推動了深度神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)的新時代。
網(wǎng)絡(luò)參數(shù)訓(xùn)練算法的不完善制約著神經(jīng)網(wǎng)絡(luò)的發(fā)展,傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的訓(xùn)練算法在深度神經(jīng)網(wǎng)絡(luò)中難以完成網(wǎng)絡(luò)的學(xué)習(xí)任務(wù),為了解決這個問題,提出了“逐層預(yù)訓(xùn)練”和“精調(diào)”的訓(xùn)練方法[9],使得深度學(xué)習(xí)的應(yīng)用領(lǐng)域廣泛。
神經(jīng)網(wǎng)絡(luò)最早被用于重復(fù)碼和置換矩陣碼的譯碼中,是J.C.Platt教授和J.J.Hopfield教授在1986年提出的,譯碼中采用的結(jié)構(gòu)是Hopfield網(wǎng)絡(luò)[10]。
隨后,J.Bruck和M.Blaum提出了圖碼與神經(jīng)網(wǎng)絡(luò)之間存在等價的關(guān)系,并證明了線性分組碼和非線性分組碼的最大似然譯碼問題等價于求解一個神經(jīng)網(wǎng)絡(luò)收斂于它能量函數(shù)的全局極大問題[11]。
為了充分的利用分組碼的代數(shù)結(jié)構(gòu),將徑向基函數(shù)引入到網(wǎng)絡(luò)中形成徑向基神經(jīng)網(wǎng)絡(luò)。利用徑向基神經(jīng)網(wǎng)絡(luò)[12,13]來進(jìn)行譯碼不需要進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,只需要將所譯碼的碼字加入到網(wǎng)絡(luò)中就完成了譯碼的過程,網(wǎng)絡(luò)的結(jié)構(gòu)簡單,適用于任意長度的碼字;但是此方法是以損失糾錯能力為代價減少一些運(yùn)算量。
在糾錯碼中,LDPC碼和Polar碼是5G移動通信系統(tǒng)中信道編碼的候選技術(shù),也是眾多通信系統(tǒng)中信道編碼的常用方法?;诖?,重點(diǎn)介紹基于神經(jīng)網(wǎng)絡(luò)的LDPC碼和Polar碼的譯碼方法,總結(jié)了各種方法的優(yōu)缺點(diǎn),以及未來的研究方向。
LDPC碼[14]是一種具有很強(qiáng)糾錯能力的信道編碼,其校驗(yàn)矩陣是稀疏矩陣,即矩陣中非零元素的個數(shù)遠(yuǎn)遠(yuǎn)小于零元素的個數(shù)。
LDPC碼最常用的表示方法是Tanner圖(二分圖)[15]。例如一個(8,2,4)的LDPC碼,校驗(yàn)矩陣如下所示:
上述LDPC碼的Tanner圖如圖2所示,vi表示變量節(jié)點(diǎn);ci表示校驗(yàn)節(jié)點(diǎn);兩個集合的內(nèi)部不存在相連的邊。
圖2 (8,2,4)LDPC碼的Tanner圖
LDPC碼已有的譯碼算法,大部分都是基于消息置信度的迭代譯碼,所需的計(jì)算量高,同時還需要迭代譯碼計(jì)算,而且性能效果好的譯碼復(fù)雜度高,譯碼復(fù)雜度低的譯碼性能低,無法達(dá)成一個平衡點(diǎn)。將神經(jīng)網(wǎng)絡(luò)和LDPC碼的譯碼過程相結(jié)合,充分利用彼此的優(yōu)勢,形成具有收斂速度快、時延穩(wěn)定、并行度高的譯碼方法。
3.1.1 研究現(xiàn)狀
神經(jīng)網(wǎng)絡(luò)可以作為分類器,將所有的碼字存儲在網(wǎng)絡(luò)中,進(jìn)行網(wǎng)絡(luò)訓(xùn)練,訓(xùn)練結(jié)束后,將所要譯的碼字作為網(wǎng)絡(luò)的輸入,其譯碼就是將碼字進(jìn)行分類,即將輸入的碼字與存儲的所有碼字進(jìn)行匹配。
一般線性分組碼神經(jīng)網(wǎng)絡(luò)[16,17]可以實(shí)現(xiàn)LDPC譯碼算法(如圖3),該網(wǎng)絡(luò)是由網(wǎng)絡(luò)輸入層和輸出緩沖層構(gòu)成。該算法的譯碼結(jié)構(gòu)簡單,易于實(shí)現(xiàn);但譯碼性能不及標(biāo)準(zhǔn)的置信傳播譯碼算法。對于長LDPC碼,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)會變得越來越復(fù)雜,且訓(xùn)練所需時間過長。
圖3 一般線性分組碼的神經(jīng)網(wǎng)絡(luò)譯碼結(jié)構(gòu)
圖3中,神經(jīng)網(wǎng)絡(luò)有n個輸入,輸入端接收從信道接收到的碼字信息;神經(jīng)網(wǎng)絡(luò)每層有N個神經(jīng)元,代表所譯碼字的個數(shù)。
利用多項(xiàng)式神經(jīng)網(wǎng)絡(luò)可以進(jìn)行LDPC碼的譯碼[18],譯碼中將多項(xiàng)式函數(shù)作為高階感知器的判決函數(shù),對于短碼來說譯碼性能良好,但是對于長碼而言,譯碼的復(fù)雜度、計(jì)算量和存儲空間都在增加。
基于多層感知器神經(jīng)網(wǎng)絡(luò)的LDPC碼譯碼方法[19,20],將神經(jīng)網(wǎng)絡(luò)輸入和輸出的關(guān)系與LDPC碼的Tanner圖中的節(jié)點(diǎn)關(guān)系相對應(yīng),使得神經(jīng)網(wǎng)絡(luò)的復(fù)雜性得到了降低,計(jì)算復(fù)雜度也相應(yīng)的降低。但網(wǎng)絡(luò)需要大量的訓(xùn)練,若碼長較大時,訓(xùn)練網(wǎng)絡(luò)的時間就會很長,且譯碼性能不及置信傳播譯碼算法。
通常訓(xùn)練神經(jīng)網(wǎng)絡(luò)采用的是反向傳播算法,需要神經(jīng)網(wǎng)絡(luò)的每個輸入序列是可見的,從而限制了譯碼算法的性能。為了解決上述的限制,提出了基于神經(jīng)網(wǎng)絡(luò)的LDPC碼非迭代譯碼方法[21](如圖4),主要利用有效LDPC碼的基于校驗(yàn)序列的行來訓(xùn)練網(wǎng)絡(luò),且識別獨(dú)立的子譯碼結(jié)構(gòu),進(jìn)行非迭代的譯碼。
由于一般神經(jīng)網(wǎng)絡(luò)的復(fù)雜函數(shù)的表現(xiàn)能力有限,網(wǎng)絡(luò)本身的學(xué)習(xí)能力也不強(qiáng)。因此,提出了將平行的Hopfield神經(jīng)網(wǎng)絡(luò)和LDPC相結(jié)合的譯碼方法[22],利用此方法進(jìn)行譯碼,減少了神經(jīng)網(wǎng)絡(luò)的個數(shù),但是由于網(wǎng)絡(luò)是遞歸型神經(jīng)網(wǎng)絡(luò),需要花費(fèi)時間來達(dá)到穩(wěn)定狀態(tài),不適合用在高速LDPC碼中。
基于校驗(yàn)子生成器和LUT(Look Up Table)的LDPC譯碼方法[23]解決了上述方法存在的問題,譯碼過程不需要進(jìn)行迭代計(jì)算,但是需要提前計(jì)算出每個校驗(yàn)子相對應(yīng)的LUT(查找表)。
3.1.2 發(fā)展趨勢
基于神經(jīng)網(wǎng)絡(luò)的LDPC碼譯碼方法目前還是處于初級發(fā)展階段,網(wǎng)絡(luò)訓(xùn)練方法大都是采用反向傳播算法,為了進(jìn)一步提高譯碼的性能,降低譯碼的復(fù)雜程度,可利用已有的訓(xùn)練方法(牛頓法、共軛梯度法等)進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,或者探究新的訓(xùn)練方法。
由于淺層神經(jīng)網(wǎng)絡(luò)在應(yīng)用過程中,網(wǎng)絡(luò)訓(xùn)練的速度比較慢,隨著計(jì)算機(jī)處理速度和存儲能力的提升,深層神經(jīng)網(wǎng)絡(luò)得到了快速的發(fā)展,所以可將深層神經(jīng)網(wǎng)絡(luò)應(yīng)用到LDPC碼的譯碼過程中,用于提高譯碼的性能。
圖4 基于多層感知器前向神經(jīng)網(wǎng)絡(luò)LDPC譯碼器結(jié)構(gòu)
Polar碼[24]是第一個被證明可以達(dá)到香農(nóng)容量限的編碼方法,且采用持續(xù)消除(SC)譯碼時復(fù)雜度僅為ONlgN,其中N為碼長。Polar碼的基本原理就是信道極化[24],信道極化(如圖5)是由信道合并和信道分裂組成的。
圖5中,W表示二進(jìn)制離散無記憶信道;W-N是N個二進(jìn)制離散無記憶信道W線性變換合并成的;W-N,i是W-N經(jīng)過分裂轉(zhuǎn)化的極化信道。
圖5 信道極化現(xiàn)象的形成過程
對于中短碼長的Polar碼,SC譯碼算法的逐比特譯碼特性可能會帶來錯誤的傳播問題,所以在有限碼長下譯碼性能不夠理想。其他類型的譯碼算法,提升了譯碼的性能,但是計(jì)算量得到了增加。利用神經(jīng)網(wǎng)絡(luò)進(jìn)行Polar碼的譯碼,充分利用兩者的優(yōu)點(diǎn),有效的減少譯碼的復(fù)雜度,或者提高了譯碼的性能。
3.2.1 研究現(xiàn)狀
基于一般深度神經(jīng)網(wǎng)絡(luò)的譯碼器[25]可以通過學(xué)習(xí)大量的碼字來實(shí)現(xiàn)接近最佳誤碼率的性能,但是網(wǎng)絡(luò)的訓(xùn)練時間隨著碼長的增加呈現(xiàn)指數(shù)的增加,這就限制了此類譯碼器在長Polar碼中的實(shí)際應(yīng)用。
為了解決上述的問題,將上述提出的極化BP譯碼器中的某些字塊用神經(jīng)網(wǎng)絡(luò)輔助模塊來代替[26],新譯碼方法的性能得到了很大的改善,但是譯碼的復(fù)雜性仍然很高,且硬件的高吞吐量很難實(shí)現(xiàn)。
傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)應(yīng)用在Polar碼的譯碼過程中,需要過高的網(wǎng)絡(luò)訓(xùn)練和計(jì)算復(fù)雜度。將置信傳播譯碼算法進(jìn)行改進(jìn),得到多尺度置信傳播譯碼算法,在多尺度置信傳播算法的基礎(chǔ)上建立深度神經(jīng)網(wǎng)絡(luò)[27],得到的譯碼模型適用于任何形式的Polar碼,訓(xùn)練網(wǎng)絡(luò)時只需要很小的零碼字集合,且計(jì)算復(fù)雜度與原始的置信傳播算法相同。
3.2.2 發(fā)展趨勢
目前Polar碼是作為5G移動通信中eMBB應(yīng)用場景的控制信道的編碼方式,碼長較短,重點(diǎn)研究和解決的是碼長、碼率靈活性問題以及編譯碼對信道的依賴性問題[28]。
對于長Polar碼來說,利用神經(jīng)網(wǎng)絡(luò)來進(jìn)行譯碼存在一定的困難,如網(wǎng)絡(luò)結(jié)構(gòu)的選擇、硬件實(shí)施的性能。神經(jīng)網(wǎng)絡(luò)的種類很多,可以研究基于不同神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)Polar碼譯碼方法,或者運(yùn)用不同的訓(xùn)練方法來訓(xùn)練神經(jīng)網(wǎng)絡(luò),使得相對應(yīng)的譯碼性能得到提升,結(jié)構(gòu)復(fù)雜度得到減少,譯碼的迭代次數(shù)降低。
本文介紹了神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程,以及基于神經(jīng)網(wǎng)絡(luò)的LDPC碼和Polar碼的譯碼方法,分析了每種模型方法的優(yōu)缺點(diǎn)。由于深度神經(jīng)網(wǎng)絡(luò)的理論基礎(chǔ)還不完善,需進(jìn)行理論方面的探究和突破;其次,將不同類型的神經(jīng)網(wǎng)絡(luò)應(yīng)用到不同的信道編碼中,還需要進(jìn)一步的研究。