人工智能(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)域。
最新活動更多
-
即日-11.13立即報名>>> 【在線會議】多物理場仿真助跑新能源汽車
-
11月28日立即報名>>> 2024工程師系列—工業(yè)電子技術(shù)在線會議
-
12月19日立即報名>> 【線下會議】OFweek 2024(第九屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會
-
即日-12.26火熱報名中>> OFweek2024中國智造CIO在線峰會
-
即日-2025.8.1立即下載>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍皮書》
-
精彩回顧立即查看>> 【限時免費下載】TE暖通空調(diào)系統(tǒng)高效可靠的組件解決方案
推薦專題
-
5 夾縫中的文遠知行
- 高級軟件工程師 廣東省/深圳市
- 自動化高級工程師 廣東省/深圳市
- 光器件研發(fā)工程師 福建省/福州市
- 銷售總監(jiān)(光器件) 北京市/海淀區(qū)
- 激光器高級銷售經(jīng)理 上海市/虹口區(qū)
- 光器件物理工程師 北京市/海淀區(qū)
- 激光研發(fā)工程師 北京市/昌平區(qū)
- 技術(shù)專家 廣東省/江門市
- 封裝工程師 北京市/海淀區(qū)
- 結(jié)構(gòu)工程師 廣東省/深圳市