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