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