訂閱
糾錯
加入自媒體

人工智能(56)–DBN算法

人工智能機器學習有關(guān)算法內(nèi)容,請參見公眾號“科技優(yōu)化生活”之前相關(guān)文章。人工智能之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下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ò)的研究,并突破深度學習(請參見人工智能(22))的架構(gòu)。

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

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

     

DBN算法概念:

DBN深度置信網(wǎng)絡(luò)(Deep BeliefNets)是一種生成模型,也是神經(jīng)網(wǎng)絡(luò)(請參見人工智能(23))的一種,通過訓練其神經(jīng)元間的權(quán)重,可以讓整個神經(jīng)網(wǎng)絡(luò)按照最大概率來生成訓練數(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),每一個神經(jīng)元代表數(shù)據(jù)向量的一維。

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

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

DBN算法本質(zhì):

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

DBN訓練過程:

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

DBN訓練過程如下

1)充分訓練第一個RBM;

2)固定第一個RBM的權(quán)重和偏移量,然后使用其隱性神經(jīng)元的狀態(tài),作為第二個RBM的輸入向量;

3)充分訓練第二個RBM后,將第二個RBM堆疊在第一個RBM的上方;

4)重復(fù)以上1)~3)任意多次;

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

6)DBN 訓練完成。

最終訓練成的生成模型如下圖所示:

用公式表示為:

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

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

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

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

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

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

DBN使用過程:

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

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

DBN算法優(yōu)點:

1)靈活性好;

2)擴展容易;

3)性能較好;

4)并行計算;

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

DBN算法缺點:

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

2)需要為訓練提供一個有標簽的樣本集;

3)學習過程較慢;

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

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

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

DBN算法應(yīng)用:

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

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

結(jié)語:

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

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

發(fā)表評論

0條評論,0人參與

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

請輸入評論/評論長度6~500個字

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

暫無評論

暫無評論

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

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