劉 彬,楊有恒,劉 靜,王衛(wèi)濤,劉浩然,聞 巖
(1.燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島 066004;2.燕山大學(xué) 信息科學(xué)與工程學(xué)院,河北 秦皇島 066004)
極限學(xué)習(xí)機(jī)[1](extreme learning machine,ELM)作為機(jī)器學(xué)習(xí)中一項重要分支,被廣泛應(yīng)用于圖像分類[2]、數(shù)據(jù)挖掘[3]、工業(yè)預(yù)測[4,5,16]等各個領(lǐng)域。隨著神經(jīng)網(wǎng)絡(luò)算法的不斷發(fā)展,使用ELM進(jìn)行圖像分類越來越受到重視,并且在理論和應(yīng)用方面都做出了突出的貢獻(xiàn)。Kasun等[6]基于ELM自動編碼器(autoencoder,AE)的堆疊式模型構(gòu)建多層神經(jīng)網(wǎng)絡(luò),提出多層極限學(xué)習(xí)機(jī)(multi-layer extreme lea-rning machine,ML-ELM),具有良好的分類性能;Tang等[7]結(jié)合多層感知器的分層學(xué)習(xí)結(jié)構(gòu)和l1范數(shù)自動編碼器提出分層極限學(xué)習(xí)機(jī)(hierarchical extreme learning machine,H-ELM),實現(xiàn)了更好的特征提取。然而,上述算法在面對龐大且復(fù)雜的訓(xùn)練數(shù)據(jù)時[8]:由于數(shù)據(jù)量呈指數(shù)增加,但內(nèi)存的增長跟不上數(shù)據(jù)的增長,從而導(dǎo)致算法由于內(nèi)存的限制,很難測試更多的隱藏節(jié)點(diǎn)以獲得最佳性能。目前,針對上述問題有2種解決方法:1)使用物理內(nèi)存大的超級計算機(jī),然而,超級計算機(jī)在硬件和功耗上都是非常昂貴的,并不總是為許多研究人員所用。2)融合其他特征降維方法,比如,文獻(xiàn)[9]基于PCA和ELM-AE,通過減少每一層的隱藏節(jié)點(diǎn)數(shù),提出堆疊式極限學(xué)習(xí)機(jī)(stacked extreme learning machine,S-ELM),具有更高效的非線性數(shù)據(jù)處理能力;文獻(xiàn)[10]基于核方法提出基于經(jīng)驗核映射的多層極限學(xué)習(xí)機(jī)(empirical kernel map-based multilayer extre-me learning machine,ML-EKM-ELM),克服了傳統(tǒng)算法存在的內(nèi)存存儲和計算問題;文獻(xiàn)[11]采用LLTSA算法將訓(xùn)練樣本和測試樣本的高維向量壓縮為具有更好區(qū)分性的低維向量,增強(qiáng)了數(shù)據(jù)的自適應(yīng)性,為快速訓(xùn)練ELM分類器提供更低內(nèi)存消耗。盡管這些方法均實現(xiàn)了減少運(yùn)行內(nèi)存的目的,但是增加的算法無疑會導(dǎo)致計算復(fù)雜度的上升和模型結(jié)構(gòu)復(fù)雜度的增加,從而使運(yùn)算時間變長、學(xué)習(xí)速度變慢。因此,在有限的內(nèi)存條件下,適當(dāng)減少內(nèi)存使用對提升算法的性能是十分有必要的。
本文針對極限學(xué)習(xí)機(jī)在處理高維數(shù)據(jù)時能耗大、分類準(zhǔn)確率低等問題,提出了基于流形正則化的批量分層編碼極限學(xué)習(xí)機(jī)(batch hierarchical coding extreme learning machine,BH-ELM)算法。本算法對數(shù)據(jù)集進(jìn)行分批處理,以減少數(shù)據(jù)維度和降低數(shù)據(jù)復(fù)雜程度,同時利用多層自動編碼器對數(shù)據(jù)進(jìn)行無監(jiān)督編碼,實現(xiàn)深層特征提取;進(jìn)而結(jié)合流形正則化框架,通過推導(dǎo)新的輸出權(quán)重公式來構(gòu)造含有繼承因子的流形分類器,實現(xiàn)模型的求解。
對于N個樣本(xi,ti),其中xi=[xi1,xi2,…,xiN]T,ti=[ti1,ti2,…,tiN]T,則標(biāo)準(zhǔn)單隱層前饋神經(jīng)網(wǎng)絡(luò)(single hidden layer feedforward neural network,SLFN)可以表示為[12]:
(1)
式中:g(·)為激活函數(shù);β=(β1,β2,…,βL)T為連接第i個隱藏節(jié)點(diǎn)和輸出節(jié)點(diǎn)的權(quán)重向量,L為隱藏層節(jié)點(diǎn)數(shù);ai為連接第i個隱藏節(jié)點(diǎn)與輸入節(jié)點(diǎn)的權(quán)重向量;bi為第i個隱藏節(jié)點(diǎn)的偏置;ai·xi表示ai和xi的內(nèi)積。SLFN學(xué)習(xí)的目標(biāo)是使得輸出誤差最小,可以表示為:
(2)
即存在ai,bi使得:
(3)
β=H+T
(4)
式中H+為輸入樣本的隱藏層輸出矩陣。
圖1 傳統(tǒng)ELM模型Fig.1 Traditional ELM model
通過建立最小化損失函數(shù),則ELM的目標(biāo)函數(shù)可以表示為:
(5)
式中:C為正則化最小均方參數(shù);ξi為輸出誤差。根據(jù)訓(xùn)練數(shù)據(jù)集大小,可得輸出權(quán)重β的不同解為:
(6)
在式(6)的矩陣運(yùn)算中,HTH為矩陣HT每行N個元素和矩陣H每列N個元素逐個相乘得到的一個維度N×N的對角陣,其計算復(fù)雜度為O(N2L),而求逆運(yùn)算的計算復(fù)雜度為O(N3),當(dāng)樣本數(shù)量N較大時,輸出權(quán)重矩陣β的維數(shù)大大增加,使得訓(xùn)練廣義模型所需的隱藏節(jié)點(diǎn)數(shù)量驟增。同時隨著網(wǎng)絡(luò)規(guī)模變大,導(dǎo)致傳統(tǒng)ELM因計算復(fù)雜度和內(nèi)存需求增加而難以具有較好的性能。
為有效解決高維數(shù)據(jù)處理問題,本文受分層學(xué)習(xí)和分批訓(xùn)練思想的啟發(fā),提出BH-ELM算法,其訓(xùn)練模型如圖2所示,該算法訓(xùn)練體系結(jié)構(gòu)分為3個獨(dú)立的階段:
1)數(shù)據(jù)批次化;
2)無監(jiān)督分層特征編碼;
3)有監(jiān)督的特征分類。
對于第1階段,為緩解訓(xùn)練數(shù)據(jù)的維數(shù)災(zāi)難問題,在分層學(xué)習(xí)基礎(chǔ)上引入數(shù)據(jù)批處理思想,首先將高維數(shù)據(jù)X均分為M個批次,以降低輸入數(shù)據(jù)維度和數(shù)據(jù)的復(fù)雜程度;對于第2階段,為獲得更有效的稀疏特征,采用基于l1范數(shù)的ELM-AE數(shù)據(jù)挖掘方法,通過多層自動編碼器對數(shù)據(jù)進(jìn)行無監(jiān)督編碼;對于第3階段,為提高算法的泛化能力,利用含有繼承因子的流形分類器作為ELM決策層輸出。
本文優(yōu)化模型立足于網(wǎng)絡(luò)整體,通過分層學(xué)習(xí)將有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)結(jié)合起來共同挖掘高維數(shù)據(jù)分布的幾何結(jié)構(gòu),其獨(dú)特的數(shù)據(jù)批處理過程和雙隱藏層結(jié)構(gòu),在宏觀上實現(xiàn)內(nèi)存消耗和算法低復(fù)雜性的雙重優(yōu)化,達(dá)到提高模型穩(wěn)定性和分類準(zhǔn)確率的目的。
圖2 BH-ELM訓(xùn)練模型Fig.2 BH-ELM training model
由于一次性將輸入矩陣用來訓(xùn)練的運(yùn)算量要遠(yuǎn)遠(yuǎn)大于分批訓(xùn)練的運(yùn)算量,這對內(nèi)存和CPU處理能力是一個很大的考驗。因此,本文提出數(shù)據(jù)批處理過程,其訓(xùn)練過程如圖3所示。
圖3 數(shù)據(jù)批次化訓(xùn)練過程示意圖Fig.3 Schematic diagram of data batch training process
由圖3可知,當(dāng)前樣本數(shù)據(jù)的輸出權(quán)值βk+1的計算依賴于前一批樣本的輸出權(quán)值βk,而每一批樣本數(shù)據(jù)的隱藏層輸出矩陣H之間的更新則相互獨(dú)立。因此先對矩陣H進(jìn)行并行化處理,然后建立各批次之間的函數(shù)關(guān)系,再對β進(jìn)行串行更新,以增強(qiáng)樣本點(diǎn)之間的繼承關(guān)系,降低輸入數(shù)據(jù)規(guī)模。
雙層無監(jiān)督編碼的訓(xùn)練過程,目的是將編碼后重建的特征矩陣與前一層的特征矩陣并行連接,使特征在不同維度上疊加,從而實現(xiàn)深層特征提取。此外,為獲得有效的輸入特征,在優(yōu)化目標(biāo)中加入稀疏約束。與傳統(tǒng)ELM-AE不同,本文在優(yōu)化目標(biāo)函數(shù)中用l1范數(shù)懲罰代替l2范數(shù)懲罰,其中基于l1范數(shù)的自動編碼訓(xùn)練過程為:
(7)
為使BH-ELM具有較快的收斂速度,采用快速迭代收縮閾值算法(FISTA)[13]求解,其步驟如下:
Step1:取y1=β0∈Rn,t1=1,設(shè)定步長為0.5;
Step3:計算
通過步驟Step3的j次迭代,可以有效重構(gòu)樣本數(shù)據(jù)并映射到低維空間,以降低輸入數(shù)據(jù)的矩陣維度。
流形正則化是一種基于流形學(xué)習(xí)的約束,其作用是使數(shù)據(jù)在新的投影空間中能夠保持在原特征空間的非線性幾何結(jié)構(gòu),直觀的揭示出高維數(shù)據(jù)空間分布在低維流形子空間上的內(nèi)在規(guī)律,目前已經(jīng)大量應(yīng)用于圖像分類領(lǐng)域[14,15]。
(8)
在求解式(5)的廣義特征值問題時,為保證數(shù)據(jù)的完整性,本文引入了繼承因子,通過建立各批次的輸出權(quán)重關(guān)系,構(gòu)建了批次繼承學(xué)習(xí)范式,則優(yōu)化函數(shù)可由式(5)改寫為:
(9)
式中:w為第1批數(shù)據(jù)得到的初始輸出權(quán)重;u為繼承因子,用以調(diào)節(jié)各批次之間輸出權(quán)重的比例;i=1,2,…,N。
為進(jìn)一步提升訓(xùn)練速度和處理效率,在分類決策階段,將原始ELM分類器替換為含有繼承因子的流形分類器作為輸出,即在基于約束優(yōu)化的批次ELM函數(shù)范式中引入流形正則化框架,參考式(9)可以構(gòu)造凸可微的目標(biāo)函數(shù)為:
(10)
則求解輸出權(quán)重β轉(zhuǎn)化為求解最小值優(yōu)化問題,通過求導(dǎo)可得目標(biāo)函數(shù)中β的梯度為:
=β+HTC(T-Hβ)+u(β-w)+λHTLHβ
(11)
當(dāng)N≥L時,
β=(I+HTCH+uI+λHTLH)-1(HTCT+uw)
(12)
當(dāng)N β=(HTCT+uw)(I+CHHT+uI+λLHHT)-1 (13) 式中:I為單位矩陣。 由于N≥L,故本文使用式(12)作為輸出權(quán)重的更新表達(dá)式。 本文BH-ELM算法的訓(xùn)練步驟。 輸入:設(shè)N個訓(xùn)練樣本(xk,tk),k=1,…,N,其中xk為第k個樣本,tk為xk的目標(biāo)向量。 數(shù)據(jù)批次化 1)將數(shù)據(jù)集平均分割為M份,其中第i份樣本數(shù)據(jù)記為Xi; 2)隨機(jī)生成輸入權(quán)值ai和隱藏層偏置bi,其中i=1,2,3; 無監(jiān)督編碼部分 3)將第1批數(shù)據(jù)導(dǎo)入無監(jiān)督編碼部分,并在輸入數(shù)據(jù)中引入標(biāo)簽a,即Hi=[Xia]; 4)計算Ai=(Hi·bi)并調(diào)整范圍為[-1,1]; 5)計算各層輸出權(quán)值βi=AE(Ai,Hi); 6)計算各層近似映射Ti=(Hiβi); 7)調(diào)整Ti,縮放范圍至[0,1],返回步驟2); 輸出:完成雙層無監(jiān)督編碼訓(xùn)練,輸出為T; 監(jiān)督分類部分 輸入:無監(jiān)督編碼的輸出T是監(jiān)督分類部分的輸入; 8)在輸入數(shù)據(jù)中引入標(biāo)簽a,計算Hj=[Tja]; 9)計算Tj=g(Hj·wj); 11)返回步驟3),將其余M-1批數(shù)據(jù)導(dǎo)入無監(jiān)督編碼部分,執(zhí)行上述步驟4)到步驟10); 輸出:根據(jù)式(12)更新相鄰批次輸出權(quán)重,直到完成監(jiān)督分類。 為驗證本文BH-ELM算法的優(yōu)越性,采用NORB,MNIST和USPS測試數(shù)據(jù)集[9]進(jìn)行實驗。本次實驗均在一臺處理器配置參數(shù)為Intel Xeon Silver 4110@2.1 GHz,內(nèi)存為64 GB,軟件環(huán)境為64位Matlab R2018a的計算機(jī)上運(yùn)行完成。實驗數(shù)據(jù)集具體描述如表1所示。 表1 實驗數(shù)據(jù)集Tab.1 Experimental data set 為考察正則化最小均方參數(shù)C和隱藏層節(jié)點(diǎn)數(shù)L對BH-ELM分類準(zhǔn)確率的影響,以NORB數(shù)據(jù)集為例,選擇C的取值范圍為{10-5,10-4,…,104},L的取值范圍為{100,200,400,…,2000},得到超參數(shù)C和L對BH-ELM分類準(zhǔn)確率影響的變化曲線分別為圖4和圖5所示。 圖4 正則化參數(shù)C對準(zhǔn)確率的影響Fig.4 The effect of regularization parameter C on accuracy 圖5 節(jié)點(diǎn)數(shù)L對準(zhǔn)確率的影響Fig.5 The effect of the number of nodes L on accuracy 由圖4和圖5可知,其中參數(shù)C和L對BH-ELM性能的影響是不同的。在考察其中某一參數(shù)對分類準(zhǔn)確率的影響時,其它參數(shù)應(yīng)保持不變,如圖4,當(dāng)L=2 000時,隨著C的增加,BH-ELM的分類準(zhǔn)確率先增加后減少,當(dāng)C=10-1時,達(dá)到最大值。如圖5,當(dāng)C=10-1時,隨著L的增加,BH-ELM的分類準(zhǔn)確率隨之增加,這說明本文算法的最高分類準(zhǔn)確率由隱藏層節(jié)點(diǎn)數(shù)決定。當(dāng)隱藏層節(jié)點(diǎn)較少時,無法充分訓(xùn)練,達(dá)不到較高的分類準(zhǔn)確率。 對于傳統(tǒng)ELM,當(dāng)隱藏層節(jié)點(diǎn)數(shù)目較多時,在內(nèi)存方面會消耗更多的存儲空間,導(dǎo)致分類準(zhǔn)確率降低,而本文算法具有低內(nèi)存消耗的特性,能有效控制分類準(zhǔn)確率達(dá)到穩(wěn)定范圍內(nèi)較大的隱藏層節(jié)點(diǎn)數(shù),使模型分類效果達(dá)到最佳。因此,在4.3節(jié)實驗中選取準(zhǔn)確率達(dá)到穩(wěn)定范圍內(nèi)較大的隱藏層節(jié)點(diǎn)數(shù)。 為驗證本文算法的有效性和可靠性,選擇具有典型代表性的基于ELM的對比算法:ML-ELM、S-ELM和H-ELM,激活函數(shù)均采用sigmoid函數(shù)。以MNIST數(shù)據(jù)集為例,在同一實驗條件下,根據(jù)訓(xùn)練集樣本大小的變化,得到4種算法的分類準(zhǔn)確率曲線如圖6所示。 圖6 訓(xùn)練集大小與準(zhǔn)確率的關(guān)系Fig.6 The relationship between training set size and accuracy 由圖6可知,分類準(zhǔn)確率隨訓(xùn)練樣本占比的增加而增加,隨著訓(xùn)練數(shù)據(jù)的增多,本文BH-ELM算法和其它3種算法的分類準(zhǔn)確率都呈上升趨勢。同等數(shù)量的訓(xùn)練樣本下,相比于其它3種算法,本文算法的分類準(zhǔn)確率始終處于高識別率狀態(tài),這說明本文算法是可行并有效的。在訓(xùn)練樣本占比較低時,同樣能夠得到較高的準(zhǔn)確率,這說明本文算法具有良好的泛化性能。 為進(jìn)一步驗證隱藏層節(jié)點(diǎn)數(shù)L對BH-ELM算法性能的影響,比較本文算法與ML-ELM、S-ELM和H-ELM算法在3個測試數(shù)據(jù)集上的峰值內(nèi)存消耗量和分類準(zhǔn)確率,如圖7和圖8所示。 圖7 4種算法準(zhǔn)確率對比Fig.7 Accuracy comparison of four algorithms 圖8 4種算法平均峰值內(nèi)存消耗對比Fig.8 Comparison of memory consumption of four algorithms 其中平均峰值內(nèi)存消耗量是各算法獨(dú)立運(yùn)行30組試驗結(jié)果,標(biāo)準(zhǔn)差是各組統(tǒng)計的峰值內(nèi)存消耗量通過式(14)計算得到的。內(nèi)存消耗方差反映了算法穩(wěn)定程度,方差越小則說明算法的穩(wěn)定性越好。 (14) 式中:N為算法獨(dú)立運(yùn)行的次數(shù);xi為每次運(yùn)行的峰值內(nèi)存消耗值;μ為各組的內(nèi)存消耗均值。 由圖7可知,隨著節(jié)點(diǎn)數(shù)L的增加,4種算法的分類準(zhǔn)確率先增加,然后趨于穩(wěn)定。當(dāng)L達(dá)到10 000 時,本文BH-ELM算法在3種數(shù)據(jù)集上的分類效果均取得最優(yōu),在NORB,MNIST和USPS數(shù)據(jù)集上的分類準(zhǔn)確率分別可以達(dá)到92.16%、99.35%和98.86%。 由圖8可知,當(dāng)節(jié)點(diǎn)數(shù)L相同時,本文BH-ELM算法的平均峰值內(nèi)存消耗量在3種數(shù)據(jù)集上均取得最低,且內(nèi)存消耗方差值明顯小于ML-ELM、S-ELM和H-ELM。同時,由圖8(a),8(b)和圖8(c)可知,當(dāng)節(jié)點(diǎn)數(shù)L不同時,BH-ELM算法的平均峰值內(nèi)存消耗量和方差同樣低于其它3種ELM算法,這表明本文算法具有更好的穩(wěn)定性。 針對高維數(shù)據(jù)訓(xùn)練的在線內(nèi)存需求,提出了一種基于流形正則化的批量分層編碼極限學(xué)習(xí)機(jī)算法。該算法通過數(shù)據(jù)批處理引入繼承因子,建立了各批次之間的函數(shù)關(guān)系;通過在逐層無監(jiān)督訓(xùn)練中引入基于l1范數(shù)的稀疏編碼,構(gòu)建了多層ELM-AE網(wǎng)絡(luò);結(jié)合流形正則化框架,設(shè)計了含有繼承項的流形分類器。理論分析及仿真結(jié)果表明,本文算法分類準(zhǔn)確率高、穩(wěn)定性好、泛化性能強(qiáng)。在保證分類精度的情況下,有效降低了計算量和內(nèi)存消耗,為ELM克服維數(shù)災(zāi)難問題提供了參考。3.5 算法步驟
4 實驗結(jié)果與分析
4.1 超參數(shù)的影響
4.2 泛化性能分析
4.3 分類準(zhǔn)確率與內(nèi)存消耗對比
5 結(jié) 論