一、引入
對於一個復雜的數據分布,往往只能觀察到有限的局部特征,這些特征通常會包含一定的噪聲,如果要對這個數據分布進行建模,需要挖掘可觀測變量之間復雜的依賴關系,以及可觀測變量背后隱藏的內部表示。
深度信念網絡是一種可以有效學習變量之間復雜依賴關系的概率圖模型,包含很多層的隱變量,能夠有效學習數據的內部特征表示,也可以作為一種非線性的降維方法,這些學習到的內部特征表示往往有着更有價值的信息,能夠便於后續的回歸分類等任務。深度信念網絡的問題是推斷和學習問題,推斷就是求隱變量的后驗,學習就是學習網絡的參數。因為深度信念網絡包含隱變量,較為復雜,所以推斷和學習一般用MCMC的方法來近似估計。
深度信念網絡(DBN)通過采用逐層訓練的方式,解決了深層次神經網絡的優化問題,通過逐層訓練為整個網絡賦予了較好的初始權值,使得網絡只要經過微調就可以達到最優解。而在逐層訓練的時候起到最重要作用的是“受限玻爾茲曼機”
玻爾茲曼機和受限玻爾茲曼機,是根植於統計力學的隨機神經網絡,這種網絡中神經元只有兩種狀態(未激活、激活),用二進制0、1表示,狀態的取值根據概率統計法則決定,而且其概率表達形式類似於物理里的玻爾茲曼分布,於是叫做玻爾茲曼機。
這里狀態$\alpha $指的是一種范圍,並非不是一種確切的取值,如12.3,若系統溫度不變,狀態$\alpha $的能量$E_{\alpha }$與概率$P_{\alpha }$成反比,也就是說,能量越低,概率越大,這個概率是指【停留在狀態$\alpha $的概率】,物理里描述的是一個粒子處於狀態$\alpha $的概率,如果是放在我們的網絡里看的話,它描述的就是整個網絡保持這種狀態的概率最大,也就是說網絡更有可能停留在這種狀態,則網絡更問題。簡言之,能量越低,概率越大,網絡更穩定。
然后再看溫度$T$,在統計學習中,如果我們將需要學習的模型看成高溫物體,將學習的過程看成一個降溫達到熱平衡的過程(熱平衡在物理學領域通常指溫度在時間或空間上的穩定),最終模型的能量將會收斂為一個分布,在全局極小能量上下波動,這個過程稱為“模擬退火”,其名字來自冶金學的專有名詞“退火”,即將材料加熱后再以一定的速度退火冷卻,可以減少晶格中的缺陷,而模型能量收斂到的分布即為玻爾茲曼分布。
上面這段話換成人話就是:通常的想法是,人下山的每一步都選擇下降最快的方向走下去,那么人會走到一個盆地里的最低點,but這樣做的壞處就是,人會到達一個局部最低點,卻不一定是全局最低點。模擬退火就是用來解決這個局部最低卻不是全局最低的問題。在物理里,我們先把材料加熱,材料加熱能量就會變大,粒子就會更加不穩定,然后再把材料慢慢冷卻,不能急速冷卻,這么做是為了讓材料在不同的溫度下都達到平衡,最后冷卻后的材料就會收斂到一個能量最低,最穩定的狀態,而且是全局最低狀態。
二、玻爾茲曼機
如圖所示,講明玻爾茲曼機的特點:
(1)所有變量之間相互連接,是無向圖模型,即所有變量之間相互影響,每個變量的狀態都以一定的概率受到其他變量的影響
(2)每個隨機變量都是二值的,要么取1要么取0,取1代表被激活
(3)包含有可觀測變量V和隱變量H
前面介紹了玻爾茲曼分布,在玻爾茲曼機中變量的概率是由玻爾茲曼分布來定義的,依舊是:能量越低,概率越大。
然后看12.2,我們希望能量越低的話,也就是希望括號里結果越大,假設有兩個變量a和b的取值都為1,當連接權重為正時,相當於對整個網絡的穩定性起到了一個積極的作用;若為負,就表示這兩個變量同時取1不大可能,因為此時相當於給整個網絡達到問題拖了后腿。
(一)能量最小
為了達到我們的目的:讓網絡穩定,我們有兩種方案可選:
1.直接法:
如該式,我們對每一個變量,都去尋找該變量在0和1狀態下,全局能量的差值。如果這個差值大於0,說明變量的狀態為1時能夠使得全局能量最低,於是變量取1,然后繼續更換一個新的變量,繼續計算該變量在0和1狀態下全局能量的差值。這個方法看似很有道理的樣子,但是很有可能最后收斂到的是局部最優解。為了解決這個問題,可以借用開頭提出的模擬退火的思想來尋找全局最優解。
2.模擬退火
首先,先定義一下全條件概率,省略證明步驟:
我們會發現,12.6括號中分子部分長得跟我們前面提到的能量差值一模一樣,對於這個全條件概率,我們換一種表達方式——一個變量在溫度不變的情況下,被激活為1的概率,與能量差有關,也就是說,12.6是一個變量被激活的概率。
前面粗略說了一下模擬退火的物理過程,但是還是沒有解釋清楚【為什么模擬退火的思想可以解決局部最優的困境】,先思考之所以會產生局部最優,是因為我們的每一步做法都是“確定的”,我們乖乖的按照指示,每一步只選擇最陡峭的方向,不會叛逆,所以我們走到了一個局部最優點;而要跳出這個局部最優,我們需要“不乖”,也就是說,我們的每一步都有一定的概率不遵守規則。
而12.6提出的概率,就是引入了一個隨機性。相比起第一種方法,因為每次都是選擇讓全局能量最低的節點狀態,沒有隨機性,故而會陷入局部最優的問題中。
(二)玻爾茲曼機的參數估計
因為玻爾茲曼機很復雜,耗時長,所以用受限玻爾茲曼機更為平常。
三、受限玻爾茲曼機
受限玻爾茲曼機的條件與玻爾茲曼機大體相同,不同點只有:受限玻爾茲曼機是二分無向圖模型,不同層的節點之間全連接,而同層節點之間不連接
由無向圖的性質可以知道,在給定隱變量的時候,可觀測變量之間條件獨立;同樣在給定可觀測變量的時候,隱變量之間條件獨立:
提出這個條件概率的具體形式主要是為了后邊采樣,因為吉布斯或MCMC都是基於條件概率來采樣的。而為什么要采樣,是因為受限玻爾茲曼機同樣在優化參數的時候也有計算導數困難的問題。
比如12.52,的第一項,涉及vh在條件概率分布中的期望,我們就可以用吉布斯采樣,固定v為訓練樣本中的值,對h采樣,得到一個數值;對於第二項,因為是全局中的采樣,就采用吉布斯采樣對hv輪流進行采樣,又得到一個數值。大體就是這么個過程。受限玻爾茲曼機的采樣已經比在玻爾茲曼機上采樣效率得到了提升,但是還有一個對比散度算法也可以很好的計算這些復雜的期望:
四、深度信念網絡
深度信念網絡(DNN)實一種深層的概率有向圖模型,其圖結構是多層的,每層節點的內部沒有連接,但相鄰兩層節點之間為全連接。網絡的最底層是可觀測變量,其它層節點為隱變量,最頂部兩層是無向連接,可看做受限玻爾茲曼機,其余為有向。
其實這個有向無向我也是很糾結,因為不同的地方寫的好像都不一樣。我暫且理解是,除了前兩層外,其它層之間都有條件概率關系,如果方向自下而上,通常是在逐層訓練這個模型的參數;而從上到下,通常是在拿這個已經訓練好參數的模型來生成樣本,就是前兩層多做幾次吉布斯采樣,然后就一層層往下繼續基於條件概率的獨立性采樣,直到輸出可觀測變量作為樣本的補充。
(一)模型的訓練(逐層預訓練和精調)
1.逐層預訓練
2.精調
然后就是用傳統的學習方法來調整這個預訓練出來的模型參數結果了