Deep Learning(深度学习)学习笔记整理系列之(六)
接上
?
注:下面的兩個(gè)Deep Learning方法說(shuō)明需要完善,但為了保證文章的連續(xù)性和完整性,先貼一些上來(lái),后面再修改好了。
9.3、Restricted Boltzmann Machine (RBM)限制波爾茲曼機(jī)
? ? ? ?假設(shè)有一個(gè)二部圖,每一層的節(jié)點(diǎn)之間沒(méi)有鏈接,一層是可視層,即輸入數(shù)據(jù)層(v),一層是隱藏層(h),如果假設(shè)所有的節(jié)點(diǎn)都是隨機(jī)二值變量節(jié)點(diǎn)(只能取0或者1值),同時(shí)假設(shè)全概率分布p(v,h)滿足Boltzmann 分布,我們稱這個(gè)模型是Restricted BoltzmannMachine (RBM)。
? ? ? ?下面我們來(lái)看看為什么它是Deep Learning方法。首先,這個(gè)模型因?yàn)槭嵌繄D,所以在已知v的情況下,所有的隱藏節(jié)點(diǎn)之間是條件獨(dú)立的(因?yàn)楣?jié)點(diǎn)之間不存在連接),即p(h|v)=p(h1|v)…p(hn|v)。同理,在已知隱藏層h的情況下,所有的可視節(jié)點(diǎn)都是條件獨(dú)立的。同時(shí)又由于所有的v和h滿足Boltzmann 分布,因此,當(dāng)輸入v的時(shí)候,通過(guò)p(h|v) 可以得到隱藏層h,而得到隱藏層h之后,通過(guò)p(v|h)又能得到可視層,通過(guò)調(diào)整參數(shù),我們就是要使得從隱藏層得到的可視層v1與原來(lái)的可視層v如果一樣,那么得到的隱藏層就是可視層另外一種表達(dá),因此隱藏層可以作為可視層輸入數(shù)據(jù)的特征,所以它就是一種Deep Learning方法。
? ? ? ?如何訓(xùn)練呢?也就是可視層節(jié)點(diǎn)和隱節(jié)點(diǎn)間的權(quán)值怎么確定呢?我們需要做一些數(shù)學(xué)分析。也就是模型了。
? ? ? ? 聯(lián)合組態(tài)(jointconfiguration)的能量可以表示為:
? ? ? ? 而某個(gè)組態(tài)的聯(lián)合概率分布可以通過(guò)Boltzmann 分布(和這個(gè)組態(tài)的能量)來(lái)確定:
? ? ? 因?yàn)殡[藏節(jié)點(diǎn)之間是條件獨(dú)立的(因?yàn)楣?jié)點(diǎn)之間不存在連接),即:
? ? ? 然后我們可以比較容易(對(duì)上式進(jìn)行因子分解Factorizes)得到在給定可視層v的基礎(chǔ)上,隱層第j個(gè)節(jié)點(diǎn)為1或者為0的概率:
? ? ? ?同理,在給定隱層h的基礎(chǔ)上,可視層第i個(gè)節(jié)點(diǎn)為1或者為0的概率也可以容易得到:
? ? ? ?給定一個(gè)滿足獨(dú)立同分布的樣本集:D={v(1),?v(2),…,?v(N)},我們需要學(xué)習(xí)參數(shù)θ={W,a,b}。
? ? ? ?我們最大化以下對(duì)數(shù)似然函數(shù)(最大似然估計(jì):對(duì)于某個(gè)概率模型,我們需要選擇一個(gè)參數(shù),讓我們當(dāng)前的觀測(cè)樣本的概率最大):
? ? ? ? 也就是對(duì)最大對(duì)數(shù)似然函數(shù)求導(dǎo),就可以得到L最大時(shí)對(duì)應(yīng)的參數(shù)W了。
?
? ? ? ?如果,我們把隱藏層的層數(shù)增加,我們可以得到Deep Boltzmann Machine(DBM);如果我們?cè)诳拷梢晫拥牟糠质褂秘惾~斯信念網(wǎng)絡(luò)(即有向圖模型,當(dāng)然這里依然限制層中節(jié)點(diǎn)之間沒(méi)有鏈接),而在最遠(yuǎn)離可視層的部分使用Restricted Boltzmann Machine,我們可以得到DeepBelief Net(DBN)。
?
9.4、Deep Belief Networks深信度網(wǎng)絡(luò)
? ? ? ? DBNs是一個(gè)概率生成模型,與傳統(tǒng)的判別模型的神經(jīng)網(wǎng)絡(luò)相對(duì),生成模型是建立一個(gè)觀察數(shù)據(jù)和標(biāo)簽之間的聯(lián)合分布,對(duì)P(Observation|Label)和 P(Label|Observation)都做了評(píng)估,而判別模型僅僅而已評(píng)估了后者,也就是P(Label|Observation)。對(duì)于在深度神經(jīng)網(wǎng)絡(luò)應(yīng)用傳統(tǒng)的BP算法的時(shí)候,DBNs遇到了以下問(wèn)題:
(1)需要為訓(xùn)練提供一個(gè)有標(biāo)簽的樣本集;
(2)學(xué)習(xí)過(guò)程較慢;
(3)不適當(dāng)?shù)膮?shù)選擇會(huì)導(dǎo)致學(xué)習(xí)收斂于局部最優(yōu)解。
? ? ? ?DBNs由多個(gè)限制玻爾茲曼機(jī)(Restricted Boltzmann Machines)層組成,一個(gè)典型的神經(jīng)網(wǎng)絡(luò)類型如圖三所示。這些網(wǎng)絡(luò)被“限制”為一個(gè)可視層和一個(gè)隱層,層間存在連接,但層內(nèi)的單元間不存在連接。隱層單元被訓(xùn)練去捕捉在可視層表現(xiàn)出來(lái)的高階數(shù)據(jù)的相關(guān)性。
? ? ? ?首先,先不考慮最頂構(gòu)成一個(gè)聯(lián)想記憶(associative memory)的兩層,一個(gè)DBN的連接是通過(guò)自頂向下的生成權(quán)值來(lái)指導(dǎo)確定的,RBMs就像一個(gè)建筑塊一樣,相比傳統(tǒng)和深度分層的sigmoid信念網(wǎng)絡(luò),它能易于連接權(quán)值的學(xué)習(xí)。
? ? ? ?最開(kāi)始的時(shí)候,通過(guò)一個(gè)非監(jiān)督貪婪逐層方法去預(yù)訓(xùn)練獲得生成模型的權(quán)值,非監(jiān)督貪婪逐層方法被Hinton證明是有效的,并被其稱為對(duì)比分歧(contrastive divergence)。
? ? ? ?在這個(gè)訓(xùn)練階段,在可視層會(huì)產(chǎn)生一個(gè)向量v,通過(guò)它將值傳遞到隱層。反過(guò)來(lái),可視層的輸入會(huì)被隨機(jī)的選擇,以嘗試去重構(gòu)原始的輸入信號(hào)。最后,這些新的可視的神經(jīng)元激活單元將前向傳遞重構(gòu)隱層激活單元,獲得h(在訓(xùn)練過(guò)程中,首先將可視向量值映射給隱單元;然后可視單元由隱層單元重建;這些新可視單元再次映射給隱單元,這樣就獲取新的隱單元。執(zhí)行這種反復(fù)步驟叫做吉布斯采樣)。這些后退和前進(jìn)的步驟就是我們熟悉的Gibbs采樣,而隱層激活單元和可視層輸入之間的相關(guān)性差別就作為權(quán)值更新的主要依據(jù)。
? ? ? ?訓(xùn)練時(shí)間會(huì)顯著的減少,因?yàn)橹恍枰獑蝹€(gè)步驟就可以接近最大似然學(xué)習(xí)。增加進(jìn)網(wǎng)絡(luò)的每一層都會(huì)改進(jìn)訓(xùn)練數(shù)據(jù)的對(duì)數(shù)概率,我們可以理解為越來(lái)越接近能量的真實(shí)表達(dá)。這個(gè)有意義的拓展,和無(wú)標(biāo)簽數(shù)據(jù)的使用,是任何一個(gè)深度學(xué)習(xí)應(yīng)用的決定性的因素。
? ? ? ?在最高兩層,權(quán)值被連接到一起,這樣更低層的輸出將會(huì)提供一個(gè)參考的線索或者關(guān)聯(lián)給頂層,這樣頂層就會(huì)將其聯(lián)系到它的記憶內(nèi)容。而我們最關(guān)心的,最后想得到的就是判別性能,例如分類任務(wù)里面。
? ? ? ?在預(yù)訓(xùn)練后,DBN可以通過(guò)利用帶標(biāo)簽數(shù)據(jù)用BP算法去對(duì)判別性能做調(diào)整。在這里,一個(gè)標(biāo)簽集將被附加到頂層(推廣聯(lián)想記憶),通過(guò)一個(gè)自下向上的,學(xué)習(xí)到的識(shí)別權(quán)值獲得一個(gè)網(wǎng)絡(luò)的分類面。這個(gè)性能會(huì)比單純的BP算法訓(xùn)練的網(wǎng)絡(luò)好。這可以很直觀的解釋,DBNs的BP算法只需要對(duì)權(quán)值參數(shù)空間進(jìn)行一個(gè)局部的搜索,這相比前向神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),訓(xùn)練是要快的,而且收斂的時(shí)間也少。
? ? ? ?DBNs的靈活性使得它的拓展比較容易。一個(gè)拓展就是卷積DBNs(Convolutional Deep Belief Networks(CDBNs))。DBNs并沒(méi)有考慮到圖像的2維結(jié)構(gòu)信息,因?yàn)檩斎胧呛?jiǎn)單的從一個(gè)圖像矩陣一維向量化的。而CDBNs就是考慮到了這個(gè)問(wèn)題,它利用鄰域像素的空域關(guān)系,通過(guò)一個(gè)稱為卷積RBMs的模型區(qū)達(dá)到生成模型的變換不變性,而且可以容易得變換到高維圖像。DBNs并沒(méi)有明確地處理對(duì)觀察變量的時(shí)間聯(lián)系的學(xué)習(xí)上,雖然目前已經(jīng)有這方面的研究,例如堆疊時(shí)間RBMs,以此為推廣,有序列學(xué)習(xí)的dubbed temporal convolutionmachines,這種序列學(xué)習(xí)的應(yīng)用,給語(yǔ)音信號(hào)處理問(wèn)題帶來(lái)了一個(gè)讓人激動(dòng)的未來(lái)研究方向。
? ? ? ?目前,和DBNs有關(guān)的研究包括堆疊自動(dòng)編碼器,它是通過(guò)用堆疊自動(dòng)編碼器來(lái)替換傳統(tǒng)DBNs里面的RBMs。這就使得可以通過(guò)同樣的規(guī)則來(lái)訓(xùn)練產(chǎn)生深度多層神經(jīng)網(wǎng)絡(luò)架構(gòu),但它缺少層的參數(shù)化的嚴(yán)格要求。與DBNs不同,自動(dòng)編碼器使用判別模型,這樣這個(gè)結(jié)構(gòu)就很難采樣輸入采樣空間,這就使得網(wǎng)絡(luò)更難捕捉它的內(nèi)部表達(dá)。但是,降噪自動(dòng)編碼器卻能很好的避免這個(gè)問(wèn)題,并且比傳統(tǒng)的DBNs更優(yōu)。它通過(guò)在訓(xùn)練過(guò)程添加隨機(jī)的污染并堆疊產(chǎn)生場(chǎng)泛化性能。訓(xùn)練單一的降噪自動(dòng)編碼器的過(guò)程和RBMs訓(xùn)練生成模型的過(guò)程一樣。
?
下續(xù)
總結(jié)
以上是生活随笔為你收集整理的Deep Learning(深度学习)学习笔记整理系列之(六)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Deep Learning(深度学习)学
- 下一篇: SVM通俗入门