遲文升,袁 亶,肖宗豪
(1.空軍工程大學(xué) 裝備管理與無人機(jī)工程學(xué)院,陜西 西安 710051;2.西安電子科技大學(xué) 機(jī)電工程學(xué)院,陜西 西安 710071;3.空軍工程大學(xué) 研究生學(xué)院,陜西 西安 710051)
隨著技術(shù)的發(fā)展,無線電通信得以快速發(fā)展,然而由于頻譜的不可再生性,導(dǎo)致無線電頻譜越來越密集,通信資源也變得異常稀缺。為充分合理利用無線電頻譜資源,頻譜預(yù)測(cè)技術(shù)成為研究的熱點(diǎn)。
頻譜預(yù)測(cè)技術(shù)[1-3]是通過檢測(cè)過去一段時(shí)間內(nèi)頻譜的使用情況來預(yù)測(cè)未來一段時(shí)間可能存在的空閑頻譜和其所處的位置并對(duì)其進(jìn)行利用。
現(xiàn)有頻譜預(yù)測(cè)主要包括自回歸頻譜預(yù)測(cè)[4-5]、機(jī)器學(xué)習(xí)[6-8]、神經(jīng)網(wǎng)絡(luò)頻譜預(yù)測(cè)[9-11]和馬爾可夫模型頻譜預(yù)測(cè)[12-14]。基于神經(jīng)網(wǎng)絡(luò)和基于馬爾可夫的預(yù)測(cè)較準(zhǔn)確,但收斂時(shí)間長(zhǎng),時(shí)效性差[15]。相較于其他頻譜預(yù)測(cè)方法,神經(jīng)網(wǎng)絡(luò)可消除對(duì)參數(shù)設(shè)置和概率計(jì)算的需求[16],可利用構(gòu)建的模型提前滿足預(yù)定性能指標(biāo)提高頻譜效率和節(jié)約能源。
在利用認(rèn)知無線電信道狀況預(yù)測(cè)時(shí),需提前知道授權(quán)的信道狀態(tài)的各項(xiàng)特征,而在實(shí)際操作過程中,這是難以做到的。頻譜預(yù)測(cè)技術(shù)能夠使頻譜接入更為有效,并增強(qiáng)在時(shí)域和空間域的頻譜利用靈活性,通過研究頻譜感知的結(jié)果來對(duì)接下來的時(shí)間段內(nèi)的頻譜利用情況進(jìn)行一個(gè)預(yù)測(cè),據(jù)此采用能夠被使用的信道或停止對(duì)授權(quán)用戶將要占用的信道的使用,這樣就可以避免各用戶之間發(fā)生沖突同時(shí)頻譜的利用效率得以提高。頻譜預(yù)測(cè)技術(shù)是通過檢測(cè)過去一段時(shí)間內(nèi)頻譜的使用情況來預(yù)測(cè)未來一段時(shí)間可能存在的空閑頻譜和其所處的位置并對(duì)其進(jìn)行利用。探索基于BP神經(jīng)網(wǎng)絡(luò)的智能認(rèn)知頻譜預(yù)測(cè)技術(shù)是非常有益的。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)[17-18]由 Rumelhart和McCelland為首的科學(xué)家小組在1986年提出,是一種按照誤差反向傳播算法來進(jìn)行訓(xùn)練的多層前饋網(wǎng)絡(luò),也是當(dāng)下被普遍使用的ANN模型之一。BP神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)并存儲(chǔ)大量的輸入與輸出之間存在的某種特定關(guān)系,而且不需提前預(yù)知描述此種關(guān)系的方程式。其采取最速下降法進(jìn)行學(xué)習(xí),由此通過反饋來不斷地對(duì)整個(gè)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行協(xié)調(diào)優(yōu)化,最終使誤差達(dá)到最小。BP神經(jīng)網(wǎng)絡(luò)模型由輸入層(input layer)、隱含層(hide layer)和輸出層(output layer)三個(gè)主要部分共同組成[19]。
BP是反向傳遞的意思。根據(jù)其定義“按誤差反向傳遞算法訓(xùn)練的多層前饋網(wǎng)絡(luò)”[20],可以對(duì)BP神經(jīng)網(wǎng)絡(luò)有個(gè)初步的了解:需要被傳遞的介質(zhì)是誤差,反向即通過后面層級(jí)的誤差來推出前面層級(jí)的誤差,整個(gè)傳遞是為了得到全部層級(jí)的估計(jì)誤差。所以其基本思想就是,根據(jù)求得的輸出與期望輸出進(jìn)行對(duì)比,從而獲得后面層級(jí)的誤差,再由此推出前面層級(jí)的誤差,就這樣經(jīng)過多次反向傳遞便得到全部層級(jí)的誤差。
圖1所示為其僅含3層基本層級(jí)的簡(jiǎn)單拓?fù)浣Y(jié)構(gòu)。

圖1 簡(jiǎn)單的3層拓?fù)浣Y(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)并存儲(chǔ)大量的輸入與輸出之間存在的某種特定關(guān)系,而且不需要提前知道描述其中存在的此種關(guān)系的方程式。整個(gè)網(wǎng)絡(luò)通過激活函數(shù)來反映輸入與輸出兩者存在的關(guān)系,以此來模擬各神經(jīng)元之間的相互作用。激活函數(shù)需要滿足處處可導(dǎo)的條件,常用Sigmoid函數(shù)作為激活函數(shù),如圖2所示。
其輸入為:

式中,xi為輸入信號(hào),wi為第i輸入信號(hào)的權(quán)值。
Sigmoid函數(shù)輸出為:

對(duì)激活函數(shù)求導(dǎo):


圖2 S型激活函數(shù)
ANN學(xué)習(xí)的目的是通過對(duì)一個(gè)模型系統(tǒng)的學(xué)習(xí),針對(duì)輸入可以得到一個(gè)期望的輸出;學(xué)習(xí)是通過針對(duì)一個(gè)輸入向量來持續(xù)調(diào)整優(yōu)化各神經(jīng)元的連接權(quán)值的方式進(jìn)行的;學(xué)習(xí)在本質(zhì)上是為了對(duì)權(quán)值進(jìn)行實(shí)時(shí)優(yōu)化;學(xué)習(xí)的重點(diǎn)就是各神經(jīng)元間連接權(quán)值的優(yōu)化機(jī)制。
在對(duì)一個(gè)BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練時(shí),得需要一個(gè)訓(xùn)練集,其中包含輸入和期望得到的輸出,這樣就可以得到一個(gè)此模型針對(duì)于此訓(xùn)練集的誤差,然后,通過隱含層將此誤差以一種特定形式一直反向傳遞到輸入向量。此種特定形式如圖3所示。

圖3 傳遞的特定形式
也就是一種 “信號(hào)的正向傳遞-誤差的反向傳遞”的過程,如圖4所示。

圖4 傳遞的過程
對(duì)于一個(gè)BP神經(jīng)網(wǎng)絡(luò),先定義它的變量:
(1)輸入向量:x=(x1,x2,…,xn);
(2)隱含層輸入向量:hi=(hi1,hi2,…,hin);
(3)隱含層輸出向量:ho=(ho1,ho2,…,hon);
(4)輸出層輸入向量:yi=(yi1,yi2,…,yin);
(5)輸出層輸出向量:yo=(yo1,yo2,…,yon);
(6)期望輸出向量:do=(d1,d2,…,dn);
(7)輸入層與中間層的連接權(quán)值:wih;
(8)隱含層與輸出層的連接權(quán)值:who;
(9)隱含層各神經(jīng)元的閾值:bh;
(10)輸出層各神經(jīng)元的閾值:bo;
(11)樣本數(shù)據(jù)個(gè)數(shù):k=1,2,…,m;
(12)激活函數(shù):f(·);
(13)誤差函數(shù):

網(wǎng)絡(luò)初始化:
用一個(gè)在(-1,1)區(qū)間范圍內(nèi)的隨機(jī)數(shù)作為各神經(jīng)元連接權(quán)值的初始值,設(shè)定網(wǎng)路各項(xiàng)參數(shù),包括:最大訓(xùn)練次數(shù)M、學(xué)習(xí)函數(shù)e、訓(xùn)練的目標(biāo)精確度ε。
選取第訓(xùn)練集中的第k個(gè)輸入向量和與之相匹配的期望輸出:

求出隱含層的各神經(jīng)元的輸入和輸出:

根據(jù)所求到的輸出與網(wǎng)絡(luò)的期望輸出,求出誤差函數(shù)對(duì)輸出層各神經(jīng)元的偏數(shù):


通過輸出層各神經(jīng)元的偏導(dǎo)數(shù)δo(k)和隱含層各神經(jīng)元的輸出對(duì)各神經(jīng)元的連接權(quán)值who(k)進(jìn)行相應(yīng)的調(diào)整優(yōu)化:

通過隱含層各神經(jīng)元的偏導(dǎo)數(shù)δo(k)和輸入層各神經(jīng)元的輸入對(duì)各神經(jīng)元的連接權(quán)值wih(k)進(jìn)行相應(yīng)的調(diào)整優(yōu)化:

計(jì)算全局誤差:

通過對(duì)比看整個(gè)過程是否達(dá)到要求,若誤差和學(xué)習(xí)次數(shù)都已達(dá)標(biāo)就可以結(jié)束此算法了。
如圖5所示,建立基于BP神經(jīng)網(wǎng)絡(luò)的頻譜預(yù)測(cè)算法模型主要有以下幾個(gè)步驟:
首先,對(duì)BP神經(jīng)網(wǎng)絡(luò)系統(tǒng)模型參數(shù)(包括網(wǎng)絡(luò)層數(shù)、各神經(jīng)元個(gè)數(shù)、各訓(xùn)練參數(shù)等)進(jìn)行設(shè)計(jì)。設(shè)定輸入層的神經(jīng)元個(gè)數(shù)為4,表示前4個(gè)時(shí)刻歷史狀態(tài)數(shù)據(jù);設(shè)定輸出層神經(jīng)元個(gè)數(shù)為1。通常情況下,單個(gè)隱含層就可以實(shí)現(xiàn)任意維度的非線性映射關(guān)系,因此通常使用單層隱含層的網(wǎng)絡(luò)系統(tǒng)模型,并且隱含層的節(jié)點(diǎn)個(gè)數(shù)選擇為20個(gè)。設(shè)定最大訓(xùn)練次數(shù)為1 000,設(shè)定學(xué)習(xí)率為0.01,設(shè)定訓(xùn)練的目標(biāo)精確度為0.000 1。

圖5 建立的神經(jīng)網(wǎng)絡(luò)模型
在此,生成 500個(gè)僅含“0”和“1”的序列作為信道狀態(tài)數(shù)據(jù),其中,“1”代表占用狀態(tài),“0”代表占空狀態(tài)。將前250個(gè)數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型的訓(xùn)練數(shù)據(jù),后250個(gè)數(shù)據(jù)作為預(yù)測(cè)驗(yàn)證數(shù)據(jù)。此數(shù)據(jù)集雖不能完全代表真實(shí)的頻譜狀態(tài),但神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的學(xué)習(xí)和擬合能力,所以可以利用此數(shù)據(jù)集進(jìn)行對(duì)預(yù)測(cè)模型的驗(yàn)證。
選取250個(gè)數(shù)據(jù)作為認(rèn)知無線電信道狀態(tài)預(yù)測(cè)模型的訓(xùn)練數(shù)據(jù),將其中的前200個(gè)數(shù)據(jù)作為訓(xùn)練輸入數(shù)據(jù)(即input_train),其中的后50個(gè)數(shù)據(jù)作為訓(xùn)練輸出數(shù)據(jù)(即output_train)。BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)屬于有監(jiān)督學(xué)習(xí),通過已知數(shù)據(jù)和對(duì)應(yīng)的目標(biāo)輸出來進(jìn)行網(wǎng)絡(luò)訓(xùn)練,訓(xùn)練時(shí)使用隨機(jī)值作為初始權(quán)值,輸入學(xué)習(xí)樣本得到網(wǎng)絡(luò)的最優(yōu)輸出模型,然后使用最速下降法來調(diào)整網(wǎng)絡(luò)各層權(quán)值,再由誤差逐層逆向自適應(yīng)修改各層網(wǎng)絡(luò)之間權(quán)值使誤差不斷減小,直至網(wǎng)絡(luò)收斂為止。
圖6所示為BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型在進(jìn)行訓(xùn)練時(shí)的實(shí)際預(yù)測(cè)輸出與期望輸出的MATLAB仿真結(jié)果圖,從圖中可以看到訓(xùn)練過程中,其實(shí)際值與期望值的差距還是比較大的,有時(shí)候預(yù)測(cè)值甚至剛好與期望值相反,但是經(jīng)過一定的訓(xùn)練之后,其預(yù)測(cè)準(zhǔn)確度就會(huì)有所上升。

圖6 BP網(wǎng)絡(luò)訓(xùn)練時(shí)的預(yù)測(cè)輸出與期望輸出
選取250個(gè)數(shù)據(jù)作為認(rèn)知無線電信道狀態(tài)預(yù)測(cè)模型的測(cè)試數(shù)據(jù),將其中的前200個(gè)數(shù)據(jù)作為測(cè)試輸入數(shù)據(jù)(即 input_test),其中的后 50個(gè)數(shù)據(jù)作為訓(xùn)練輸出數(shù)據(jù)(即 output_test)。
如圖7所示,BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型預(yù)測(cè)結(jié)果與期望值大多數(shù)一致,有一小部分偏離樣本值范圍較小,有極個(gè)別結(jié)果與期望值偏差較大。如圖8所示,BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)誤差在5個(gè)樣本點(diǎn)上誤差較大,在±1以內(nèi);小部分樣本值誤差范圍較小,在±0.2以內(nèi);其余樣本預(yù)測(cè)誤差準(zhǔn)確度較高。因此,經(jīng)過訓(xùn)練之后,BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型已經(jīng)比較準(zhǔn)確了。
本文分析了BP神經(jīng)網(wǎng)絡(luò)過程的基本學(xué)習(xí)過程及其優(yōu)勢(shì)對(duì)比,然后對(duì)BP神經(jīng)網(wǎng)絡(luò)的頻譜預(yù)測(cè)算法進(jìn)行數(shù)學(xué)建模。通過對(duì)一段時(shí)期內(nèi)電磁頻譜狀態(tài)進(jìn)行學(xué)習(xí)訓(xùn)練,算法模型建立初步的輸入數(shù)據(jù)與輸出結(jié)果之間的特定關(guān)系,然后通過改變BP神經(jīng)網(wǎng)絡(luò)算法自身的結(jié)構(gòu),優(yōu)化權(quán)值與閾值,通過仿真得到頻譜預(yù)測(cè)數(shù)據(jù)準(zhǔn)確性更接近于實(shí)際值,預(yù)測(cè)誤差較小。實(shí)驗(yàn)證明,上述方法可以使通信用戶頻譜接入更為有效,增強(qiáng)了在時(shí)域和空間域的頻譜利用靈活性。

圖7 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型預(yù)測(cè)結(jié)果與期望值

圖8 BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)誤差