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