李雪艷,廖一鵬
(1.陽光學院 人工智能學院,福建 福州 350015;2.福州大學 物理與信息工程學院,福建 福州 350108)
人工神經(jīng)網(wǎng)絡是機器學習的一種重要學習方式,而對神經(jīng)網(wǎng)絡的研究已經(jīng)很久了,有些訓練算法已經(jīng)非常成熟,如經(jīng)典的多層前饋(Back Propagation,BP)神經(jīng)網(wǎng)絡等,應用已經(jīng)非常廣泛,大量地應用于回歸擬合和分類問題之中[1]。但是這種被廣泛應用于多層前饋神經(jīng)網(wǎng)絡的經(jīng)典訓練算法,大多是基于梯度下降的方式來調(diào)整權(quán)值和閾值[2]。這類算法的訓練速度慢、有可能得到的不是全局最優(yōu)而是陷入局部最優(yōu),還有著參數(shù)調(diào)整復雜的問題。HUANG G B等人在2004年提出了一種新型的前饋神經(jīng)網(wǎng)絡即極限學習機(ELM)[3]。極限學習機(Extreme Learning Machine,ELM)是用于單隱層神經(jīng)網(wǎng)絡(Single hidden LayerFeed-forward Neural networks,SLFNs)訓練的一種高效的訓練算法。ELM不同于經(jīng)典的神經(jīng)網(wǎng)絡,它不需要梯度下降算法中繁瑣的迭代過程去調(diào)參而耗費很多時間。其隨機產(chǎn)生所有的權(quán)值和隱層節(jié)點閾值。并且它在訓練中一直不變,需要人為設定的只有節(jié)點個數(shù),然后求逆矩陣得到輸出權(quán)值,便能計算得到最優(yōu)值[4]。相較于傳統(tǒng)的SLFNs,ELM的訓練速度顯著提升,效率遠高于之前算法,且泛化性能好[5]。ELM作為優(yōu)秀的分類器,擁有良好的應用前景。但是在實際應用中,尤其是在處理回歸擬合的問題上,它的效果并不好,準確度一般。為了達到理想的誤差精度,ELM需要龐大的隱含層神經(jīng)元。而由于它的輸入權(quán)值和閾值是隨機設定的,這導致龐大的基數(shù)中有很多神經(jīng)元是無效的,即存在隨機出的輸入權(quán)值和閾值為0。
因此,本文嘗試改進算法,在犧牲一點原算法的訓練時間的條件下,利用量子遺傳算法去優(yōu)化ELM的各個參數(shù)如權(quán)值和節(jié)點閾值等。選取最優(yōu)的參數(shù),以期能夠減少隱含層節(jié)點的數(shù)量和網(wǎng)絡的整體維度,提升ELM的整體性能,使得算法預測上能夠更精確,且效果更穩(wěn)定。
目前傳統(tǒng)的人工神經(jīng)網(wǎng)絡算法有BP神經(jīng)網(wǎng)絡[6]和徑向基函數(shù)(Radial Basis Function,RBF)神經(jīng)網(wǎng)絡[7],以及本文研究的重點算法極限學習機算法。BP神經(jīng)網(wǎng)絡算法的核心是通過誤差反向傳遞來調(diào)參,通過層層迭代調(diào)整參數(shù)。RBF神經(jīng)網(wǎng)絡的拓撲結(jié)構(gòu)不再是一成不變了,而是隨著要處理的問題情況自動地調(diào)整隱層節(jié)點數(shù)。神經(jīng)元的輸入離徑向基函數(shù)中心越遠,神經(jīng)元的激活程度就越低。RBF網(wǎng)絡的輸出與數(shù)據(jù)中心離輸入模式較勁的“局部”隱節(jié)點關(guān)系較大,RBF神經(jīng)網(wǎng)絡因此具有“局部映射”特性。
極限學習機是一種新型的、快速的神經(jīng)網(wǎng)絡學習算法。不同于傳統(tǒng)的神經(jīng)網(wǎng)絡,ELM中所有的輸入層和隱函層之間的連接權(quán)值和隱層參數(shù)均為隨機產(chǎn)生,它的輸出權(quán)值是通過求解矩陣的廣義逆得到[8]。因此,與常規(guī)算法比較,該算法學習速度快,擁有更好的實用性。
設神經(jīng)網(wǎng)絡的輸出值T為:
T=[t1,t2,…,tQ]m×Q,
(1)
式(1)可表示為:
Hβ=T′
(2)
其中H是神經(jīng)網(wǎng)絡的隱層輸出矩陣,具體如下:
H(w1,w2,…,wl,b1,b2,…,bl,x1,x2,…,xQ)=
(3)
根據(jù)式(2)可解得隱含層與輸出層之間的權(quán)值β為:
(4)
量子遺傳算法(Quantum Genetic Algorithm,QGA)這一概念是在1996年由NARAYANAN A提出的。2002年KUK-HYUNHAN引入量子染色體的概念,提出了采用量子門的概率操作保持動態(tài)性的量子進化算法,并用來解決0-1背包問題,得到了比傳統(tǒng)算法更好的結(jié)果[9]。量子遺傳算法是遺傳算法的改進。QGA算法將量子態(tài)矢量表達引入染色體編碼,使得一條染色體擁有多個態(tài)的疊加。與傳統(tǒng)遺傳算法(Genetic Algorithm,GA)比較,QGA算法的種群有更多種可能性,能夠及時跳出局部最優(yōu)解,具有更廣泛適用性,收斂更加快速,達到更好的使用效果。
QGA算法中有兩個比較重要的概念,分別是新型的編碼方式:量子比特編碼,以及編碼出來的種群的更新方式。
量子計算中,量子比特是用來儲存信息的物理介質(zhì)。量子位是不確定的,測量前并不知道它到底是什么狀態(tài),比如這便是一個量子比特:|φ〉=α|0〉β|1〉。其中(α,β)是兩個幅常數(shù),|α|2+|β|2=1,|0〉和|1〉表示自旋態(tài)。由前式可得一個量子位同時包含|0〉和|1〉兩個態(tài)的信息。量子比特編碼對多態(tài)問題進行編碼,兩態(tài)用一個量子比特進行編碼。該方法通用性好,量子編碼n個參數(shù)的基因如下:
(5)
2.2 量子門更新
量子門是進化操作的機構(gòu),用來調(diào)整量子比特讓其朝著有力的方向進化。量子門有很多種,在遺傳算法中采用量子旋轉(zhuǎn)門[10]。其調(diào)整操作如公式(6)、(7)所示:
(6)
更新過程如下:
(7)
其中,(αi,βi)T表示第i個量子比特旋轉(zhuǎn)門的概率幅,θi為事先設定好的旋轉(zhuǎn)角。
常規(guī)極限學習機算法初始化網(wǎng)絡時,是隨機生成輸入層和隱層之間的權(quán)值及隱層閾值。然后利用這些隨機生成的值和訓練樣本中的輸出矩陣,通過求逆矩陣的方式計算出輸出權(quán)值[11]。但是,隨機生成的參數(shù)并不是最理想的,甚至有可能效果很差,影響性能[12]。這些參數(shù)有可能在訓練過程中起到的效果很小。比如若是閾值生成0值,那么這個隱層節(jié)點就相當于浪費了。在龐大的網(wǎng)絡中,這樣隨機產(chǎn)生的數(shù)值會造成網(wǎng)絡很多節(jié)點資源的浪費,使得網(wǎng)路規(guī)模臃腫龐大。
所以,本文考慮使用量子遺傳算法去優(yōu)化權(quán)值和閾值。選取最優(yōu)秀的權(quán)值和閾值賦予測試網(wǎng)絡,完成整個的優(yōu)化過程。這樣可以減少節(jié)點的浪費。在非常復雜的問題上,可以大幅度減少神經(jīng)元的個數(shù),有效降低網(wǎng)絡的維度。
量子遺傳優(yōu)化的改進ELM算法流程如下:
(1)初始化量子比特編碼的種群。種群大小為N。種群中個體參數(shù)變量的個數(shù)為權(quán)值和閾值的個數(shù)。權(quán)值范圍[-1,1],閾值范圍為0~1。參數(shù)具體數(shù)目隨樣本輸入變量及隱層神經(jīng)元個數(shù)而定。
(2)測量種群得到二進制編碼種群。
(3)賦予極限學習機權(quán)值閾值。將種群中待優(yōu)化變量解碼,轉(zhuǎn)化為十進制數(shù),將這些變量賦給極限學習機。這樣便產(chǎn)生N個極限學習機。
(5)計算適應度值。適應度值fitness為網(wǎng)絡輸出與訓練樣本輸出之間的均方差,公式為
(8)
其中m為輸出變量個數(shù)。
(6)找出并記錄每代最優(yōu)適應度值及最優(yōu)解,然后利用量子旋轉(zhuǎn)門進化種群。
(7)將新種群的變量值賦給極限學習機,重復步驟(4)。
(8)計算適應度值。
(9)判斷是否滿足結(jié)束條件,滿足跳出循環(huán);否則回到步驟(6)。
(10)將最優(yōu)解賦給測試極限學習機,利用測試樣本測試其性能。
在討論幾種尋優(yōu)算法在復雜函數(shù)問題上的表現(xiàn),分析為何量子遺傳算法適合極限學習機參數(shù)的優(yōu)化后,用實驗結(jié)果來充分證明量子遺傳極限學習機在回歸擬合、分類等問題上的適應性,通過與其他幾種算法的對比體現(xiàn)其優(yōu)勢。
通過對復雜二元函數(shù)求最值
(9)
從時間、迭代次數(shù)及是否會陷入局部最優(yōu)解等幾個方面評價各智能算法的性能,比較它們的優(yōu)缺點。本文選取的算法有:QGA算法、GA算法、PSO(Particle Swarm Optimization)算法、多種群GA算法、魚群算法。圖1所示為目標函數(shù)圖像,圖2為進化過程。
圖1 目標函數(shù)圖像
由表1的實驗數(shù)據(jù)分析可知,傳統(tǒng)遺傳算法在函數(shù)逼近的問題當中收斂速度極快,運行時間較短,但是非常容易陷入局部最優(yōu)解,而且難以跳出。
而QGA算法收斂速度適中,且在局部最優(yōu)解這個問題上表現(xiàn)很好。綜合性能來說,QGA算法總體較優(yōu),是理想的優(yōu)化算法,適用于本文用來優(yōu)化ELM的參數(shù)。
表1 各算法結(jié)果及性能
圖2 各算法進化過程
問題描述:汽油的檢測指標中辛烷值是最重要的指標。但傳統(tǒng)的檢測方法用時長,耗資高,現(xiàn)發(fā)展起近紅外光譜分析法,已得到廣泛應用?,F(xiàn)已采集到60組汽油樣品的近紅外光譜數(shù)據(jù),在900 nm~1 700 nm范圍內(nèi)選取400個不同的波長點個采集到它們的吸光度數(shù)據(jù)。
現(xiàn)分別用BP神經(jīng)網(wǎng)絡、RBF神經(jīng)網(wǎng)絡、傳統(tǒng)ELM、支持向量機以及本文的量子遺傳算法極限學習機處理此問題,并比較性能,預測結(jié)果如圖3所示,預測性能評估如表2所示。
表2 預測性能評估
圖3 汽油辛烷值預測結(jié)果圖
表2中均方誤差MSE公式為:
(10)
其中n為輸出值個數(shù),Tsim,i為網(wǎng)絡第i個輸出,Ttest,i為樣本測試集的第i個輸出。MSE越小越好。
決定系數(shù)公式:
R2=
(11)
由表2可以看出BP神經(jīng)網(wǎng)絡、RBF神經(jīng)網(wǎng)絡預測誤差較小,但學習速度較慢,效率不夠高。與之相對應的是傳統(tǒng)ELM,其擁有相當快的的學習速度,然而高速帶來的是較大的測試誤差,它的均方誤差很大。支持向量機速度最慢,然而它的測試誤差最小,適用于精確預測的場合。本文算法訓練速度也相對較慢,但是其測試誤差控制得很好,決定系數(shù)表現(xiàn)也是最好的,可以看出其綜合性能在幾種算法中排名前列。
問題描述:葡萄酒的品質(zhì)分級向來很嚴格,不同品質(zhì)的葡萄酒價格差距相當大。除了請品酒師來鑒定葡萄酒的等級外,還可以通過分析葡萄酒中的化學成分含量來判斷葡萄酒的品質(zhì)?,F(xiàn)已采集到三種不同等級葡萄酒樣本150個。通過分析葡萄酒中酒精、蘋果酸、脯氨酸等13種化學成分含量來將它們分類,結(jié)果如圖4所示。
由表3可知,由于此次用來分類的葡萄酒樣本數(shù)據(jù)變量過多且代表性不是很好,因此各算法分類的準確性皆不是很高,而且受訓練樣本的選取影響很大,沒有表現(xiàn)出良好的泛化性能。然而可以看到本文算法在如此惡劣條件下表現(xiàn)出良好的準確性,且相當穩(wěn)定,在這一指標上呈現(xiàn)壓倒性優(yōu)勢。但不足的是耗時過多,有待改進。
圖4 各算法分類結(jié)果圖
表3 分類性能評估
本文利用量子遺傳算法優(yōu)化極限學習機的連接權(quán)值和閾值,達到了改進的目的,并取得不錯的實用效果。本課題實驗結(jié)果分析表明,在樣本數(shù)目不是很多的回歸問題和分類問題上,基于量子遺傳優(yōu)化的改進極限學習機算法的預測精準度高于原算法,綜合性能也略優(yōu)于原算法。本文算法為在回歸問題的預測和分類問題的處理上提供了一種新的思路。