本發(fā)明涉及人工智能領(lǐng)域,具體涉及一種關(guān)于限制性玻爾茲曼機(jī)(RBM)的改進(jìn)方法。
背景技術(shù):
:機(jī)器學(xué)習(xí)(MachineLearning)是一門(mén)專門(mén)研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能的學(xué)科。良好的特征表達(dá),對(duì)最終算法的準(zhǔn)確性起了非常關(guān)鍵的作用,而且系統(tǒng)主要的計(jì)算和測(cè)試工作都耗在這一大部分。但是,這塊實(shí)際中一般都是人工完成的,靠人工提取特征,直到2006年深度學(xué)習(xí)(DeepLearning)的出現(xiàn)。深度學(xué)習(xí)在工業(yè)界和學(xué)術(shù)界都十分流行,深度學(xué)習(xí)備受關(guān)注,因?yàn)樗麄兛梢宰詣?dòng)的學(xué)習(xí)更加高級(jí)抽象的表示。此外,深度神經(jīng)網(wǎng)絡(luò)(DNNs)已成功應(yīng)用在多個(gè)領(lǐng)域,如語(yǔ)音識(shí)別,協(xié)同過(guò)濾,自然語(yǔ)言處理,圖像識(shí)別,等等。對(duì)此淺層的模型,深層神經(jīng)網(wǎng)絡(luò)的建模能力是非常明顯的改善。然而,直到一個(gè)貪婪的逐層預(yù)訓(xùn)練算法的提出,才有有效的訓(xùn)練算法來(lái)訓(xùn)練深層網(wǎng)絡(luò)。預(yù)訓(xùn)練算法與RBM密切相關(guān)。通常,深層結(jié)構(gòu)通過(guò)堆疊多個(gè)基本單元建構(gòu)起來(lái)的。Hinton把多個(gè)RBM在一起形成一個(gè)深層結(jié)構(gòu)稱為深信念網(wǎng)絡(luò)(DBN)或深層玻爾茲曼機(jī)(DBM)。堆疊多個(gè)自動(dòng)編碼器在一起可以形成一個(gè)深堆疊自動(dòng)編碼器,因此需要獲得一個(gè)高效的RBM訓(xùn)練算法。限制性玻爾茲曼機(jī)是由Hinton和Sejnowski于1986年提出的一種生成式隨機(jī)神經(jīng)網(wǎng)絡(luò)(generativestochasticneuralnetwork),該網(wǎng)絡(luò)由一些可見(jiàn)單元(visibleunit,對(duì)應(yīng)可見(jiàn)變量,亦即數(shù)據(jù)樣本)和一些隱藏單元(hiddenunit,對(duì)應(yīng)隱藏變量)構(gòu)成,可見(jiàn)變量和隱藏變量都是二元變量,亦即其狀態(tài)取{0,1}。只有可見(jiàn)單元和隱藏單元之間才會(huì)存在邊,可見(jiàn)單元之間以及隱藏單元之間都不會(huì)有邊連接。通常隱藏單元的狀態(tài)作為RBM學(xué)習(xí)到的特征,由此,RBM也可看成一個(gè)單獨(dú)的特征提取器。技術(shù)實(shí)現(xiàn)要素:本發(fā)明使用了一種新的目標(biāo)函數(shù)來(lái)訓(xùn)練限制性玻爾茲曼機(jī)(RBM),通過(guò)限制能量函數(shù)的取值來(lái)使得能量平面更加平坦,從而使得從模型采樣更加容易,得到一個(gè)更為優(yōu)異的RBM,該RBM的有異性不但表現(xiàn)在可以提取更為優(yōu)異的特征,而且其可以搜索到更佳的參數(shù)空間去初始化深信念網(wǎng)絡(luò)。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用如下技術(shù)方案:一種關(guān)于限制性玻爾茲曼機(jī)的改進(jìn)方法,使用新的目標(biāo)函數(shù)訓(xùn)練RBM,通過(guò)加入二次懲罰項(xiàng)去懲罰過(guò)低的訓(xùn)練樣本的自由能量值,所述新的目標(biāo)函數(shù)為:其中l(wèi)ogp(v|θ)為改進(jìn)之前的目標(biāo)函數(shù)(log似然),F(xiàn)(v;θ)為自由能量函數(shù),λ為懲罰系數(shù)。所述新的目標(biāo)函數(shù)對(duì)模型參數(shù)的梯度如下:參數(shù)的更新規(guī)則如下:其中η為學(xué)習(xí)率,λ為懲罰系數(shù),通常λ∈[0.1,0.00001],e為對(duì)于(v,h)計(jì)算出的能量函數(shù)值。一種關(guān)于限制性玻爾茲曼機(jī)的改進(jìn)方法,包括以下步驟:步驟1:給定一訓(xùn)練樣本v0,設(shè)置學(xué)習(xí)率η,訓(xùn)練迭代次數(shù),懲罰系數(shù)λ。步驟2:初始化可視層的偏置向量b和隱藏層的偏置向量c為0。初始化權(quán)重矩陣W為小的隨機(jī)數(shù)。步驟3:計(jì)算隱藏層單元的激活狀態(tài)。h0=sigm(c+v0W),其中步驟4:從模型采樣。計(jì)算可視層單元的激活狀態(tài),v1=sigm(b+Wh0)計(jì)算隱藏層單元的激活狀態(tài),h1=sigm(c+v1W)步驟5:計(jì)算能量值。e=-bTv0-cTh0-v0Twh。步驟6:更新參數(shù):Wij=Wij+η((1+λe)v0ih0j-v1jh1j)bi=bi+η((1+λe)v0i-v1i)cj=cj+η((1+λe)h0j-h1j)一種關(guān)于限制性玻爾茲曼機(jī)的改進(jìn)方法,λ要比η小一個(gè)數(shù)量級(jí)到兩個(gè)數(shù)量級(jí)。一種關(guān)于限制性玻爾茲曼機(jī)的改進(jìn)方法,所述步驟4中從模型采樣的方法為CD算法、PCD算法。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為:1.將RBM作為特征提取器時(shí),新的目標(biāo)函數(shù)可以學(xué)習(xí)到更優(yōu)異的特征。從某種程度上可以當(dāng)做一種正則化的方法,可以避免過(guò)擬合。而且平均的隱藏單元的激活個(gè)數(shù)也是遠(yuǎn)遠(yuǎn)少于之前。實(shí)驗(yàn)中,懲罰項(xiàng)的表現(xiàn)也優(yōu)于權(quán)重衰減。2.RBM有多種訓(xùn)練算法,新的目標(biāo)函數(shù)可以與多種算法相兼容,只需要少量的代碼修改。從而得到更為優(yōu)異的模型。3.將RBM用于預(yù)訓(xùn)練深層架構(gòu)時(shí),比如深度神經(jīng)網(wǎng)絡(luò)(DNN),深度堆疊自編碼器(DSAE),其可以搜索到更佳的參數(shù)空間。如此可以提高整個(gè)深層架構(gòu)的性能。附圖說(shuō)明圖1為本發(fā)明中使用CD算法訓(xùn)練RBM,目標(biāo)函數(shù)懲罰系數(shù)不同時(shí),在迭代次數(shù)與分類準(zhǔn)確率上的變化趨勢(shì)圖,學(xué)習(xí)率為0.01。圖2為本發(fā)明中使用CD算法訓(xùn)練RBM,目標(biāo)函數(shù)懲罰系數(shù)不同時(shí),在迭代次數(shù)與分類準(zhǔn)確率上的變化趨勢(shì)圖,學(xué)習(xí)率為0.001。圖3為本發(fā)明中使用PCD算法訓(xùn)練RBM,目標(biāo)函數(shù)懲罰系數(shù)不同時(shí),分類準(zhǔn)確率上的變化趨勢(shì)圖。具體實(shí)施方式結(jié)合具體實(shí)施方式和說(shuō)明書(shū)附圖對(duì)本發(fā)明做進(jìn)一步說(shuō)明。實(shí)施例1使用新的目標(biāo)函數(shù)訓(xùn)練RBM,通過(guò)加入二次懲罰項(xiàng)去懲罰過(guò)低的訓(xùn)練樣本的自由能量值,所述新的目標(biāo)函數(shù)為:其中l(wèi)ogp(v|θ)為改進(jìn)之前的目標(biāo)函數(shù)(log似然),F(xiàn)(v;θ)為自由能量函數(shù),λ為懲罰系數(shù)。所述新的目標(biāo)函數(shù)對(duì)模型參數(shù)的梯度如下:參數(shù)的更新規(guī)則如下:其中η為學(xué)習(xí)率,λ為懲罰系數(shù),通常λ∈[0.1,0.00001],e為對(duì)于(v,h)計(jì)算出的能量函數(shù)值。具體訓(xùn)練過(guò)程包括以下步驟:步驟1:預(yù)處理MNIST數(shù)據(jù),50000張圖片作為訓(xùn)練集,10000張圖片作為測(cè)試集。由于每張圖片的像素值在0到255之間,將像素值除255,使得每個(gè)像素值在0,1之間,以此作為RBM的輸入。因?yàn)镸NIST中的圖片是28*28像素的,所以初始化一個(gè)具有784個(gè)可視單元,500個(gè)隱藏單元的RBM。給定一訓(xùn)練樣本V0,設(shè)置學(xué)習(xí)率η,訓(xùn)練迭代次數(shù),懲罰系數(shù)λ。步驟2:初始化可視層的偏置向量b和隱藏層的偏置向量c為0。初始化權(quán)重矩陣W為小的隨機(jī)數(shù)。步驟3:計(jì)算隱藏層單元的激活狀態(tài)。h0=sigm(c+v0W),其中步驟4:使用CD算法從模型采樣。計(jì)算可視層單元的激活狀態(tài),v1=sigm(b+Wh0)計(jì)算隱藏層單元的激活狀態(tài),h1=sigm(c+v1W)步驟5:計(jì)算能量值。e=-bTv0-cTh0-v0Twh。步驟6:更新參數(shù):Wij=Wij+η((1+λe)v0ih0j-v1jh1j)bi=bi+η((1+λe)v0i-v1i)cj=cj+η((1+λe)h0j-h1j)步驟7:訓(xùn)練結(jié)束后,將訓(xùn)練集和測(cè)試集樣本所對(duì)應(yīng)的隱藏層單元的激活概率作為提取到的特征,將提取到的特征使用softmaxregression進(jìn)行分類,得到分類準(zhǔn)確率,結(jié)果如圖1-2所示。實(shí)施例2使用新的目標(biāo)函數(shù)訓(xùn)練RBM,通過(guò)加入二次懲罰項(xiàng)去懲罰過(guò)低的訓(xùn)練樣本的自由能量值,所述新的目標(biāo)函數(shù)為:其中l(wèi)ogp(v|θ)為改進(jìn)之前的目標(biāo)函數(shù)(log似然),F(xiàn)(v;θ)為自由能量函數(shù),λ為懲罰系數(shù)。所述新的目標(biāo)函數(shù)對(duì)模型參數(shù)的梯度如下:參數(shù)的更新規(guī)則如下:其中η為學(xué)習(xí)率,λ為懲罰系數(shù),通常λ∈[0.1,0.00001],e為對(duì)于(v,h)計(jì)算出的能量函數(shù)值。具體方法包括以下步驟:步驟1:預(yù)處理MNIST數(shù)據(jù),50000張圖片作為訓(xùn)練集,10000張圖片作為測(cè)試集。由于每張圖片的像素值在0到255之間,將像素值除255,使得每個(gè)像素值在0,1之間,以此作為RBM的輸入。因?yàn)镸NIST中的圖片是28*28像素的,所以初始化一個(gè)具有784個(gè)可視單元,500個(gè)隱藏單元的RBM。給定一訓(xùn)練樣本v0,設(shè)置學(xué)習(xí)率η,訓(xùn)練迭代次數(shù),懲罰系數(shù)λ。步驟2:初始化可視層的偏置向量b和隱藏層的偏置向量c為0。初始化權(quán)重矩陣W為小的隨機(jī)數(shù)。初始化持續(xù)馬爾科夫鏈的初始狀態(tài)步驟3:計(jì)算隱藏層單元的激活狀態(tài)。h0=sigm(c+v0W),其中步驟4:使用PCD算法從模型采樣。計(jì)算隱藏層單元的激活狀態(tài),步驟5:計(jì)算能量值。e=-bTv0-cTh0-v0Twh。步驟6:更新參數(shù):cj=cj+η((1+λe)h0j-h1j)步驟7:更新持續(xù)馬爾科夫鏈的狀態(tài)步驟8:訓(xùn)練結(jié)束后,將訓(xùn)練集和測(cè)試集樣本所對(duì)應(yīng)的隱藏層單元的激活概率作為提取到的特征,將提取到的特征使用softmaxregression進(jìn)行分類,得到分類準(zhǔn)確率,結(jié)果如圖3所示。實(shí)施例3使用新的目標(biāo)函數(shù)訓(xùn)練RBM,通過(guò)加入二次懲罰項(xiàng)去懲罰過(guò)低的訓(xùn)練樣本的自由能量值,所述新的目標(biāo)函數(shù)為:其中l(wèi)ogp(v|θ)為改進(jìn)之前的目標(biāo)函數(shù)(log似然),F(xiàn)(v;θ)為自由能量函數(shù),λ為懲罰系數(shù)。所述新的目標(biāo)函數(shù)對(duì)模型參數(shù)的梯度如下:參數(shù)的更新規(guī)則如下:其中η為學(xué)習(xí)率,λ為懲罰系數(shù),通常λ∈[0.1,0.00001],e為對(duì)于(v,h)計(jì)算出的能量函數(shù)值。具體方法包括以下步驟:步驟1:預(yù)處理MNIST數(shù)據(jù),使得每個(gè)像素值在0,1之間。步驟2:初始化一個(gè)有784個(gè)輸入單元,三個(gè)隱藏層分別有500,500,2000個(gè)單元,輸出層有10個(gè)單元的DBN。步驟3:設(shè)置超參數(shù)。步驟4:使用新的目標(biāo)函數(shù)改進(jìn)之后RBM預(yù)訓(xùn)練DBN,即將DBN的輸入層和第一隱藏層作為一個(gè)RBM進(jìn)行訓(xùn)練,將RBM的輸出(隱藏層單元的狀態(tài))作為下一個(gè)RBM的輸入,此RBM用于第一隱藏層和第二隱藏層之間,如此反復(fù)使用RBM預(yù)訓(xùn)練DBN中相鄰的兩層。步驟5:使用交叉熵目標(biāo)函數(shù)微調(diào)整個(gè)網(wǎng)絡(luò)。步驟6:網(wǎng)絡(luò)訓(xùn)練結(jié)束,使用測(cè)試集得到誤分類個(gè)數(shù),結(jié)果如表1中所示,從表1可以看出,使用新的目標(biāo)函數(shù)訓(xùn)練RBM來(lái)初始化深層網(wǎng)絡(luò),深層網(wǎng)絡(luò)在測(cè)試集上的誤分類個(gè)數(shù)降低。為了評(píng)估新的目標(biāo)函數(shù),一方面使用RBM學(xué)習(xí)到的特征作為分類器的輸入,將分類準(zhǔn)確率作為評(píng)價(jià)指標(biāo),另一方面,使用RBM去預(yù)訓(xùn)練DBN。結(jié)果顯示,在這兩方面,經(jīng)改進(jìn)的目標(biāo)函數(shù)訓(xùn)練的RBM表現(xiàn)均優(yōu)于未改進(jìn)之前。表1使用新舊目標(biāo)函數(shù)訓(xùn)練RBM來(lái)初始化深層網(wǎng)絡(luò),深層網(wǎng)絡(luò)在測(cè)試集上的誤分類個(gè)數(shù)noweightdecay,nomomentum,oldlossfunction131noweightdecay,nomomentum,proposedlossfunction(λ=0.01)116noweightdecay,nomomentum,proposedlossfunction(λ=0.001)122以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬
技術(shù)領(lǐng)域:
的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。當(dāng)前第1頁(yè)1 2 3