人工智能機(jī)器學(xué)習(xí)之受限玻爾茲曼機(jī)(RBM)算法
人工智能之機(jī)器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點(diǎn)探討一下受限玻爾茲曼機(jī)(RBM)算法。
受限玻爾茲曼機(jī)RBM在深度學(xué)習(xí)領(lǐng)域一直有重要應(yīng)用,它是一種可用隨機(jī)神經(jīng)網(wǎng)絡(luò)來解釋的概率圖模型,由Smolensky在1986年在玻爾茲曼機(jī)BM的基礎(chǔ)上提出, 是玻爾茲曼機(jī)BM的一種特殊拓?fù)浣Y(jié)構(gòu)。
玻爾茲曼機(jī)BM原理起源于統(tǒng)計物理學(xué),是一種基于能量函數(shù)的建模方法,能夠描述變量之間的高階相互作用,玻爾茲曼機(jī)BM的學(xué)習(xí)算法較復(fù)雜,但所建模型和學(xué)習(xí)算法有比較完備的物理解釋和嚴(yán)格的數(shù)理統(tǒng)計理論作基礎(chǔ)。
RBM概念:
以Hinton和Ackley兩位學(xué)者為代表的研究人員從不同領(lǐng)域以不同動機(jī)同時提出BM學(xué)習(xí)機(jī)。BM是一種隨機(jī)遞歸神經(jīng)網(wǎng)絡(luò),可以看做是一種隨機(jī)生成的Hopfield網(wǎng)絡(luò)(請參見公眾號之人工智能Hopfield網(wǎng)絡(luò))。BM是一種對稱耦合的隨機(jī)反饋型二值單元神經(jīng)網(wǎng)絡(luò),由可見層和多個隱層組成,網(wǎng)絡(luò)節(jié)點(diǎn)分為可見單元(visible unit)和隱單元(hidden unit),用可見單元和隱單元來表達(dá)隨機(jī)網(wǎng)絡(luò)與隨機(jī)環(huán)境的學(xué)習(xí)模型,通過權(quán)值表達(dá)單元之間的相關(guān)性。
Smolensky提出的RBM由1個可見神經(jīng)元層和1個隱神經(jīng)元層組成,由于隱層神經(jīng)元之間沒有相互連接并且隱層神經(jīng)元獨(dú)立于給定的訓(xùn)練樣本,這使直接計算依賴數(shù)據(jù)的期望值變得容易,可見層神經(jīng)元之間也沒有相互連接,通過從訓(xùn)練樣本得到的隱層神經(jīng)元狀態(tài)上執(zhí)行馬爾可夫鏈抽樣過程,來估計獨(dú)立于數(shù)據(jù)的期望值,并行交替更新所有可見層神經(jīng)元和隱層神經(jīng)元的值。
RBM引入:
受限玻爾茲曼機(jī)RBM是對玻爾茲曼機(jī)進(jìn)行簡化,使玻爾茲曼機(jī)BM更容易使用。玻爾茲曼機(jī)BM的隱元/顯元和隱元/隱元之間都是全連接的,增加了計算量和計算難度,使用困難。而RBM則是對BM進(jìn)行一些限制,使隱元之間沒有連接,使得計算量大大減小,使用起來非常方便。
RBM原理:
RBM參數(shù)如下:
1) 可視節(jié)點(diǎn)與隱藏節(jié)點(diǎn)直接的權(quán)重矩陣Wij;
2) 可視節(jié)點(diǎn)的偏移量b = (b1,b2,...,bn);
3) 隱藏節(jié)點(diǎn)的偏移量c = (c1,c2,...,cm);
這幾個參數(shù)決定了RBM網(wǎng)絡(luò)將1個n維的樣本編碼成1個m維的樣本。假設(shè)RBM的隱元和顯元的狀態(tài)取1或0,則它的能量函數(shù)為:
根據(jù)吉布斯(Gibbs)分布:p(v,h)=(1/Z)*e[?E(v,h)]和上面的能量函數(shù)建立模型的聯(lián)合概率分布。
可視節(jié)點(diǎn)狀態(tài)只受m個隱藏節(jié)點(diǎn)影響,同理,每個隱藏節(jié)點(diǎn)也是只受n個可視節(jié)點(diǎn)影響。即:
其中,Z為歸一化因子或配分函數(shù),表示對可見層和隱藏層節(jié)點(diǎn)集合的所有可能狀態(tài)的(能量指數(shù))求和。Z計算復(fù)雜度非常高,無法直接計算,需要一些數(shù)學(xué)推導(dǎo)來簡化計算量。
同理得到p(h)。
根據(jù)貝葉斯原理,知道聯(lián)合概率和邊緣概率,求得條件概率為:
這里?是sigmoid函數(shù)。條件概率是根據(jù)隱元或顯元的狀態(tài)、權(quán)重W、偏差b或c來確定顯元或隱元的狀態(tài)。