遲文升,袁 亶,肖宗豪
(1.空軍工程大學 裝備管理與無人機工程學院,陜西 西安 710051;2.西安電子科技大學 機電工程學院,陜西 西安 710071;3.空軍工程大學 研究生學院,陜西 西安 710051)
隨著技術(shù)的發(fā)展,無線電通信得以快速發(fā)展,然而由于頻譜的不可再生性,導致無線電頻譜越來越密集,通信資源也變得異常稀缺。為充分合理利用無線電頻譜資源,頻譜預測技術(shù)成為研究的熱點。
頻譜預測技術(shù)[1-3]是通過檢測過去一段時間內(nèi)頻譜的使用情況來預測未來一段時間可能存在的空閑頻譜和其所處的位置并對其進行利用。
現(xiàn)有頻譜預測主要包括自回歸頻譜預測[4-5]、機器學習[6-8]、神經(jīng)網(wǎng)絡頻譜預測[9-11]和馬爾可夫模型頻譜預測[12-14]。基于神經(jīng)網(wǎng)絡和基于馬爾可夫的預測較準確,但收斂時間長,時效性差[15]。相較于其他頻譜預測方法,神經(jīng)網(wǎng)絡可消除對參數(shù)設(shè)置和概率計算的需求[16],可利用構(gòu)建的模型提前滿足預定性能指標提高頻譜效率和節(jié)約能源。
在利用認知無線電信道狀況預測時,需提前知道授權(quán)的信道狀態(tài)的各項特征,而在實際操作過程中,這是難以做到的。頻譜預測技術(shù)能夠使頻譜接入更為有效,并增強在時域和空間域的頻譜利用靈活性,通過研究頻譜感知的結(jié)果來對接下來的時間段內(nèi)的頻譜利用情況進行一個預測,據(jù)此采用能夠被使用的信道或停止對授權(quán)用戶將要占用的信道的使用,這樣就可以避免各用戶之間發(fā)生沖突同時頻譜的利用效率得以提高。頻譜預測技術(shù)是通過檢測過去一段時間內(nèi)頻譜的使用情況來預測未來一段時間可能存在的空閑頻譜和其所處的位置并對其進行利用。探索基于BP神經(jīng)網(wǎng)絡的智能認知頻譜預測技術(shù)是非常有益的。
BP(Back Propagation)神經(jīng)網(wǎng)絡[17-18]由 Rumelhart和McCelland為首的科學家小組在1986年提出,是一種按照誤差反向傳播算法來進行訓練的多層前饋網(wǎng)絡,也是當下被普遍使用的ANN模型之一。BP神經(jīng)網(wǎng)絡可以學習并存儲大量的輸入與輸出之間存在的某種特定關(guān)系,而且不需提前預知描述此種關(guān)系的方程式。其采取最速下降法進行學習,由此通過反饋來不斷地對整個網(wǎng)絡的權(quán)值和閾值進行協(xié)調(diào)優(yōu)化,最終使誤差達到最小。BP神經(jīng)網(wǎng)絡模型由輸入層(input layer)、隱含層(hide layer)和輸出層(output layer)三個主要部分共同組成[19]。
BP是反向傳遞的意思。根據(jù)其定義“按誤差反向傳遞算法訓練的多層前饋網(wǎng)絡”[20],可以對BP神經(jīng)網(wǎng)絡有個初步的了解:需要被傳遞的介質(zhì)是誤差,反向即通過后面層級的誤差來推出前面層級的誤差,整個傳遞是為了得到全部層級的估計誤差。所以其基本思想就是,根據(jù)求得的輸出與期望輸出進行對比,從而獲得后面層級的誤差,再由此推出前面層級的誤差,就這樣經(jīng)過多次反向傳遞便得到全部層級的誤差。
圖1所示為其僅含3層基本層級的簡單拓撲結(jié)構(gòu)。
圖1 簡單的3層拓撲結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡可以學習并存儲大量的輸入與輸出之間存在的某種特定關(guān)系,而且不需要提前知道描述其中存在的此種關(guān)系的方程式。整個網(wǎng)絡通過激活函數(shù)來反映輸入與輸出兩者存在的關(guān)系,以此來模擬各神經(jīng)元之間的相互作用。激活函數(shù)需要滿足處處可導的條件,常用Sigmoid函數(shù)作為激活函數(shù),如圖2所示。
其輸入為:
式中,xi為輸入信號,wi為第i輸入信號的權(quán)值。
Sigmoid函數(shù)輸出為:
對激活函數(shù)求導:
圖2 S型激活函數(shù)
ANN學習的目的是通過對一個模型系統(tǒng)的學習,針對輸入可以得到一個期望的輸出;學習是通過針對一個輸入向量來持續(xù)調(diào)整優(yōu)化各神經(jīng)元的連接權(quán)值的方式進行的;學習在本質(zhì)上是為了對權(quán)值進行實時優(yōu)化;學習的重點就是各神經(jīng)元間連接權(quán)值的優(yōu)化機制。
在對一個BP神經(jīng)網(wǎng)絡模型進行訓練時,得需要一個訓練集,其中包含輸入和期望得到的輸出,這樣就可以得到一個此模型針對于此訓練集的誤差,然后,通過隱含層將此誤差以一種特定形式一直反向傳遞到輸入向量。此種特定形式如圖3所示。
圖3 傳遞的特定形式
也就是一種 “信號的正向傳遞-誤差的反向傳遞”的過程,如圖4所示。
圖4 傳遞的過程
對于一個BP神經(jīng)網(wǎng)絡,先定義它的變量:
(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ù)個數(shù):k=1,2,…,m;
(12)激活函數(shù):f(·);
(13)誤差函數(shù):
網(wǎng)絡初始化:
用一個在(-1,1)區(qū)間范圍內(nèi)的隨機數(shù)作為各神經(jīng)元連接權(quán)值的初始值,設(shè)定網(wǎng)路各項參數(shù),包括:最大訓練次數(shù)M、學習函數(shù)e、訓練的目標精確度ε。
選取第訓練集中的第k個輸入向量和與之相匹配的期望輸出:
求出隱含層的各神經(jīng)元的輸入和輸出:
根據(jù)所求到的輸出與網(wǎng)絡的期望輸出,求出誤差函數(shù)對輸出層各神經(jīng)元的偏數(shù):
通過輸出層各神經(jīng)元的偏導數(shù)δo(k)和隱含層各神經(jīng)元的輸出對各神經(jīng)元的連接權(quán)值who(k)進行相應的調(diào)整優(yōu)化:
通過隱含層各神經(jīng)元的偏導數(shù)δo(k)和輸入層各神經(jīng)元的輸入對各神經(jīng)元的連接權(quán)值wih(k)進行相應的調(diào)整優(yōu)化:
計算全局誤差:
通過對比看整個過程是否達到要求,若誤差和學習次數(shù)都已達標就可以結(jié)束此算法了。
如圖5所示,建立基于BP神經(jīng)網(wǎng)絡的頻譜預測算法模型主要有以下幾個步驟:
首先,對BP神經(jīng)網(wǎng)絡系統(tǒng)模型參數(shù)(包括網(wǎng)絡層數(shù)、各神經(jīng)元個數(shù)、各訓練參數(shù)等)進行設(shè)計。設(shè)定輸入層的神經(jīng)元個數(shù)為4,表示前4個時刻歷史狀態(tài)數(shù)據(jù);設(shè)定輸出層神經(jīng)元個數(shù)為1。通常情況下,單個隱含層就可以實現(xiàn)任意維度的非線性映射關(guān)系,因此通常使用單層隱含層的網(wǎng)絡系統(tǒng)模型,并且隱含層的節(jié)點個數(shù)選擇為20個。設(shè)定最大訓練次數(shù)為1 000,設(shè)定學習率為0.01,設(shè)定訓練的目標精確度為0.000 1。
圖5 建立的神經(jīng)網(wǎng)絡模型
在此,生成 500個僅含“0”和“1”的序列作為信道狀態(tài)數(shù)據(jù),其中,“1”代表占用狀態(tài),“0”代表占空狀態(tài)。將前250個數(shù)據(jù)作為神經(jīng)網(wǎng)絡預測模型的訓練數(shù)據(jù),后250個數(shù)據(jù)作為預測驗證數(shù)據(jù)。此數(shù)據(jù)集雖不能完全代表真實的頻譜狀態(tài),但神經(jīng)網(wǎng)絡具有很強的學習和擬合能力,所以可以利用此數(shù)據(jù)集進行對預測模型的驗證。
選取250個數(shù)據(jù)作為認知無線電信道狀態(tài)預測模型的訓練數(shù)據(jù),將其中的前200個數(shù)據(jù)作為訓練輸入數(shù)據(jù)(即input_train),其中的后50個數(shù)據(jù)作為訓練輸出數(shù)據(jù)(即output_train)。BP神經(jīng)網(wǎng)絡的學習屬于有監(jiān)督學習,通過已知數(shù)據(jù)和對應的目標輸出來進行網(wǎng)絡訓練,訓練時使用隨機值作為初始權(quán)值,輸入學習樣本得到網(wǎng)絡的最優(yōu)輸出模型,然后使用最速下降法來調(diào)整網(wǎng)絡各層權(quán)值,再由誤差逐層逆向自適應修改各層網(wǎng)絡之間權(quán)值使誤差不斷減小,直至網(wǎng)絡收斂為止。
圖6所示為BP神經(jīng)網(wǎng)絡預測模型在進行訓練時的實際預測輸出與期望輸出的MATLAB仿真結(jié)果圖,從圖中可以看到訓練過程中,其實際值與期望值的差距還是比較大的,有時候預測值甚至剛好與期望值相反,但是經(jīng)過一定的訓練之后,其預測準確度就會有所上升。
圖6 BP網(wǎng)絡訓練時的預測輸出與期望輸出
選取250個數(shù)據(jù)作為認知無線電信道狀態(tài)預測模型的測試數(shù)據(jù),將其中的前200個數(shù)據(jù)作為測試輸入數(shù)據(jù)(即 input_test),其中的后 50個數(shù)據(jù)作為訓練輸出數(shù)據(jù)(即 output_test)。
如圖7所示,BP神經(jīng)網(wǎng)絡預測模型預測結(jié)果與期望值大多數(shù)一致,有一小部分偏離樣本值范圍較小,有極個別結(jié)果與期望值偏差較大。如圖8所示,BP神經(jīng)網(wǎng)絡預測誤差在5個樣本點上誤差較大,在±1以內(nèi);小部分樣本值誤差范圍較小,在±0.2以內(nèi);其余樣本預測誤差準確度較高。因此,經(jīng)過訓練之后,BP神經(jīng)網(wǎng)絡預測模型已經(jīng)比較準確了。
本文分析了BP神經(jīng)網(wǎng)絡過程的基本學習過程及其優(yōu)勢對比,然后對BP神經(jīng)網(wǎng)絡的頻譜預測算法進行數(shù)學建模。通過對一段時期內(nèi)電磁頻譜狀態(tài)進行學習訓練,算法模型建立初步的輸入數(shù)據(jù)與輸出結(jié)果之間的特定關(guān)系,然后通過改變BP神經(jīng)網(wǎng)絡算法自身的結(jié)構(gòu),優(yōu)化權(quán)值與閾值,通過仿真得到頻譜預測數(shù)據(jù)準確性更接近于實際值,預測誤差較小。實驗證明,上述方法可以使通信用戶頻譜接入更為有效,增強了在時域和空間域的頻譜利用靈活性。
圖7 BP神經(jīng)網(wǎng)絡預測模型預測結(jié)果與期望值
圖8 BP神經(jīng)網(wǎng)絡預測誤差