盧海峰,衛(wèi) 偉,陸慧娟
(中國計量大學(xué) 信息工程學(xué)院,杭州 310018)
黃廣斌等在2006年提出的超限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)在分類和回歸問題上具有泛化性能好、分類精度高、訓(xùn)練速度快等優(yōu)點(diǎn)[1].然而隨機(jī)初始化的特性正是其缺點(diǎn)所在[2],即輸入權(quán)值和閾值的隨機(jī)初始化導(dǎo)致了模型性能的不穩(wěn)定性.文獻(xiàn)[3]將受限玻爾茲曼機(jī)與ELM將結(jié)合,在對數(shù)據(jù)降維的同時,得到了ELM的輸入權(quán)值和閾值.文獻(xiàn)[4,5]分析了初始化不同的參數(shù)對ELM性能的影響:文獻(xiàn)[4]針對輸入權(quán)值的不同分布進(jìn)行了研究,文獻(xiàn)[5]針對輸入權(quán)值和閾值的方差進(jìn)行了研究.當(dāng)訓(xùn)練樣本參與到輸入權(quán)值的初始化過程時,ELM分類精度得到了明顯的提高[6,7],但它們都只是簡單地組合訓(xùn)練樣本,并沒有充分提取和表達(dá)訓(xùn)練樣本集的特征.文獻(xiàn)[8]將訓(xùn)練樣本先經(jīng)過自動編碼器(auto-encoder,AE),再將其輸出權(quán)值用于ELM輸入權(quán)值的初始化,并提出了基于AE逐層提取特征的方法.文獻(xiàn)[9]提出了類限制超限學(xué)習(xí)機(jī)(class-constrained extreme learning machine,C2ELM),算法將訓(xùn)練數(shù)據(jù)按類通過AE進(jìn)行訓(xùn)練,大大降低了計算過程中的使用內(nèi)存,在一定程度上也提高了分類精度.輸入權(quán)值的稀疏性可以進(jìn)一步提高模型的性能,文獻(xiàn)[10]將圖像的局部區(qū)域作為輸入權(quán)值的初始化,提出了局部感知的ELM.本文從文獻(xiàn)[9,10]得到靈感,首先結(jié)合權(quán)值的稀疏性和分類訓(xùn)練的方法提出了基于局部自動編碼器(local auto-encoders,LAE)的類限制超限學(xué)習(xí)機(jī)(receptive field class-constrained extreme learning machine,RF-C2ELM),然后比較ELM-AE(Extreme Learning Machine Auto Encoder)、C2ELM和RF-C2ELM在不同隱層結(jié)點(diǎn)數(shù)下的訓(xùn)練時間,接著將C2ELM和RF-C2ELM擴(kuò)展為多層神經(jīng)網(wǎng)絡(luò),并與ML-ELM(Multi Layer Extreme Learning Machine)作比較.
對于任意N個互不相同的訓(xùn)練樣本與對應(yīng)標(biāo)簽的集合,數(shù)據(jù)組織形式為(xi,ti),其中xi=[xi1,xi2,…,xin]T∈Rn是模型的輸入,ti=[ti1,ti2,…,tim]T∈Rm是整個模型的期望輸出,i=1,2,…,N.假設(shè)SLFNs(Single-hidden layer feedforward neural networks)具有K個隱層結(jié)點(diǎn),模型可以表示成:
(1)
其中oi=[oi1,oi2,…,oim]T∈Rm為模型的實(shí)際輸出,ωi=[ωi1,ωi2,…,ωiK]T∈RK為連接輸入層和隱層的權(quán)值向量,βi=[βi1,βi2,…,βim]T∈Rm為連接隱層和輸出層的權(quán)值向量,bi為第i個隱層結(jié)點(diǎn)的閾值,f(·)為隱層的激活函數(shù),通常選擇sigmoid函數(shù)作為激活函數(shù),ωi·xj表示ωi和xj的內(nèi)積.如果具有K個隱層結(jié)點(diǎn)的SLFNs能以零誤差逼近樣本,(1)式可以簡化成:
Hβ=T
(2)
其中
(3)
于是有:
(4)
(5)
(A+BCD)-1=A-1B(C-1+DA-1B-1)-1
(6)
得到:
(7)
(8)
其中I為單位矩陣,C為正則化因子.
AE最早由Rumelhart于1986年提出[13],其主要目的是對于一給定的數(shù)據(jù)集學(xué)習(xí)壓縮的或分布式的特征表達(dá)[14].AE是一種典型的單隱層前饋神經(jīng)網(wǎng)絡(luò),其期望輸出恰好等于輸入,即T=X.訓(xùn)練AE的方法主要有向后傳播算法(BP)和基于ELM的方法[8].前者通過逐步迭代來不斷修改網(wǎng)絡(luò)參數(shù),后者則是隨機(jī)初始化輸入權(quán)值和閾值,通過最小二乘法[15]計算得到輸出權(quán)值.后者具有精度高、訓(xùn)練時間短等優(yōu)點(diǎn),因此本文采用該方法表達(dá)輸入數(shù)據(jù)的特征.計算其輸出權(quán)值的表達(dá)式式(9)所示.
(9)
C2ELM與ELM-AE的不同之處是:C2ELM先將訓(xùn)練樣本按標(biāo)簽進(jìn)行劃分,再將每類訓(xùn)練數(shù)據(jù)通過AE,得到的輸出矩陣初始化為ELM輸入權(quán)值的某個分塊矩陣[9];ELM-AE則是將所有訓(xùn)練數(shù)據(jù)通過AE,得到的輸出矩陣初始化為ELM的整個輸入權(quán)值矩陣[8].
雖然C2ELM的分類精度只比ELM-AE高出一點(diǎn),但其訓(xùn)練時間遠(yuǎn)小于ELM-AE.原因在于對類別樣本數(shù)據(jù)進(jìn)行自動編碼時,大大降低了內(nèi)存的使用,從而加快了AE的過程.
ML-ELM將ELM-AE進(jìn)行堆疊,構(gòu)造了一個多層神經(jīng)網(wǎng)絡(luò)[8].ML-ELM的構(gòu)造過程如下:先將原始訓(xùn)練樣本通過AE,把輸出權(quán)值初始化為第一層的連接權(quán)值,然后把第二層神經(jīng)元的輸出信息通過AE,把計算得到的輸出權(quán)值初始化為第二層連接權(quán)值,以此類推,直到構(gòu)建完只剩最后一層連接權(quán)值為止,最后一層的連接權(quán)值可由式(8)得到.第j層神經(jīng)元的輸出可用式(10)表示:
Hj=g((βj)THj-1)
(10)
其中j≥1,訓(xùn)練樣本輸入X可看成是第0層輸出H0.此外,訓(xùn)練每層連接權(quán)值的AE的輸入權(quán)值和閾值是正交的,即滿足:
aTa=I,bTb=1
(11)
其中a=[a1,…,ak]為正交隨機(jī)輸入權(quán)值,b=[b1,…,bk]為正交隱層閾值.
在ELM中,稀疏的輸入權(quán)值可以有效提高模型的預(yù)測精度.在手寫數(shù)字分類中,文獻(xiàn)[10]采用隨機(jī)選取圖像矩形區(qū)域來初始化ELM的輸入權(quán)值,控制矩形區(qū)域內(nèi)的圖像信息保持不變,區(qū)域外的圖像信息全部置0.輸入權(quán)值ω1=[ω1,ω2,…,ωk]T的每一行ωi向量都是每個隱層結(jié)點(diǎn)選取圖像矩形塊后將區(qū)域外的信息置0再轉(zhuǎn)換成行向量的結(jié)果.但是,將原始的圖像信息初始化為輸入權(quán)值并不能很好地表達(dá)該類數(shù)據(jù)的特征.因此,本節(jié)介紹一種基于LAE的類限制超限學(xué)習(xí)機(jī).
圖1 RF-C2ELM結(jié)構(gòu)示意圖
(12)
RF-C2ELM結(jié)構(gòu)示意圖如圖1所示.
算法過程描述如下:
輸入:訓(xùn)練樣本{(xi,ti)|i=1,…,N},ELM隱層結(jié)點(diǎn)數(shù)K.
Step1. 標(biāo)準(zhǔn)化訓(xùn)練樣本,在-1到1之間按均勻分布隨機(jī)初始化隱層結(jié)點(diǎn)的閾值b,T=?.
Step2. 根據(jù)隱層結(jié)點(diǎn)數(shù)K為每類的每個AE隨機(jī)選擇矩形域集合T,按面積比例分配隱層結(jié)點(diǎn)數(shù).
Step3. 對于每個矩形域,從所有輸入樣本中獲得屬于該類的樣本xc,根據(jù)矩形域的范圍將域外的數(shù)據(jù)置0.
Step5. 利用公式(9)得到AE的輸出權(quán)值βELM-AE.
Step6. 利用公式(12)合并ELM的輸入權(quán)值WELM.
Step7. 利用公式(3)計算ELM的輸出矩陣H.
為了突出ELM-AE、C2ELM和RF-C2ELM三種算法在訓(xùn)練時間上的差異,這一小節(jié)比較三種算法在初始化ELM輸入權(quán)值上的時間復(fù)雜度.
為了驗(yàn)證所提出的RF-C2ELM是否較好地提取了訓(xùn)練樣本的特征,這一節(jié)將C2ELM與RF-C2ELM都擴(kuò)展為多層ELM,并連同ML-ELM作預(yù)測性能的比較.
為了使圖像分類精度更高,不同算法的實(shí)現(xiàn)在某些細(xì)節(jié)上存在著差異,比如AE輸入權(quán)值和閾值是否正交和ELM第一層輸出是否增加閾值.具體差異詳見表1.
表1 三種算法在實(shí)現(xiàn)上的差異
另外,C2ELM并不是完全按類訓(xùn)練數(shù)據(jù),而是附加了一個所有訓(xùn)練樣本參與計算的權(quán)值[9],而ML-C2ELM與ML-RF-C2ELM則是完全按類訓(xùn)練數(shù)據(jù),直接將每類訓(xùn)練樣本交給單個或多個AE訓(xùn)練,從而在最大內(nèi)存占用率和訓(xùn)練時間上獲得更多性能的提升.
實(shí)驗(yàn)執(zhí)行的環(huán)境是windows 7操作系統(tǒng)上的MATLAB R2010b,計算機(jī)內(nèi)核i5-6500@3.2GHz,內(nèi)存8G.
MNIST手寫數(shù)字集是測試ELM最常用的數(shù)據(jù)集.MNIST由60000個訓(xùn)練樣本和10000個測試樣本組成,每個樣本的輸入數(shù)據(jù)由784個像素組成,共10類.
圖2是單隱層ELM在MNIST測試集上的誤差率.從圖中不難看出,ELM-AE、C2ELM和RF-C2ELM的誤差率遠(yuǎn)小于隨機(jī)初始化參數(shù)的ELM,而且RF-C2ELM的誤差率明顯小于ELM-AE和C2ELM,說明該算法在淺層(即三層)神經(jīng)網(wǎng)絡(luò)下提取到了更好的特征.
圖2 網(wǎng)絡(luò)結(jié)構(gòu)為“784-?-10”的測試集誤差
圖3 單隱層輸入權(quán)值的訓(xùn)練時間隨隱層結(jié)點(diǎn)數(shù)的變化
為了驗(yàn)證優(yōu)化的第一層連接權(quán)值是否能有效逐層傳遞特征,下文將重點(diǎn)放在多層ELM上.接下來的實(shí)驗(yàn)以4層神經(jīng)網(wǎng)絡(luò)為例,即雙隱層前饋神經(jīng)網(wǎng)絡(luò),其中輸入層結(jié)點(diǎn)數(shù)為784,第二層結(jié)點(diǎn)數(shù)固定為700,第三層結(jié)點(diǎn)數(shù)可調(diào),輸出層結(jié)點(diǎn)數(shù)為10.網(wǎng)絡(luò)結(jié)構(gòu)可表示為784-700-?-10,“?”表示該層結(jié)點(diǎn)數(shù)可調(diào).圖3記錄了訓(xùn)練輸入權(quán)值的時間隨隱層結(jié)點(diǎn)數(shù)的變化.我們可以得到以下結(jié)論:RF-C2ELM初始化ELM輸入權(quán)值的時間基數(shù)較大,但隨隱層結(jié)點(diǎn)增長的速度較慢.當(dāng)隱層結(jié)點(diǎn)數(shù)較少時,RF-C2ELM的訓(xùn)練時間較長,但當(dāng)隱層結(jié)點(diǎn)數(shù)大約超過7000時,RF-C2ELM則是三種算法中效率最高的.由于單臺計算機(jī)內(nèi)存有限,為了使可調(diào)的結(jié)點(diǎn)數(shù)達(dá)到更高的上限,在多層ELM上采用在線序列學(xué)習(xí)[17]的方式,將數(shù)據(jù)分批訓(xùn)練,可調(diào)結(jié)點(diǎn)數(shù)最高可達(dá)6000.MNIST測試集與訓(xùn)練集在784-700-?-10結(jié)構(gòu)下的誤差率分別如圖4和圖5所示.
圖4 網(wǎng)絡(luò)結(jié)構(gòu)為“784-700-?-10”下的測試誤差率
圖5 網(wǎng)絡(luò)結(jié)構(gòu)為“784-700-?-10”下的訓(xùn)練誤差率
表2列出了三種算法在網(wǎng)絡(luò)結(jié)構(gòu)為“784-700-6000-10”下的測試集誤差率,表中Ri表示初始化第i層連接權(quán)值的AE的正則化因子,其中i∈{1,2},R3表示計算ELM輸出權(quán)值的正則化因子.從圖表可以看出ML-RF-C2ELM的預(yù)測精度最高,說明該算法能有效提取特征并進(jìn)行特征逐層傳遞.
表2 網(wǎng)絡(luò)結(jié)構(gòu)為“784-700-6000-10”下的測試誤差率
本文提出了一種基于LAE的類限制ELM,將其同C2ELM一起擴(kuò)展到多層神經(jīng)網(wǎng)絡(luò),目的是為了驗(yàn)證該方法的特征提取能力和逐層傳遞能力.實(shí)驗(yàn)結(jié)果表明,ML-RF-C2ELM在圖像分類問題上能保持較高的預(yù)測精度.