本發(fā)明屬于圖像處理、模式識別和通信傳輸?shù)募夹g(shù)領(lǐng)域,尤其涉及一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法。
背景技術(shù):
在圖像處理、模式識別和通信傳輸?shù)确矫胬蒙窠?jīng)網(wǎng)絡(luò)建模的方法進(jìn)行樣本訓(xùn)練與測試有廣泛的應(yīng)用。在訓(xùn)練樣本中的神經(jīng)網(wǎng)絡(luò)模型建模,神經(jīng)網(wǎng)絡(luò)信號(輸入信號和輸出信號以及權(quán)值參數(shù)),可以為實數(shù)值和復(fù)數(shù)值,從而神經(jīng)網(wǎng)絡(luò)分為實值神經(jīng)網(wǎng)絡(luò)和復(fù)值神經(jīng)網(wǎng)絡(luò)?,F(xiàn)有的神經(jīng)網(wǎng)絡(luò)建模方法多數(shù)是建立的實值神經(jīng)網(wǎng)絡(luò)模型,但隨著電子信息科學(xué)的迅速發(fā)展,復(fù)數(shù)值信號越來越頻繁地出現(xiàn)在工程實踐中,僅考慮實值的計算無法良好的解決實際問題,而復(fù)值神經(jīng)網(wǎng)絡(luò)可以解決一些實值神經(jīng)網(wǎng)絡(luò)所解決不了的問題。復(fù)值神經(jīng)網(wǎng)絡(luò)是通過復(fù)數(shù)參數(shù)和變量(即信號的輸入、輸出以及網(wǎng)絡(luò)權(quán)值均為復(fù)數(shù))來處理復(fù)數(shù)信息的神經(jīng)網(wǎng)絡(luò)。因此,一系列復(fù)值神經(jīng)網(wǎng)絡(luò)的模型被陸續(xù)提出并加以深入研究。
在Batch Split-Complex Backpropagation Algorithm中提出了一種BSCBP方法用于訓(xùn)練復(fù)值神經(jīng)網(wǎng)絡(luò)。激活函數(shù)選擇實虛部型激活函數(shù),對隱層輸入的實虛部分別激活,避免奇異點的出現(xiàn);BSCBP方法先給輸入權(quán)值矩陣以及輸出權(quán)值矩陣進(jìn)行隨機賦值,再通過梯度下降法進(jìn)行梯度更新,最后計算測試樣本的精度。但是,基于梯度下降法的BSCBP模型需要多次迭代訓(xùn)練,消耗時間長并且學(xué)習(xí)效率較低。
在Fully Complex Extreme Learning Machine中提出了一種CELM方法將ELM方法從實數(shù)域擴展到復(fù)數(shù)域,并應(yīng)用于非線性信道均衡。CELM只需要設(shè)置合適的網(wǎng)絡(luò)隱層節(jié)點個數(shù),對網(wǎng)絡(luò)的輸入權(quán)值進(jìn)行隨機賦值,輸出層權(quán)值的最優(yōu)解通過最小二乘法得到,激活函數(shù)可以選sigmoid函數(shù)、(反)三角函數(shù)以及(反)雙曲函數(shù),與BSCBP不同的是,激活函數(shù)對隱層的輸入矩陣直接激活。整個過程一次完成,無需迭代,因此具有參數(shù)選擇容易、學(xué)習(xí)速度極快的優(yōu)點。但是CELM方法為了彌補隱層節(jié)點參數(shù)的隨意性選擇,往往需要較多的隱層節(jié)點個數(shù),且訓(xùn)練精度有待進(jìn)一步提高。
綜上所述,BSCBP在訓(xùn)練時速度緩慢,精度較低,CELM方法雖然速度快,但所需要的網(wǎng)絡(luò)隱層節(jié)點數(shù)過多,且精度也有待提高,現(xiàn)有技術(shù)中對于如何同時解決復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法中訓(xùn)練速度慢、精度低和網(wǎng)絡(luò)隱層節(jié)點數(shù)過多的問題,尚缺乏有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明為了解決上述問題,克服傳統(tǒng)的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法中無法同時解決訓(xùn)練速度慢、精度低和網(wǎng)絡(luò)隱層節(jié)點數(shù)過多的問題,提供一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法(Gradient based Generalized Complex Neural Networks,簡稱GGCNN)。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,所述方法步驟包括:
(1)選擇單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型對樣本數(shù)據(jù)集進(jìn)行建模;
(2)根據(jù)步驟(1)中選擇的單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型,利用廣義逆計算所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)中的權(quán)值矩陣,將迭代次數(shù)初始值設(shè)置為1,利用梯度下降法計算所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)中的權(quán)值向量;
(3)根據(jù)步驟(2)中計算出的所述權(quán)值矩陣和所述權(quán)值向量,獲取復(fù)值神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)參數(shù),計算當(dāng)前樣本數(shù)據(jù)的均方誤差;判斷當(dāng)前迭代次數(shù)是否等于最大迭代次數(shù),若是,結(jié)束訓(xùn)練;若否,將當(dāng)前迭代次數(shù)加1,返回步驟(2)。
優(yōu)選的,所述步驟(1)中的樣本數(shù)據(jù)集包括訓(xùn)練樣本數(shù)據(jù)集或測試數(shù)據(jù)集。
優(yōu)選的,所述步驟(1)中的所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型為:
所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型中的輸入層、隱層和輸出層神經(jīng)元個數(shù)分別為L、M和1;
給定Q個輸入樣本,其樣本矩陣為Z=(zij)L×Q=ZR+iZI,其中,ZR為Z的實部,ZI為Z的虛部;
第q個樣本的輸入為其中,i=1,2…L;
輸入樣本相應(yīng)的理想輸出矩陣為D=(d1,d2…dQ)T=DR+iDI,其中,DR為D的實部,DI為D的虛部;
第q個樣本的理想輸出為dq∈C。
優(yōu)選的,所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型中的所述隱層的激活函數(shù)為gc:C→C;
連接輸入層和隱層的權(quán)值矩陣為W=(wij)M×L=WR+iWI,其中,WR為W的實部,WI為W的虛部;
輸入層與第i個隱節(jié)點的連接權(quán)值記為wi=(wi1,wi2…wiL)∈CL,其中,i=1,2…M;
連接隱層和輸出層的權(quán)值向量為V=(v1,v2…vM)T=VR+iVI,其中,VR為V的實部,VI為V的虛部;
第k個隱節(jié)點與輸出層的連接權(quán)值記為vk∈C,其中,k=1,2…M。
優(yōu)選的,所述步驟(2)中的具體步驟為:
(2-1)初始化輸入層到隱層的權(quán)值矩陣,獲取初始權(quán)值矩陣W0,W0在給定區(qū)間內(nèi)隨機賦值;
(2-2)利用梯度下降法和廣義逆計算單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)中的權(quán)值矩陣和權(quán)值向量。
優(yōu)選的,所述步驟(2-2)中的所述通過廣義逆計算隱層到輸出層的權(quán)值矩陣V的具體步驟為:
(2-2a-1)根據(jù)步驟(2-1)中的所述初始權(quán)值矩陣W0與步驟(1)中的樣本矩陣Z計算隱層的輸入矩陣U=(uij)M×Q,
(2-2a-2)對矩陣步驟(2-2a-1)中的所述輸入矩陣U的實部和虛部分別激活,得到隱層的輸出矩陣H=(hij)M×Q,H=gc(UR))+igc(UI))=HR+iHI,其中,HR為H的實部,HI為H的虛部;
(2-2a-3):通過廣義逆計算隱層到輸出層的權(quán)值矩陣V,
其中,H為步驟(2-2a-2)中隱層的輸出矩陣,D為步驟(1)中的所述理想輸出矩陣。
優(yōu)選的,所述步驟(2-2)中的對初始權(quán)值矩陣W0進(jìn)行優(yōu)化具體步驟為:
(2-2b-1):設(shè)置初始迭代次數(shù)k=1,最大迭代次數(shù)為K;
(2-2b-2):計算均方誤差E關(guān)于隱層權(quán)值W的梯度;
(2-2b-3):權(quán)值更新公式為其中,n=1,2,…,η為學(xué)習(xí)率。
優(yōu)選的,所述步驟(2-2b-2)中均方誤差E關(guān)于隱層權(quán)值W的梯度分成兩部分計算,先求E對WR的梯度,再求E對WI的梯度,其中,WR為W實部,WI為W的虛部;
式中,zq為第q個樣本的輸入向量,zq,R為第q個樣本的輸入向量的實部,zq,I為第q個樣本的輸入向量的虛部,gc為隱層的激活函數(shù),為第q個樣本在第m個隱節(jié)點處的輸入,為第q個樣本在第m個隱節(jié)點的輸入的實部,為第q個樣本在第m個隱節(jié)點的輸入的虛部。
優(yōu)選的,所述步驟(3)中的具體步驟為:
(3-1)輸出層的激活函數(shù)選擇線性函數(shù),則輸出層的輸入等于輸出層的輸出,網(wǎng)絡(luò)的實際輸出為O=(o1,o2…oQ)T,第q個樣本的實際輸出為oq∈C,q=1,2…Q,將矩陣O分為OR(實部)和OI(虛部)兩部分,O=HTV=OR+iOI第q個樣本的實際輸出:
其中,vR為隱層到輸出層權(quán)值向量的實部,vI為隱層到輸出層權(quán)值向量的虛部,hq,R為第q個樣本隱層輸出向量的實部,hq,I為第q個樣本隱層輸出向量的虛部;
(3-2)計算當(dāng)前樣本數(shù)據(jù)的均方誤差,判斷當(dāng)前迭代次數(shù)k是否等于最大迭代次數(shù)K,若是,結(jié)束訓(xùn)練;若否,將當(dāng)前迭代次數(shù)加1,返回步驟(2-2b-2)。
優(yōu)選的,所述步驟(3)中的計算當(dāng)前樣本數(shù)據(jù)的均方誤差采用:
其中,oq為第q個樣本的實際輸出,dq為第q個樣本的理想輸出。
本發(fā)明的有益效果:
1、本發(fā)明的一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,隱層輸入權(quán)值是通過梯度下降法迭代產(chǎn)生,輸出權(quán)值始終通過廣義逆來求解。因此,與BSCBP相比,本方法迭代次數(shù)少,相應(yīng)的訓(xùn)練時間短,收斂速度快,并且學(xué)習(xí)效率高。與CELM相比,所需的隱層節(jié)點個數(shù)少,并且學(xué)習(xí)效率高。因此,本發(fā)明比BSCBP方法與CELM方法精度高,能夠較為準(zhǔn)確的反映復(fù)值神經(jīng)網(wǎng)絡(luò)模型的性能。
2、本發(fā)明的一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,求解從隱層到輸出層旳權(quán)值時,采用了廣義逆的方法,無需迭代,一步求出輸出權(quán)值的最小范數(shù)最小二乘解,相比于基于梯度下降法的相關(guān)方法(如CBP方法)訓(xùn)練速度要快。
附圖說明
圖1是本發(fā)明的方法流程示意圖;
圖2是本發(fā)明與BSCBP和CELM建模方法對比的曲線圖。
具體實施方式:
應(yīng)該指出,以下詳細(xì)說明都是例示性的,旨在對本申請?zhí)峁┻M(jìn)一步的說明。除非另有指明,本文使用的所有技術(shù)和科學(xué)術(shù)語具有與本申請所屬技術(shù)領(lǐng)域的普通技術(shù)人員通常理解的相同含義。
需要注意的是,這里所使用的術(shù)語僅是為了描述具體實施方式,而非意圖限制根據(jù)本申請的示例性實施方式。如在這里所使用的,除非上下文另外明確指出,否則單數(shù)形式也意圖包括復(fù)數(shù)形式,此外,還應(yīng)當(dāng)理解的是,當(dāng)在本說明書中使用術(shù)語“包含”和/或“包括”時,其指明存在特征、步驟、操作、器件、組件和/或它們的組合。
在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面結(jié)合附圖與實施例對本發(fā)明作進(jìn)一步說明。
實施例1:
在本實施例中引用文獻(xiàn)“Channel Equalization Using Adaptive Complex Radial Basis Function Networks”中的4-QAM信號的非線性失真的三維均衡器模型。其中,均衡器的輸入為
均衡器的理想輸出為0.7+0.7i,0.7-0.7i,-0.7+0.7i,-0.7-0.7i。
在本實施例中訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集分別取整體樣本數(shù)據(jù)集的70%和30%。
首先,通過本發(fā)明的一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法對數(shù)據(jù)集進(jìn)行建模。
一種基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,其方法流程圖如圖1所示,所述方法步驟包括:
(1)選擇單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型對樣本訓(xùn)練數(shù)據(jù)集或樣本測試數(shù)據(jù)集進(jìn)行建模;
所述步驟(1)中的所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型為:
所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型中的輸入層、隱層和輸出層神經(jīng)元個數(shù)分別為L、M和1;
給定Q個輸入樣本,其樣本矩陣為Z=(zij)L×Q=ZR+iZI,其中,ZR為
Z的實部,ZI為Z的虛部;
第q個樣本的輸入為其中,i=1,2…L;
輸入樣本相應(yīng)的理想輸出矩陣為D=(d1,d2…dQ)T=DR+iDI,其中,DR為D的實部,DI為D的虛部;
第q個樣本的理想輸出為dq∈C。
所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型中的所述隱層的激活函數(shù)為gc:C→C;
連接輸入層和隱層的權(quán)值矩陣為W=(wij)M×L=WR+iWI,其中,WR為W的實部,WI為W的虛部;
輸入層與第i個隱節(jié)點的連接權(quán)值記為wi=(wi1,wi2…wiL)∈CL,其中,i=1,2…M;
連接隱層和輸出層的權(quán)值向量為V=(v1,v2…vM)T=VR+iVI,其中,VR為V的實部,VI為V的虛部;
第k個隱節(jié)點與輸出層的連接權(quán)值記為vk∈C,其中,k=1,2…M。
(2)根據(jù)步驟(1)中選擇的單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)模型,利用廣義逆計算所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)中的權(quán)值矩陣,將迭代次數(shù)初始值設(shè)置為1,利用梯度下降法計算所述單隱層復(fù)值神經(jīng)網(wǎng)絡(luò)中的權(quán)值向量;
步驟S21:初始化輸入層到隱層的權(quán)值矩陣,獲取初始權(quán)值矩陣W0,W0在給定區(qū)間隨機賦值;
步驟S22:隱層的輸入矩陣為U=(uij)M×Q,矩陣U分為UR(實部)和UI(虛部)兩部分,U=WZ=UR+iUI,第q個樣本第m個隱層節(jié)點的輸入:
式中,xq為第q個輸入樣本的實部,yq為第q個輸入樣本的虛部,為第m個隱節(jié)點的輸入權(quán)向量的實部,為第m個隱節(jié)點的輸入權(quán)向量的虛部;
步驟S23:對矩陣U的實部和虛部分別激活,得到隱層的輸出矩陣為H=(hij)M×Q,矩陣H分為HR(實部)和HI(虛部)兩部分,H=gc(UR)+igc(UI)=HR+iHI
步驟S24:通過廣義逆計算隱層到輸出層的權(quán)值矩陣V,
步驟S25:對初始權(quán)值矩陣W0進(jìn)行優(yōu)化,優(yōu)化步驟S25如下子步驟:
步驟S251:設(shè)置初始迭代次數(shù)k=1;(最大迭代次數(shù)為K)
步驟S252:計算均方誤差E關(guān)于隱層權(quán)值W的梯度,分成兩部分計算,先求E對WR的梯度,再求E對WI的梯度,
步驟S27:權(quán)值更新公式為Wn+1=Wn+ΔWnn為迭代次數(shù)n=1,2,…,其中而即第m個隱節(jié)點在第n次迭代時的梯度;學(xué)習(xí)率η為常數(shù);
(3)根據(jù)步驟(2)中計算出的所述權(quán)值矩陣和所述權(quán)值向量,獲取復(fù)值神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)參數(shù),計算當(dāng)前樣本數(shù)據(jù)的均方誤差;判斷當(dāng)前迭代次數(shù)是否等于最大迭代次數(shù),若是,結(jié)束訓(xùn)練;若否,將當(dāng)前迭代次數(shù)加1,返回步驟(2)。
步驟S31:輸出層的激活函數(shù)選擇線性函數(shù),則輸出層的輸入等于輸出層的輸出,網(wǎng)絡(luò)的實際輸出為O=(o1,o2…oQ)T,第q個樣本的實際輸出為oq∈C,q=1,2…Q,將矩陣O分為OR(實部)和OI(虛部)兩部分,O=HTV=OR+iOI第q個樣本的實際輸出:
式中,vR為隱層到輸出層權(quán)值向量的實部,vI為隱層到輸出層權(quán)值向量的虛部,hq,R為第q個樣本隱層輸出向量的實部,hq,I為第q個樣本隱層輸出向量的虛部;
步驟S32:計算訓(xùn)練樣本的誤差函數(shù):
令k=k+1,返回步驟S22(隱層到輸出層的權(quán)值矩陣V始終通過廣義逆來求解)。
本實施例中包括兩個對比建模方法,BSCBP方法和CELM方法。CELM方法是文獻(xiàn)“Fully complex extreme learning machine”中的方法,該方法是對輸入權(quán)值矩陣隨機賦值,輸出權(quán)值矩陣通過廣義逆來求解。分別通過BSCBP方法和CELM方法對數(shù)據(jù)集(文獻(xiàn)“Channel Equalization Using Adaptive Complex Radial Basis Function Networks”中的4-QAM信號的非線性失真的三維均衡器模型進(jìn)行處理。其中,均衡器的輸入為
均衡器的理想輸出為0.7+0.7i,0.7-0.7i,-0.7+0.7i,-0.7-0.7i)進(jìn)行建模。實驗結(jié)果如圖2所示。
從圖2中可以看出在網(wǎng)絡(luò)結(jié)構(gòu)相同的條件下,本方法的訓(xùn)練誤差均低于BSCBP方法和CELM方法,說明本發(fā)明方法有效地優(yōu)化了訓(xùn)練權(quán)值,達(dá)到了很高的訓(xùn)練精度。
本發(fā)明方法中,隱層的輸入權(quán)值矩陣通過梯度下降法進(jìn)行更新,因此,與CELM相比,在初始權(quán)值相同的條件下,GGCNN模型需要的隱節(jié)點數(shù)遠(yuǎn)遠(yuǎn)少于CELM所需的隱節(jié)點數(shù),且小于CELM模型產(chǎn)生的均方誤差;
本發(fā)明的基于梯度下降法與廣義逆的復(fù)值神經(jīng)網(wǎng)絡(luò)的建模方法(Gradient based Generalized Complex Neural Networks,簡稱GGCNN方法)中,隱層的輸出權(quán)值矩陣通過廣義逆來求解,無需迭代,一步求出輸出權(quán)值矩陣的最小范數(shù)最小二乘解。因此在初始權(quán)值與隱節(jié)點個數(shù)相同的條件下,本發(fā)明方法不僅比BSCBP訓(xùn)練速度快,并且訓(xùn)練誤差和測試誤差均有大幅度降低,詳細(xì)對比結(jié)果如表1所示。
表1
以上所述僅為本申請的優(yōu)選實施例而已,并不用于限制本申請,對于本領(lǐng)域的技術(shù)人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請的保護(hù)范圍之內(nèi)。