訂閱
糾錯(cuò)
加入自媒體

人工智能(56)–DBN算法

人工智能機(jī)器學(xué)習(xí)有關(guān)算法內(nèi)容,請參見公眾號“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機(jī)器學(xué)習(xí)主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點(diǎn)探討一下DBN算法。 

2006年Hinton發(fā)表了一篇革命性的論文“Hinton, G. E., Osindero, S. and Teh, Y.,A fast learning algorithmfor deep belief nets.Neural Computation 18:1527-1554, 2006”,引領(lǐng)了DBN深度信念網(wǎng)絡(luò)的研究,并突破深度學(xué)習(xí)(請參見人工智能(22))的架構(gòu)。

DBN深度置信網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)(請參見人工智能(23))的一種,既可以用于非監(jiān)督學(xué)習(xí),類似于一個(gè)Autoencoder自編碼機(jī)(請參見人工智能(55));也可以用于監(jiān)督學(xué)習(xí),作為分類器來使用。因此十分值得研究。

DBN深度置信網(wǎng)絡(luò)是一個(gè)概率生成模型,與傳統(tǒng)的判別模型的神經(jīng)網(wǎng)絡(luò)相對,生成模型是建立一個(gè)觀察數(shù)據(jù)和標(biāo)簽之間的聯(lián)合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅評估了后者P(Label|Observation)。

     

DBN算法概念:

DBN深度置信網(wǎng)絡(luò)(Deep BeliefNets)是一種生成模型,也是神經(jīng)網(wǎng)絡(luò)(請參見人工智能(23))的一種,通過訓(xùn)練其神經(jīng)元間的權(quán)重,可以讓整個(gè)神經(jīng)網(wǎng)絡(luò)按照最大概率來生成訓(xùn)練數(shù)據(jù)。不僅可以使用DBN來識別特征、分類數(shù)據(jù),還可以用它來生成數(shù)據(jù)。

DBN由多層神經(jīng)元構(gòu)成,這些神經(jīng)元又分為2種顯性神經(jīng)元和隱性神經(jīng)元。顯性神經(jīng)元用于接收輸入,隱性神經(jīng)元用于提取特征,因此隱性神經(jīng)元也叫特征檢測器(Feature Detectors)。最頂上的兩層間的連接是無向的,組成聯(lián)合內(nèi)存(associative memory)。較低的其他層之間有連接上下的有向連接。最底層代表了數(shù)據(jù)向量(data vectors),每一個(gè)神經(jīng)元代表數(shù)據(jù)向量的一維。

DBN組成元件RBM受限玻爾茲曼機(jī) (請參見人工智能(37)。訓(xùn)練DBN的過程是一層一層地進(jìn)行的。在每一層中,用數(shù)據(jù)向量來推斷隱層,再把這一隱層當(dāng)作下一層 (高一層)的數(shù)據(jù)向量。

作為神經(jīng)網(wǎng)絡(luò),神經(jīng)元自然是其必不可少的組成部分。DBN由若干層神經(jīng)元構(gòu)成,組成元件是RBM受限玻爾茲曼機(jī), DBN網(wǎng)絡(luò)結(jié)構(gòu)限制為兩層:可視層和隱層,層與層之間存在連接,但層內(nèi)的單元間不存在連接,隱層單元被訓(xùn)練去捕捉在可視層表現(xiàn)出來的高階數(shù)據(jù)的相關(guān)性。具體DBN網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。

DBN算法本質(zhì):

從非監(jiān)督學(xué)習(xí)來講,其目的是盡可能地保留原始特征的特點(diǎn),同時(shí)降低特征的維度。從監(jiān)督學(xué)習(xí)來講,其目的在于使得分類錯(cuò)誤率盡可能地小。而不論是監(jiān)督學(xué)習(xí)還是非監(jiān)督學(xué)習(xí),DBN算法本質(zhì)都是Feature Learning的過程,即如何得到更好的特征表達(dá)。

DBN訓(xùn)練過程:

DBN 是由多層 RBM 組成的一個(gè)神經(jīng)網(wǎng)絡(luò),它既可以被看作一個(gè)生成模型,也可以當(dāng)作判別模型,其訓(xùn)練過程是:使用非監(jiān)督貪婪逐層方法去預(yù)訓(xùn)練獲得權(quán)值。

DBN訓(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ù)以上1)~3)任意多次;

5)如果訓(xùn)練集中的數(shù)據(jù)有標(biāo)簽,那么在頂層的RBM訓(xùn)練時(shí),這個(gè)RBM的顯層中除了顯性神經(jīng)元,還需要有代表分類標(biāo)簽的神經(jīng)元,一起進(jìn)行訓(xùn)練;

6)DBN 訓(xùn)練完成。

最終訓(xùn)練成的生成模型如下圖所示:

用公式表示為:

概括的說,將若干個(gè)RBM“串聯(lián)”起來則構(gòu)成了一個(gè)DBN。上一個(gè)RBM的隱層即為下一個(gè)RBM的顯層,上一個(gè)RBM的輸出即為下一個(gè)RBM的輸入。訓(xùn)練過程中,需要充分訓(xùn)練上一層的RBM后才能訓(xùn)練當(dāng)前層的RBM,直至最后一層。

注:隱層激活單元和可視層輸入之間的相關(guān)性差別就作為權(quán)值更新的主要依據(jù)。

DBN訓(xùn)練過程非常重要,這種逐層疊加RBM的方式叫做Greedy Layer-Wise Training它是最開始提出深度學(xué)習(xí)時(shí)候的核心!

DBN調(diào)優(yōu)過程:

DBN生成模型使用ContrastiveWake-Sleep算法進(jìn)行調(diào)優(yōu),其算法調(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)重) 。

3)Sleep 階段(生成過程):通過頂層表示和向下權(quán)重,生成底層的狀態(tài),同時(shí)修改層間向上的權(quán)重。

DBN使用過程:

1)使用隨機(jī)隱性神經(jīng)元狀態(tài)值,在頂層 RBM 中進(jìn)行足夠多次的Gibbs吉布斯抽樣;

2)向下傳播,得到每層的狀態(tài)。

DBN算法優(yōu)點(diǎn):

1)靈活性好;

2)擴(kuò)展容易;

3)性能較好;

4)并行計(jì)算;

5)相比前向神經(jīng)網(wǎng)絡(luò),訓(xùn)練較快,收斂時(shí)間較少。

DBN算法缺點(diǎn):

1)只能是一維的數(shù)據(jù);

2)需要為訓(xùn)練提供一個(gè)有標(biāo)簽的樣本集;

3)學(xué)習(xí)過程較慢;

4)不適當(dāng)?shù)膮?shù)選擇會導(dǎo)致收斂于局部最優(yōu)解;

5)沒有明確地處理對觀察變量時(shí)間聯(lián)系的學(xué)習(xí)。

注:擴(kuò)展的CDBNs(卷積DBNs) 考慮到2維數(shù)據(jù)結(jié)構(gòu)。

DBN算法應(yīng)用:

很多的情況下,DBN是作為無監(jiān)督學(xué)習(xí)框架來使用的,它的應(yīng)用范圍較廣,擴(kuò)展性也強(qiáng),可應(yīng)用于機(jī)器學(xué)習(xí)之手寫字識別、語音識別和圖像處理等領(lǐng)域。且在語音識別中取得了很好的效果。

語音識別:微軟研究人員通過與hinton合作,首先將RBM和DBN引入到語音識別聲學(xué)模型訓(xùn)練中,并且在大詞匯量語音識別系統(tǒng)中獲得巨大成功,使得語音識別的錯(cuò)誤率相對減低30%。

結(jié)語:

DBN算法是機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)的一種,既可以用于非監(jiān)督學(xué)習(xí),也可以用于監(jiān)督學(xué)習(xí),值得深入研究。DBN是一個(gè)概率生成模型,與傳統(tǒng)的判別模型的神經(jīng)網(wǎng)絡(luò)相對,生成模型是建立一個(gè)觀察數(shù)據(jù)和標(biāo)簽之間的聯(lián)合分布。通過訓(xùn)練其神經(jīng)元間的權(quán)重,可以讓整個(gè)神經(jīng)網(wǎng)絡(luò)按照最大概率來生成訓(xùn)練數(shù)據(jù)。不僅可以使用DBN來識別特征、分類數(shù)據(jù),還可以用它來生成數(shù)據(jù)。DBN算法是一種非常實(shí)用的學(xué)習(xí)算法,應(yīng)用范圍較廣,擴(kuò)展性也強(qiáng),可應(yīng)用于機(jī)器學(xué)習(xí)之手寫字識別、語音識別和圖像處理等領(lǐng)域。

聲明: 本文由入駐維科號的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場。如有侵權(quán)或其他問題,請聯(lián)系舉報(bào)。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個(gè)字

您提交的評論過于頻繁,請輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評論

暫無評論

    掃碼關(guān)注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號