《深度學(xué)習(xí)深度信念網(wǎng)絡(luò)DeepBeliefNetwork》由會(huì)員分享,可在線閱讀,更多相關(guān)《深度學(xué)習(xí)深度信念網(wǎng)絡(luò)DeepBeliefNetwork(11頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
i
深度學(xué)習(xí)--深度信念網(wǎng)絡(luò)(DeepBeliefNetwork)
概述
深度信念網(wǎng)絡(luò)(DeepBeliefNetwork,DBN)由GeoffreyHinton在
2006年提出。它是一種生成模型,通過訓(xùn)練其神經(jīng)元間的權(quán)重,我們可以讓整個(gè)神經(jīng)網(wǎng)絡(luò)按照最大概率來生成訓(xùn)練數(shù)據(jù)。我們不僅可以使用DBN識(shí)別特征、分類數(shù)據(jù),還可以用它來生成數(shù)據(jù)。下面的圖片展示的是用DBN識(shí)別手寫數(shù)字:
nsnsna
圖1用深度信念網(wǎng)絡(luò)識(shí)別手寫數(shù)字。圖中右下角是待
的上方有三層隱性神經(jīng)元。每一個(gè)黑色矩形代表一層神經(jīng)元狀態(tài)的神經(jīng)元,黑色代表處于關(guān)閉狀態(tài)的神經(jīng)'一
的黑白位圖,它
點(diǎn)代
2、表處于開啟
下方即使
別結(jié)果,與畫
妥數(shù)字。
面左
角I的對(duì)
。注意頂
F面是展示了一個(gè)學(xué)習(xí)了大量英文維基百科文章的DBN所生成的自然語
言段落:
#
In1974NorthernDenverhadbeenovershadowedbyCNL,andseveralIrishintelligenceagenciesintheMediterraneanregion.However,ontheVictoria,KingsHebrewstatedthatCharlesdecidedtoescapeduringan
alliance.Themansionhousewascom
3、pletedin1882,thesecondinitsbridgeareomitted,whileclosingistheprotonreticulumcomposedbelowitaims,suchthatitistheblurringofappearingonanywell-paidtypeofboxprinter.
DBN由多層神經(jīng)元構(gòu)成,這些神經(jīng)元又分為顯性神經(jīng)元和隱性神經(jīng)元(以下簡稱顯元和隱元)。顯元用于接受輸入,隱元用于提取特征。因此隱元也有個(gè)別名,叫特征檢測(cè)器(featuredetectors)。最頂上的兩層間的連接是無向的,組成聯(lián)合內(nèi)存(associativememory)o
4、較低的其他層之間有連接上下的有向連接。最底層代表了數(shù)據(jù)向量(datavectors),每一個(gè)神經(jīng)元代表數(shù)據(jù)向量的一維。
DBN的組成元件是受限玻爾茲曼機(jī)(RestrictedBoltzmann
Machines,RBM)o訓(xùn)練DBN的過程是一層一層地進(jìn)行的。在每一層中,用數(shù)據(jù)向量來推斷隱層,再把這一隱層當(dāng)作下一層(高一層)的數(shù)據(jù)向量。受限玻爾茲曼機(jī)
如前所述,RBM是DBN的組成元件。事實(shí)上,每一個(gè)RBM都可以單獨(dú)用作聚類器。
RBM只有兩層神經(jīng)元,一層叫做顯層(visiblelayer),由顯兀(visibleunits)組成,用于輸入訓(xùn)練數(shù)據(jù)。另一層叫做隱層(Hiddenlayer
5、),相應(yīng)地,
由隱兀(hiddenunits)組成,用作特征檢測(cè)器(featuredetectors)。
hiddenunits
visibleunits
圖2受限玻爾茲曼機(jī)的結(jié)構(gòu)。圖中的較上一層神經(jīng)元組成隱層,較下的神經(jīng)元
組成顯元。每一層都可以用一個(gè)向量來表示,每一維表示每個(gè)神經(jīng)元。注意這兩層間的對(duì)稱(雙向)連接。
神經(jīng)元之間的條件獨(dú)立性
應(yīng)注意到,顯層和隱層內(nèi)部的神經(jīng)元都沒有互連,只有層間的神經(jīng)元有對(duì)稱的連接線。這樣的好處是,在給定所有顯元的值的情況下,每一個(gè)隱元取什么值是互不相關(guān)的。也就是說,
日>|町=匸[:=嚴(yán)(眄|V)
同樣,在給定隱層時(shí),所有顯元的取值
6、也互不相關(guān):
PhIh)=n"戸①丨h(huán))
有了這個(gè)重要性質(zhì),我們?cè)谟?jì)算每個(gè)神經(jīng)元的取值情況時(shí)就不必每次計(jì)算一個(gè),而是同時(shí)并行地計(jì)算整層神經(jīng)元。
使用RBM的過程
假設(shè)我們現(xiàn)在已經(jīng)得到一個(gè)訓(xùn)練好的RBM,每個(gè)隱元與顯元間的權(quán)重用矩陣W表示,且:
甲二
代表顯元的個(gè)數(shù),N代表
其中Wj代表從第i個(gè)顯元到
X—(⑦丫
隱元的個(gè)數(shù)。那么,當(dāng)我們把一條新來的數(shù)據(jù)"-:'附
給(clampto)顯層后,RBM將會(huì)依照權(quán)值W來決定開啟或關(guān)閉隱元。具體的操作如下:首先,將每個(gè)隱元的激勵(lì)值(activation)計(jì)算出來:
h=Wx
注意,這里用到了前面提到的神經(jīng)元之間的條件獨(dú)立性。
7、然后,將每個(gè)隱元的激勵(lì)值都用s形函數(shù)進(jìn)行標(biāo)準(zhǔn)化,變成它們處于開啟
狀(用i表示)的概率值:
4
#
此處的S形函數(shù)我們采用的是Logistic函數(shù):
#
至此,每個(gè)隱元hj開啟的概率被計(jì)算出來了。其處于關(guān)閉狀態(tài)(用0表示)的
概率自然也就是
P(hj=0)=1—P(氣=1)
那么到底這個(gè)元開啟還是關(guān)閉,我們需要將開啟的概率與一個(gè)從0,1均勻分布中抽取的隨機(jī)值
"?t/(0,1)
進(jìn)行如下比較
1p(h.=i)>u
'0,P(h—1)<
然后開啟或關(guān)閉相應(yīng)的隱元。
給定隱層,計(jì)算顯層的方法是一樣的。
訓(xùn)練RB
8、M
RBM的訓(xùn)練過程,實(shí)際上是求出一個(gè)最能產(chǎn)生訓(xùn)練樣本的概率分布。也就是說,要求一個(gè)分布,在這個(gè)分布里,訓(xùn)練樣本的概率最大。由于這個(gè)分布的決定性因素在于權(quán)值W,所以我們訓(xùn)練RBM的目標(biāo)就是尋找最佳的權(quán)值。為了保持讀者的興趣,這里我們不給出最大化對(duì)數(shù)似然函數(shù)的推導(dǎo)過程,直接說明如何訓(xùn)練RBM。
G.Hinton提出了名為對(duì)比散度(ContrastiveDivergence)的學(xué)習(xí)算法。
F面我們來詳述它的具體過程。
我們沿用前文的符號(hào)記法。
算法1.對(duì)比散度
對(duì)于訓(xùn)練集中的每一條記錄
算法丄對(duì)比故度
對(duì)于訓(xùn)練集中的4董i己錄工有:
將訓(xùn)跆顯層艸,譏算它使隱抽經(jīng)元彼Jf啟的嘅率f
9、(皆)=ii嚴(yán))=曲網(wǎng)卍)
式中的上標(biāo)用于區(qū)別不同向量’下標(biāo)用于朗恫一向最中的不碉。
然民從計(jì)算出的概率分創(chuàng)鈾取一t樣本
h冏-科卅)嚴(yán))
用巫構(gòu)顯層
現(xiàn)年=l|h?))=mwW)
同樣,抽取出顯層的一^樣本
隹次年SI層神經(jīng)元隹構(gòu)之悟的口噂岀隱層神經(jīng)元被開啟的概率
F(H:=1|円)二別必「円)
如此訓(xùn)練烹后的粒RBM就能較為準(zhǔn)確地提取顯層的特征,或者根據(jù)隱層所代表
的特征還原顯層了。W+激腫=11理)理『一砒=1|/}”⑴丁
深度信念網(wǎng)絡(luò)
前文我們已經(jīng)介紹了RBM的基本結(jié)構(gòu)和其訓(xùn)練、使用過程,接下來我們介紹
DBN的相關(guān)內(nèi)容。
DBN是由多層RBM組成的一個(gè)神經(jīng)
10、網(wǎng)絡(luò),它既可以被看作一個(gè)生成模型,也可以當(dāng)作判別模型,其訓(xùn)練過程是:使用非監(jiān)督貪婪逐層方法去預(yù)訓(xùn)練獲得權(quán)
值。
訓(xùn)練過程:
1. 首先充分訓(xùn)練第一個(gè)RBM;
2. 固定第一個(gè)RBM的權(quán)重和偏移量,然后使用其隱性神經(jīng)元的狀態(tài),作為第二個(gè)RBM的輸入向量;
3. 充分訓(xùn)練第二個(gè)RBM后,將第二個(gè)RBM堆疊在第一個(gè)RBM的上方;
4. 重復(fù)以上三個(gè)步驟任意多次;
5. 如果訓(xùn)練集中的數(shù)據(jù)有標(biāo)簽,那么在頂層的RBM訓(xùn)練時(shí),這個(gè)RBM的顯層中除了顯性神經(jīng)元,還需要有代表分類標(biāo)簽的神經(jīng)元,一起進(jìn)行訓(xùn)練:
a)假設(shè)頂層RBM的顯層有500個(gè)顯性神經(jīng)元,訓(xùn)練數(shù)據(jù)的分類一共分成
了10類;
11、b)那么頂層RBM的顯層有510個(gè)顯性神經(jīng)元,對(duì)每一訓(xùn)練訓(xùn)練數(shù)據(jù),相應(yīng)的標(biāo)簽神經(jīng)元被打開設(shè)為1,而其他的則被關(guān)閉設(shè)為0。
6. DBN被訓(xùn)練好后如下圖:(示意)
2/1
訓(xùn)練好
INE-TUNIN
程是一個(gè)判別模型
是在最頂層RBM中參與訓(xùn)
h00
另:
vOOO000000
調(diào)優(yōu)過程*Fine-TUSing):PWlh)
生成模型使用ContrastiveWake-Sleep算法進(jìn)行調(diào)優(yōu),其算法過程是:
1. 除了頂層RBM,其他層RBM的權(quán)重被分成向上的認(rèn)知權(quán)重和向下的生成權(quán)重;
2. Wake階段:認(rèn)知過程,通過外界的特征和向上的權(quán)重(認(rèn)知權(quán)重)產(chǎn)生每一層的抽象表示(結(jié)點(diǎn)狀態(tài)),并且使用梯度下降修改層間的下行權(quán)重(生成權(quán)重)。也就是如果現(xiàn)實(shí)跟我想象的不一樣,改變我的權(quán)重使得我想
象的東西就是這樣的。
3. Sleep階段:生成過程,通過頂層表示(醒時(shí)學(xué)得的概念)和向下權(quán)重,生成底層的狀態(tài),同時(shí)修改層間向上的權(quán)重。也就是如果夢(mèng)中的景象不是我腦中的相應(yīng)概念,改變我的認(rèn)知權(quán)重使得這種景象在我看來就是這個(gè)概
念。
使用過程:
1. 使用隨機(jī)隱性神經(jīng)元狀態(tài)值,在頂層RBM中進(jìn)行足夠多次的吉布斯抽
樣;
2. 向下傳播,得到每層的狀態(tài)。
11