張 杰,沈蘇彬
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,南京 210046)
自從極限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)被提出以來(lái),由于其具有泛化能力強(qiáng)、訓(xùn)練時(shí)間短的優(yōu)點(diǎn),受到了許多學(xué)者的關(guān)注。文獻(xiàn)[1]證明了ELM的一致逼近性并將ELM直接應(yīng)用于回歸與多分類問(wèn)題[2]。為處理非平衡數(shù)據(jù)的學(xué)習(xí)問(wèn)題,文獻(xiàn)[3]通過(guò)引入類別權(quán)值,提出了加權(quán)極限學(xué)習(xí)機(jī)(W-ELM)。文獻(xiàn)[4]提出的在線序列極限學(xué)習(xí)機(jī)(OS-ELM),將ELM延伸至在線學(xué)習(xí)問(wèn)題,拓寬其實(shí)際應(yīng)用范圍。目前,ELM在語(yǔ)音識(shí)別[5]、電力系統(tǒng)[6]等領(lǐng)域已得到初步應(yīng)用。
作為一種新興技術(shù),ELM在回歸和分類應(yīng)用中表現(xiàn)出良好的性能,具有較高的運(yùn)行速度和較好的通用性,但為探索ELM在現(xiàn)實(shí)問(wèn)題中的普遍適用性,需要確定用于解決特定任務(wù)的最合適的網(wǎng)絡(luò)架構(gòu)。ELM與批量學(xué)習(xí)方案[7]以及在線順序?qū)W習(xí)方案[8]是以固定網(wǎng)絡(luò)規(guī)模開發(fā)的,搜索這種固定網(wǎng)絡(luò)大小的常用方法是通過(guò)反復(fù)實(shí)驗(yàn)。該方法簡(jiǎn)單明了,但計(jì)算成本高,不能保證所選擇的網(wǎng)絡(luò)規(guī)模接近最優(yōu)。文獻(xiàn)[9]提出增量ELM(I-ELM)算法,其中隱藏節(jié)點(diǎn)被逐一隨機(jī)添加,并且當(dāng)添加新的隱藏節(jié)點(diǎn)時(shí),現(xiàn)有隱藏節(jié)點(diǎn)的輸出權(quán)重被凍結(jié),證明了I-ELM的通用逼近能力。凸面I-ELM(CI-ELM)[10]采用另一種源于巴倫凸優(yōu)化概念的增量方法。當(dāng)添加新的隱藏節(jié)點(diǎn)時(shí),這種方法允許適當(dāng)?shù)卣{(diào)整現(xiàn)有隱藏節(jié)點(diǎn)的輸出權(quán)重。在這種情況下,CI-ELM可以實(shí)現(xiàn)比I-ELM更快的收斂速度,同時(shí)保留I-ELM的簡(jiǎn)單性。在I-ELM和CI-ELM的學(xué)習(xí)過(guò)程中,一些新添加的隱藏節(jié)點(diǎn)僅在網(wǎng)絡(luò)的最終輸出中起很小的作用,因此可能增加網(wǎng)絡(luò)復(fù)雜性。為避免上述問(wèn)題并獲得更緊湊的網(wǎng)絡(luò)架構(gòu),文獻(xiàn)[11]提出增強(qiáng)型I-ELM(EI-ELM)算法。在EI-ELM的每個(gè)學(xué)習(xí)步驟中,隨機(jī)生成若干隱藏節(jié)點(diǎn),并且僅將導(dǎo)致最大殘余誤差減少的節(jié)點(diǎn)添加到現(xiàn)有網(wǎng)絡(luò)。此外,EI-ELM還將I-ELM擴(kuò)展到通用SLFN。文獻(xiàn)[12]在SAP-ELM 算法的基礎(chǔ)上,結(jié)合L2正則化因子和奇異值分解 (SVD),提出一種改進(jìn) 的SAP-ELM (ImSAP-ELM)算法以提高預(yù)測(cè)精度和數(shù)值穩(wěn)定性。文獻(xiàn)[13]對(duì)靈敏度進(jìn)行修正,提出更符合實(shí)際需求的神經(jīng)網(wǎng)絡(luò)剪枝算法IS-ELM。
文獻(xiàn)[14]提供一種誤差最小化ELM(EM-ELM)方法。該方法允許逐個(gè)或逐組添加隨機(jī)隱藏節(jié)點(diǎn)(具有不同的大小)。此外,EM-ELM在網(wǎng)絡(luò)增長(zhǎng)期間遞增地更新輸出權(quán)重,降低了計(jì)算復(fù)雜度。然而,在所有上述建設(shè)性ELM的實(shí)現(xiàn)中,隱藏節(jié)點(diǎn)的數(shù)量隨著學(xué)習(xí)進(jìn)度和最終數(shù)量單調(diào)增加,隱藏節(jié)點(diǎn)的數(shù)量相當(dāng)于學(xué)習(xí)步驟。如果需要進(jìn)行許多迭代步驟,最終將獲得大量隱藏節(jié)點(diǎn),而一些隱藏節(jié)點(diǎn)可能在網(wǎng)絡(luò)輸出中起很小的作用。文獻(xiàn)[15]基于和聲搜索算法優(yōu)化極限學(xué)習(xí)機(jī)的方法,結(jié)合了和聲搜索算法和極限學(xué)習(xí)機(jī)兩者的優(yōu)勢(shì),利用和聲搜索算法調(diào)整極限學(xué)習(xí)機(jī)的輸入權(quán)值和隱含層閾值,避免了隨機(jī)設(shè)定無(wú)效節(jié)點(diǎn)而導(dǎo)致預(yù)測(cè)效果不穩(wěn)定、泛化能力較差等問(wèn)題。文獻(xiàn)[16]提出了一種新的隱含層節(jié)點(diǎn)的選擇算法SHN-ELM。通過(guò)對(duì)隱含層節(jié)點(diǎn)的選擇,提高了ELM 算法的穩(wěn)定性和分類準(zhǔn)確率。文獻(xiàn)[17]提出了以粒子群優(yōu)化算法搜索ELM隱藏層最佳神經(jīng)元個(gè)數(shù),用極限學(xué)習(xí)機(jī)模型的測(cè)試準(zhǔn)確率作為粒子群優(yōu)化算法適應(yīng)值。文獻(xiàn)[18]提出了一種P-ELM算法,通過(guò)統(tǒng)計(jì)方法去除不相關(guān)或相關(guān)性較低的隱藏節(jié)點(diǎn),系統(tǒng)地確定學(xué)習(xí)過(guò)程中隱藏節(jié)點(diǎn)的數(shù)量,但是這樣的方法卻無(wú)法自動(dòng)地完成。文獻(xiàn)[19]設(shè)計(jì)了一種基于 EFAST 的隱藏層節(jié)點(diǎn)剪枝算法(FOS-ELM),利用傅里葉敏感度測(cè)試方法對(duì) OS-ELM 的隱藏節(jié)點(diǎn)進(jìn)行分析,能適用于剪枝后的網(wǎng)絡(luò)參數(shù)調(diào)整算法。文獻(xiàn)[20]針對(duì)隱藏節(jié)點(diǎn)數(shù)量影響ELM泛化性能的問(wèn)題,提出一種SRM-ELM算法。SRM-ELM在結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則下,建立隱藏節(jié)點(diǎn)數(shù)與泛化能力的關(guān)系函數(shù),利用PSO簡(jiǎn)單高效的全局搜索能力,優(yōu)化ELM的隱藏節(jié)點(diǎn)數(shù),避免了傳統(tǒng)方法反復(fù)進(jìn)行調(diào)節(jié)實(shí)驗(yàn)的繁瑣。但是上述算法耗時(shí)比較長(zhǎng),不適用于物聯(lián)網(wǎng)的特性。為此,本文提出一種適合物聯(lián)網(wǎng)的在線GP-ELM算法。該算法能夠在添加多個(gè)節(jié)點(diǎn)的同時(shí)進(jìn)行剪枝、刪減節(jié)點(diǎn),以提高ELM的準(zhǔn)確性。
在ELM中,只需要預(yù)先確定隱藏神經(jīng)元的數(shù)量,而隱藏神經(jīng)元的參數(shù)(如RBF節(jié)點(diǎn)的中心和影響因子或附加節(jié)點(diǎn)的偏差和輸入權(quán)重)是隨機(jī)分配的。因此,給出如下ELM預(yù)測(cè)公式:
(1)
其中,β=[β1,β2,…,βk]是連接隱藏層和輸出層的輸出權(quán)重的向量,H(X)=[H1(X),H2(X),…,Hk(X)]是隱藏層相對(duì)于樣本X的輸出。 根據(jù)Bartlett理論,對(duì)于訓(xùn)練誤差較小的神經(jīng)網(wǎng)絡(luò),權(quán)重范數(shù)越小,網(wǎng)絡(luò)的泛化性能越可能更好,因此,將訓(xùn)練誤差與輸出權(quán)重的范數(shù)最小化:
(2)
其中,H是隱藏層的輸出矩陣:
(3)
并且:
(4)
將最小范數(shù)最小二乘法用于經(jīng)典ELM的原始實(shí)現(xiàn)中,即:
β=H?T
(5)
其中,H?是H的Moore-Penrose廣義逆,即偽逆。
如果使用標(biāo)準(zhǔn)優(yōu)化方法,則基于約束優(yōu)化的ELM可以寫成:
受限于:
ξ=T-Hβ
(6)
根據(jù)KKT條件,可以通過(guò)以下雙重優(yōu)化來(lái)解決:
(7)
其中,αi∈α=[α1,α2,…,αN]對(duì)應(yīng)于訓(xùn)練樣本的拉格朗日乘數(shù)。KKT最佳條件如下:
(8)
(9)
(10)
根據(jù)訓(xùn)練集的大小可以實(shí)現(xiàn)不同的解決方案:
1)訓(xùn)練樣本數(shù)量很大的情況
如果訓(xùn)練數(shù)據(jù)N的數(shù)量非常大,如比特征空間L的維數(shù)大得多,即N> >L,則以下解決方案是優(yōu)選的。
(11)
在這種情況下,ELM的輸出函數(shù)為:
(12)
2)訓(xùn)練樣本數(shù)量少的情況
在這種情況下,通過(guò)將式(8)、式(9)代入式(10),可以等效地將式(11)、式(12)寫為:
(13)
由式(4)~式(8),有:
(14)
ELM的輸出方程為:
(15)
EM-ELM是一種簡(jiǎn)單而有效的算法,可以逐個(gè)或逐組地隨機(jī)添加隱藏節(jié)點(diǎn)。在網(wǎng)絡(luò)增長(zhǎng)期間,基于誤差最小化方法遞增地更新輸出權(quán)重。
(16)
可以等效地以矩陣形式表示:
Hβ=T
(17)
其中:
(18)
(19)
其中,H?是H的Moore-Penrose廣義逆,即偽逆。
(20)
(21)
(22)
其中:
(23)
然后計(jì)算β2:
(24)
同樣,輸出權(quán)重可以逐步更新為:
(25)
訓(xùn)練數(shù)據(jù)可以在實(shí)際應(yīng)用中逐塊或逐個(gè)(塊的特殊情況)到達(dá)。在線序列學(xué)習(xí)機(jī)(OS-ELM)算法針對(duì)在線學(xué)習(xí)案例,并在短時(shí)間內(nèi)不斷更新輸出權(quán)重。
當(dāng)新的采樣數(shù)據(jù)到來(lái)時(shí),ELM的數(shù)學(xué)模型應(yīng)該被修改為:
(26)
其中,δH和δT是新生成的隱藏層輸出矩陣,使用當(dāng)前學(xué)習(xí)參數(shù)和由新獲得的觀測(cè)值組成的輸出矩陣,β′是修改后的輸出權(quán)重矩陣。OS-ELM算法分為兩個(gè)階段,即初始化階段和順序階段。初始化階段與普通ELM算法相同,而輸出權(quán)重矩陣β將通過(guò)迭代方式在順序階段中更新。
OS-ELM算法步驟如下:
2)計(jì)算初始隱藏層輸出矩陣H0:
4)設(shè)置k= 0,其中k是表示呈現(xiàn)給網(wǎng)絡(luò)的數(shù)據(jù)塊數(shù)量的索引。
步驟2(序列階段) 給出第(k+ 1)個(gè)新觀察結(jié)果:
其中,nk表示k塊中新獲得的觀察的數(shù)量。顯然,可以得到N0=n0。
1)計(jì)算部分隱藏層輸出矩陣hk+1:
hk+1=
2)計(jì)算輸出權(quán)重矩陣βk+1:
設(shè)置k=k+ 1,然后返回序列學(xué)習(xí)階段。
最早的ELM應(yīng)用是預(yù)先設(shè)定好隱藏層節(jié)點(diǎn)的個(gè)數(shù),存在準(zhǔn)確率不穩(wěn)定等不足。該類算法主要有2種:1)逐漸增加一個(gè)或者多個(gè)節(jié)點(diǎn),這種算法將節(jié)點(diǎn)添加之后,隱藏層的參數(shù)即固定,這樣一些不必要的節(jié)點(diǎn)或者貢獻(xiàn)很小的節(jié)點(diǎn)會(huì)增加計(jì)算量;2)先設(shè)定一個(gè)較大的值作為隱藏層節(jié)點(diǎn)的個(gè)數(shù),根據(jù)第一次訓(xùn)練節(jié)點(diǎn)的權(quán)值刪減一些節(jié)點(diǎn),然后再訓(xùn)練,這種算法必定要設(shè)置一個(gè)非常大的值,這對(duì)不同的數(shù)據(jù)的適應(yīng)性就非常低,因?yàn)橐恍?shù)據(jù)只需要較少的節(jié)點(diǎn),而有些則需要較多的節(jié)點(diǎn)。
本文算法是在EM-ELM[12]算法模型的基礎(chǔ)上,固定每輪增加節(jié)點(diǎn)的個(gè)數(shù),增加了每輪對(duì)整體節(jié)點(diǎn)進(jìn)行剪枝的過(guò)程,能夠保證節(jié)點(diǎn)的質(zhì)量。本文算法結(jié)合上文兩類算法的優(yōu)點(diǎn),既能動(dòng)態(tài)地根據(jù)數(shù)據(jù)來(lái)生成隱藏節(jié)點(diǎn),又能剔除那些沒(méi)有起到作用的節(jié)點(diǎn),先生成固定數(shù)值節(jié)點(diǎn),在這些節(jié)點(diǎn)加入之后進(jìn)行一次訓(xùn)練,根據(jù)權(quán)值矩陣β來(lái)計(jì)算每個(gè)節(jié)點(diǎn)的貢獻(xiàn)值:
1)如果β是一維的,則直接將這一列換算成比例。
2)如果β是n維的,則先將每一列換算成比例,然后將每一行取平均值。
根據(jù)計(jì)算出的貢獻(xiàn)值來(lái)選擇刪去哪些節(jié)點(diǎn),然后返回到增加節(jié)點(diǎn)的步驟,如此循環(huán),直到達(dá)到一定的標(biāo)準(zhǔn)停止循環(huán)。
由于物聯(lián)網(wǎng)下的數(shù)據(jù)是不斷產(chǎn)生的,因此在線訓(xùn)練數(shù)據(jù)更新參數(shù)又是非常有必要的,所以本文算法在確定隱藏層結(jié)構(gòu)后,會(huì)根據(jù)新來(lái)的數(shù)據(jù)更新參數(shù)。
本文算法步驟如下:
步驟1初始化階段:
2)計(jì)算隱藏層的輸出矩陣:
3)計(jì)算最優(yōu)的輸出權(quán)重:
β=H?T
其中,H?為H的廣義逆,T為目標(biāo)矩陣。于是,得到初始函數(shù)Ψ1以及相關(guān)的誤差E1:
步驟2隱藏節(jié)點(diǎn)上升并且刪減(最大隱藏節(jié)點(diǎn)數(shù)Lmax,需求的錯(cuò)誤率ε):
1)生成M個(gè)隱藏節(jié)點(diǎn)參數(shù)并將其加入到當(dāng)前模型,然后根據(jù)迭代式計(jì)算:
2)計(jì)算出輸出權(quán)重,生成模型Ψn(x)=βnGn(x),計(jì)算其誤差En,如果Ln
3)根據(jù)計(jì)算出的β計(jì)算每個(gè)節(jié)點(diǎn)的貢獻(xiàn)值:
(1)如果β是一維的,則直接將這一列換算成比例。
(2)如果β是n維的,則先將每一列換算成比例,然后將每一行取平均值。
4)刪除那些幾乎不起作用的節(jié)點(diǎn)(兩種方案):
(1)節(jié)點(diǎn)貢獻(xiàn)值低于某一個(gè)值會(huì)被刪除。
(2)對(duì)貢獻(xiàn)值進(jìn)行排序,貢獻(xiàn)值最小的m個(gè)節(jié)點(diǎn)會(huì)被刪除。
5)轉(zhuǎn)到步驟1。
步驟3在線學(xué)習(xí)階段:
設(shè)置r= 0,其中k是表示呈現(xiàn)給網(wǎng)絡(luò)的數(shù)據(jù)塊的數(shù)量的索引,給出第(r+ 1)個(gè)新觀察結(jié)果:
其中,nr表示r塊中新獲得的觀察的數(shù)量。顯然,可以得到N0=n0。
1)計(jì)算部分隱藏層輸出矩陣hr+1:
2)計(jì)算輸出權(quán)重矩陣βk+1:
3)如果還有數(shù)據(jù)進(jìn)入,則設(shè)置r=r+1,然后返回序列學(xué)習(xí)階段,否則程序結(jié)束。
定理1給定一個(gè)SLFN,令H1作為有L0個(gè)隱藏節(jié)點(diǎn)的SLFN隱藏層輸出矩陣,如果L1-L0個(gè)節(jié)點(diǎn)被加入當(dāng)前模型,新的隱藏層輸出矩陣為H2,于是有:
證明:根據(jù)前文的推理,增加σL0=L1-L0可以得到H2=[H1σH1],其中:
σH1=
由上面的證明可以看出,本文算法可以使得誤差值達(dá)到指定小的值,即算法是收斂的,能夠迭代終止。
本文實(shí)驗(yàn)的實(shí)驗(yàn)平臺(tái)為 Intel i7-6700 3.4 GHz,16 GB 內(nèi)存和 1 TB硬盤的PC,實(shí)驗(yàn)在 Windows 10 系統(tǒng)上用 Matlab 2016(b)實(shí)現(xiàn)。本文實(shí)驗(yàn)采用了實(shí)際應(yīng)用的公開的數(shù)據(jù)集Image Segment(圖片分割)、Satellite Image(衛(wèi)星圖片分類)和DNA,如表1所示。
表1 實(shí)驗(yàn)所用數(shù)據(jù)集
本文實(shí)驗(yàn)將提出的算法GP-ELM與ELM以及各種衍生版本OS-ELM、EI-ELM、D-ELM、EM-ELM進(jìn)行了對(duì)比(本文所有實(shí)驗(yàn)結(jié)果都是重復(fù)實(shí)驗(yàn)10次后的均值)。
3.2.1 各個(gè)數(shù)據(jù)ELM網(wǎng)絡(luò)結(jié)構(gòu)的確定
對(duì)每個(gè)數(shù)據(jù)集逐漸增加隱藏節(jié)點(diǎn)的個(gè)數(shù),如圖1所示。
圖1 準(zhǔn)確度隨節(jié)點(diǎn)數(shù)增長(zhǎng)過(guò)程
從圖1可以看出,隨著隱藏節(jié)點(diǎn)個(gè)數(shù)的增長(zhǎng),訓(xùn)練準(zhǔn)確度和測(cè)試準(zhǔn)確度都在逐步上升,測(cè)試準(zhǔn)確度在500隱藏節(jié)點(diǎn)時(shí)達(dá)到了平穩(wěn)狀態(tài),并且在550左右開始下降,因此,對(duì)于數(shù)據(jù)集Satellite Image,ELM的最優(yōu)隱藏節(jié)點(diǎn)個(gè)數(shù)在550左右。對(duì)于其他兩組數(shù)據(jù)集進(jìn)行同樣的實(shí)驗(yàn)得到了相應(yīng)的節(jié)點(diǎn)個(gè)數(shù)。
3.2.2 與ELM、OS-ELM算法的對(duì)比
將本文算法與ELM、OS-ELM算法進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果如表2所示。從表2可以看出,本文算法在增加較少訓(xùn)練時(shí)間的代價(jià)下,首先完成了隱藏節(jié)點(diǎn)個(gè)數(shù)自動(dòng)生成的任務(wù),并且在準(zhǔn)確度上有了一定的提升,同時(shí)需要更少的隱藏節(jié)點(diǎn)來(lái)完成。這是因?yàn)楸疚奶岢龅乃惴ㄔ诿看卧黾庸?jié)點(diǎn)之后,對(duì)一些不重要的對(duì)結(jié)果影響特別小的那些隱藏節(jié)點(diǎn)都進(jìn)行刪除,這樣,留下來(lái)的節(jié)點(diǎn)都是提取了非常重要的特征,對(duì)最后的結(jié)果有著很大的影響,所以本文提出的算法能用比較少的節(jié)點(diǎn)得到比較高的準(zhǔn)確度。
表2 GP-ELM與ELM、OS-ELM算法性能對(duì)比
3.2.3 與EI-ELM、D-ELM、EM-ELM算法的對(duì)比
本文算法與EI-ELM、D-ELM、EM-ELM算法的性能對(duì)比如表3所示。從表3可以看出,本文算法具有更高的準(zhǔn)確度,這是因?yàn)閯h去不重要的節(jié)點(diǎn),使得本文算法生成的節(jié)點(diǎn)數(shù)量基本是最少的。另外,DP-ELM在訓(xùn)練時(shí)間上相比其他算法要少,這是由于本文的算法并不是一個(gè)一個(gè)地增加節(jié)點(diǎn),而是一塊一塊地增加,這樣大幅節(jié)省了訓(xùn)練時(shí)間,同時(shí),本文算法通過(guò)對(duì)原有的節(jié)點(diǎn)進(jìn)行刪除修剪,這樣更有效地對(duì)ELM的結(jié)構(gòu)進(jìn)行組裝,提高所選節(jié)點(diǎn)的質(zhì)量,在得到較高準(zhǔn)確度的同時(shí)節(jié)省了隨機(jī)搜索而進(jìn)行的大量迭代時(shí)間,保證了更少的節(jié)點(diǎn)。
表3 GP-ELM與EI-ELM、D-ELM、EM-ELM 算法性能對(duì)比
通過(guò)觀察圖2所示的迭代次數(shù)與被加入的隱藏節(jié)點(diǎn)個(gè)數(shù)的對(duì)比,可以發(fā)現(xiàn)GP-ELM是每次增加多個(gè)節(jié)點(diǎn)然后進(jìn)行修剪,所以會(huì)很快地并以較少的節(jié)點(diǎn)完成迭代,可以看出本文算法具有較大的優(yōu)勢(shì)。
圖2 節(jié)點(diǎn)個(gè)數(shù)隨迭代次數(shù)變化過(guò)程
為適應(yīng)機(jī)器學(xué)習(xí)算法準(zhǔn)確、快速以及自適應(yīng)產(chǎn)生參數(shù)的需求,本文通過(guò)研究ELM網(wǎng)絡(luò)結(jié)構(gòu)的確定方法,結(jié)合EM-ELM算法節(jié)點(diǎn)增加的方式和廣義逆的迭代公式,引入節(jié)點(diǎn)的修剪刪除的階段,實(shí)現(xiàn)達(dá)到根據(jù)數(shù)據(jù)本身自動(dòng)地確定ELM網(wǎng)絡(luò)結(jié)構(gòu)的能力,并且在確定的過(guò)程中不斷地刪除貢獻(xiàn)較低的節(jié)點(diǎn),以保持網(wǎng)絡(luò)的大小,提高ELM的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,與EM-ELM、D-ELM和EI-ELM算法相比,DP-ELM算法能夠保證泛化能力,在準(zhǔn)確率、訓(xùn)練時(shí)間、模型大小等方面都有著很好的表現(xiàn),滿足物聯(lián)網(wǎng)下邊緣設(shè)備對(duì)機(jī)器學(xué)習(xí)產(chǎn)生的應(yīng)用需求。下一步將把該算法拓展到真實(shí)的物聯(lián)網(wǎng)場(chǎng)景下進(jìn)行應(yīng)用,以測(cè)試實(shí)際的效果與適用范圍。