聞一波 雷菊陽(yáng)
(上海工程技術(shù)大學(xué)機(jī)械與汽車工程學(xué)院 松江 201620)
受限玻爾茲曼機(jī)[1](RBM)是一種生成式隨機(jī)神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)具有兩層結(jié)構(gòu):可見(jiàn)層和隱藏層,采用層內(nèi)無(wú)連接、層間全連接的方式。因其簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu)和對(duì)比散度算法[2]的出現(xiàn),RBM在分類、特征學(xué)習(xí)、降維等方面[3~5]得到了廣泛應(yīng)用。但是目前卻很少有關(guān)于RBM網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)的研究,也沒(méi)有通用的規(guī)則[6]去制定其結(jié)構(gòu)。文獻(xiàn)[7]中提出遺傳算法優(yōu)化設(shè)計(jì)RBM網(wǎng)絡(luò)結(jié)構(gòu)的方法,該方法使用效果顯著,受此啟發(fā)探索其他方法去設(shè)計(jì)RBM網(wǎng)絡(luò)結(jié)構(gòu)。
粒子群算法是一種基于群體的智能優(yōu)化算法[8],該算法具有群體智能、內(nèi)在并行性、結(jié)構(gòu)簡(jiǎn)單、收斂快速[9]等優(yōu)點(diǎn)。粒子群算法作為一種進(jìn)化算法,在處理非線性問(wèn)題尋優(yōu)方面有較好的魯棒性和收斂性。
在制定RBM網(wǎng)絡(luò)結(jié)構(gòu)時(shí),由于結(jié)構(gòu)只有兩層,所以可見(jiàn)層與隱藏層決定模型的復(fù)雜度。如果可見(jiàn)層的特征太多造成寧濫毋缺的局面,便會(huì)大大增加模型復(fù)雜度,倘若過(guò)分減少特征反而會(huì)導(dǎo)致輸入樣本包含信息過(guò)少,也不利于模型對(duì)于數(shù)據(jù)的學(xué)習(xí)。隱藏層的作用可以看作是對(duì)可見(jiàn)層特征的學(xué)習(xí)[10]和提取,隱藏層數(shù)目設(shè)置過(guò)大,模型計(jì)算過(guò)于復(fù)雜,太小又無(wú)法學(xué)習(xí)到可見(jiàn)層不同樣本的差異,導(dǎo)致最后分類預(yù)測(cè)效果很差。
綜合以上,PSO-RBM主要解決兩個(gè)問(wèn)題:一是利用粒子群算法給RBM篩選樣本的特征,二是利用粒子群算法對(duì)隱藏層數(shù)目進(jìn)行優(yōu)化選擇。
粒子群算法作為RBM網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化設(shè)計(jì),首先在搜索空間中初始化種群和速度,然后根據(jù)適應(yīng)度函數(shù)計(jì)算出種群中不同個(gè)體的適應(yīng)度值,接著利用速度和位置公式[11]進(jìn)行更新調(diào)整。經(jīng)過(guò)多次迭代后為RBM模型挑選出最優(yōu)的個(gè)體,進(jìn)而確定可見(jiàn)層特征維數(shù)以及隱藏層數(shù)目,將這些參數(shù)再應(yīng)用到RBM中進(jìn)行訓(xùn)練便得到結(jié)構(gòu)簡(jiǎn)單的RBM模型。在整個(gè)算法設(shè)計(jì)過(guò)程中,根據(jù)已知的粒子群算法模型進(jìn)行設(shè)計(jì)算法需要解決兩個(gè)問(wèn)題:個(gè)體變量和適應(yīng)度函數(shù)設(shè)計(jì)。
個(gè)體由兩部分組成,分別為可見(jiàn)層特征維數(shù)和隱藏層數(shù)目??梢?jiàn)層中每一個(gè)神經(jīng)元代表一個(gè)特征,特征維數(shù)過(guò)多導(dǎo)致模型計(jì)算復(fù)雜,維數(shù)過(guò)少則無(wú)法保證可見(jiàn)層本應(yīng)包含的信息量,因此需要對(duì)可見(jiàn)層特征進(jìn)行篩選。本文采用標(biāo)稱型數(shù)據(jù),假定1代表選用該特征,0代表舍棄該特征。而粒子群算法通常適用于連續(xù)性變量問(wèn)題,所以在個(gè)體變量設(shè)計(jì)時(shí)需要做出調(diào)整,方法如下:
假設(shè)可見(jiàn)層特征維數(shù)為N,生成N維的隨機(jī)向量Xi=[xi1,xi2,…,xik,…,xiN](k<N),其中xik服從[-1,1]的均勻分布,該向量代表可見(jiàn)層特征是否選用的實(shí)數(shù)表達(dá)形式,那么在算法迭代更新過(guò)程中便可始終保持連續(xù)性。而在RBM模型中求解適應(yīng)度值時(shí)將該向量轉(zhuǎn)變?yōu)闃?biāo)稱型變量,方式如下:
式(1)中1和0分別代表選用和舍棄,yik代表第i個(gè)個(gè)體中可見(jiàn)單元轉(zhuǎn)變后對(duì)第k個(gè)特征的取舍。對(duì)于隱藏層數(shù)目,因?yàn)榭梢?jiàn)層與隱藏層之間是無(wú)向連接并且隱藏層神經(jīng)元之間的狀態(tài)相互是條件獨(dú)立[12]的,所以只需要隨機(jī)生成一個(gè)實(shí)數(shù)迭代訓(xùn)練且在RBM中取整即可。
綜上,一個(gè)個(gè)體可以表示為pop(i)=[xi1,xi2,…,xiN,bi],其中pop(i)代表第i個(gè)個(gè)體,bi代表第i個(gè)個(gè)體中隱藏層數(shù)目實(shí)數(shù)表示。
RBM模型將個(gè)體轉(zhuǎn)變后獲取參數(shù)進(jìn)行訓(xùn)練,然而評(píng)價(jià)RBM模型優(yōu)劣需要一個(gè)衡量指標(biāo)。本文采用重構(gòu)誤差[13]的方法,即輸入數(shù)據(jù)與重構(gòu)輸入數(shù)據(jù)之間的差值。重構(gòu)誤差公式如下(采用二階范數(shù)):
式中S和N分別代表訓(xùn)練樣本個(gè)數(shù)和可見(jiàn)層特征維數(shù),uj代表訓(xùn)練樣本集中在第j維特征數(shù)據(jù)向量,代表輸入樣本重構(gòu)后可見(jiàn)層第j維特征數(shù)據(jù)向量。所以適應(yīng)度函數(shù)根據(jù)式(2)進(jìn)行了定義,如下:
其中S和N的含義與式(2)一致,uinitial j代表在N維特征維數(shù)的原始數(shù)據(jù)中被選中的第j維的向量。代表被選中的第j維特征數(shù)據(jù)向量經(jīng)過(guò)輸入重構(gòu)后的向量。式(3)表示一個(gè)個(gè)體在經(jīng)過(guò)PSO-RBM模型訓(xùn)練后的重構(gòu)誤差與訓(xùn)練數(shù)據(jù)樣本總數(shù)之商,很容易得到結(jié)論,適應(yīng)度值E(k)越小,則該個(gè)體轉(zhuǎn)變后的模型參數(shù)在RBM模型使用中效果越好。
實(shí)驗(yàn)使用Matlab軟件編程分析,將PSO-RBM應(yīng)用到MNIST手寫體數(shù)據(jù)集上優(yōu)化RBM網(wǎng)絡(luò)結(jié)構(gòu),然后與傳統(tǒng)的RBM網(wǎng)絡(luò)結(jié)構(gòu)在正確率和訓(xùn)練時(shí)間比較,測(cè)試經(jīng)過(guò)粒子群算法優(yōu)化過(guò)的結(jié)構(gòu)是否優(yōu)于傳統(tǒng)結(jié)構(gòu)。MNIST數(shù)據(jù)集包含70000個(gè)樣本,其中60000個(gè)樣本作為訓(xùn)練數(shù)據(jù),10000個(gè)作為測(cè)試數(shù)據(jù)。每一個(gè)樣本代表一個(gè)手寫數(shù)字,維度為28×28,展開(kāi)為行向量為1×784,所以可見(jiàn)層特征維數(shù)N為784。最后加上一個(gè)隱藏層數(shù)目參數(shù),那么最終在粒子群算法中每個(gè)個(gè)體的維數(shù)等于785。
粒子群優(yōu)化算法中,參數(shù)設(shè)置如下:學(xué)習(xí)因子c1=c2=1.494,因?yàn)閭€(gè)體由兩部分構(gòu)成,所以它們的速度和位置搜索空間都不同。可見(jiàn)層特征維數(shù):速度Vmax=0.2,Vmin=-0.2位置Fpopmax=1,F(xiàn)popmin=-1。隱藏層數(shù)目:速度Lmax=5,Lmin=-5位置Lpopmax=150,Lpopmin=-80。種群數(shù)目設(shè)為5,迭代50次停止。為了提高算法求解效率,在求適應(yīng)度值時(shí)RBM模型訓(xùn)練次數(shù)設(shè)為1。由于粒子群算法不是全局收斂容易陷入局部極小值[14],因此實(shí)驗(yàn)一共實(shí)施5次,選取其中一次結(jié)果作為示例。
圖1表示示例迭代次數(shù)與各代中的最佳適應(yīng)度值的變化關(guān)系,從圖中看出隨著迭代次數(shù)的增加,PSO-RBM較為快速的收斂到最優(yōu)處。將最優(yōu)個(gè)體轉(zhuǎn)變后得到可見(jiàn)層特征維數(shù)由784下降到314,隱藏層數(shù)目為149。
圖1 最佳適應(yīng)度收斂曲線
圖2展示了十張從原始數(shù)字到降維后的數(shù)字圖片,圖中上部五張為原始數(shù)據(jù)集中的數(shù)字圖片,下部五張為經(jīng)過(guò)降維后的圖片。能夠看出個(gè)體中可見(jiàn)層特征維數(shù)對(duì)原始數(shù)據(jù)維數(shù)進(jìn)行了篩選,雖然降維后的圖片沒(méi)有原來(lái)的圖片清晰,不過(guò)也充分保留了數(shù)字的基本特征。
圖2 原始數(shù)字及降維后的數(shù)字
由于RBM是無(wú)監(jiān)督學(xué)習(xí)[15],當(dāng)前只是優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)并沒(méi)有實(shí)際運(yùn)用到測(cè)試數(shù)據(jù)中測(cè)試其網(wǎng)絡(luò)性能,因此要實(shí)現(xiàn)對(duì)MNIST手寫體數(shù)據(jù)集的分類預(yù)測(cè)還要在原有RBM上增加一個(gè)分類器。本文采用神經(jīng)網(wǎng)絡(luò)[16]作為分類器,選用三種RBM網(wǎng)絡(luò)結(jié)構(gòu)比較分析,結(jié)構(gòu)如下:
1)RBM,原始數(shù)據(jù)特征維數(shù)和較少的隱單元數(shù)目即784-100。
2)RBM,原始數(shù)據(jù)特征維數(shù)和較多的隱單元數(shù)目即784-400。
3)PSO-RBM,經(jīng)過(guò)粒子群算法優(yōu)化后的RBM即314-149。
從表中看出PSO-RBM的錯(cuò)誤率低于結(jié)構(gòu)1)高于結(jié)構(gòu)2),不過(guò)訓(xùn)練時(shí)間卻是最短的。結(jié)構(gòu)2)雖然錯(cuò)誤率最低但是它的訓(xùn)練時(shí)間太長(zhǎng)甚至達(dá)到PSO-RBM的15倍左右,時(shí)間成本太高。綜上可以得到結(jié)論:
1)個(gè)體中可見(jiàn)層特征維數(shù)轉(zhuǎn)變后對(duì)原始數(shù)據(jù)的特征進(jìn)行了篩選,舍棄了原始數(shù)據(jù)中共同的特征,降低了數(shù)據(jù)特征維數(shù)。
2)粒子群算法優(yōu)化RBM后的網(wǎng)絡(luò)結(jié)構(gòu)從錯(cuò)誤率和訓(xùn)練時(shí)間上綜合分析,在一定程度上提升了RBM模型性能。
表1 三種RBM結(jié)構(gòu)試驗(yàn)結(jié)果
本文研究了受限玻爾茲曼機(jī)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)方法,結(jié)合粒子群算法完成可見(jiàn)層特征和隱藏層數(shù)目的優(yōu)化選擇。通過(guò)在MNIST數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,采用PSO-RBM優(yōu)化后得到的RBM網(wǎng)絡(luò)結(jié)構(gòu)在錯(cuò)誤率和訓(xùn)練時(shí)間上與傳統(tǒng)結(jié)構(gòu)相比較,在綜合性能上有一定的優(yōu)勢(shì)。本文作為粒子群算法優(yōu)化RBM網(wǎng)絡(luò)結(jié)構(gòu)的開(kāi)端,考慮到粒子群算法仍存在缺點(diǎn),因此PSO-RBM還具備提高的潛力。在今后的工作中將不斷改進(jìn)PSO,提高PSO-RBM的優(yōu)化能力,使得RBM網(wǎng)絡(luò)結(jié)構(gòu)朝著簡(jiǎn)單、高效的方向發(fā)展。