人工智慧–DBN演算法
人工智慧之DBN演算法
前言:人工智慧機器學習有關演算法內容,請參見公眾號「科技優化生活」之前相關文章。人工智慧之機器學習主要有三大類:1)分類;2)回歸;3)聚類。今天我們重點探討一下DBN演算法。 ^_^
2006年Hinton發表了一篇革命性的論文「Hinton, G. E., Osindero, S. and Teh, Y.,A fast learning algorithmfor deep belief nets.Neural Computation 18:1527-1554, 2006」,引領了DBN深度信念網路的研究,並突破了深度學習(請參見人工智慧(22))的架構。
DBN深度置信網路是神經網路(請參見人工智慧(23))的一種,既可以用於非監督學習,類似於一個Autoencoder自編碼機(請參見人工智慧(55));也可以用於監督學習,作為分類器來使用。因此十分值得研究。
DBN深度置信網路是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察數據和標籤之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅評估了後者P(Label|Observation)。
DBN演算法概念:
DBN深度置信網路(Deep BeliefNets)是一種生成模型,也是神經網路(請參見人工智慧(23))的一種,通過訓練其神經元間的權重,可以讓整個神經網路按照最大概率來生成訓練數據。不僅可以使用DBN來識別特徵、分類數據,還可以用它來生成數據。
DBN由多層神經元構成,這些神經元又分為2種:顯性神經元和隱性神經元。顯性神經元用於接收輸入,隱性神經元用於提取特徵,因此隱性神經元也叫特徵檢測器(Feature Detectors)。最頂上的兩層間的連接是無向的,組成聯合內存(associative memory)。較低的其他層之間有連接上下的有向連接。最底層代表了數據向量(data vectors),每一個神經元代表數據向量的一維。
DBN組成元件是RBM受限玻爾茲曼機(請參見人工智慧(37)。訓練DBN的過程是一層一層地進行的。在每一層中,用數據向量來推斷隱層,再把這一隱層當作下一層 (高一層)的數據向量。
作為神經網路,神經元自然是其必不可少的組成部分。DBN由若干層神經元構成,組成元件是RBM受限玻爾茲曼機,DBN網路結構限制為兩層:可視層和隱層,層與層之間存在連接,但層內的單元間不存在連接,隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。具體DBN網路結構如下圖所示。
DBN演算法本質:
從非監督學習來講,其目的是儘可能地保留原始特徵的特點,同時降低特徵的維度。從監督學習來講,其目的在於使得分類錯誤率儘可能地小。而不論是監督學習還是非監督學習,DBN演算法本質都是Feature Learning的過程,即如何得到更好的特徵表達。
DBN訓練過程:
DBN是由多層 RBM 組成的一個神經網路,它既可以被看作一個生成模型,也可以當作判別模型,其訓練過程是:使用非監督貪婪逐層方法去預訓練獲得權值。
DBN訓練過程如下:
1)充分訓練第一個RBM;
2)固定第一個RBM的權重和偏移量,然後使用其隱性神經元的狀態,作為第二個RBM的輸入向量;
3)充分訓練第二個RBM後,將第二個RBM堆疊在第一個RBM的上方;
4)重複以上1)~3)任意多次;
5)如果訓練集中的數據有標籤,那麼在頂層的RBM訓練時,這個RBM的顯層中除了顯性神經元,還需要有代表分類標籤的神經元,一起進行訓練;
6)DBN 訓練完成。
最終訓練成的生成模型如下圖所示:
用公式表示為:
概括的說,將若干個RBM「串聯」起來則構成了一個DBN。上一個RBM的隱層即為下一個RBM的顯層,上一個RBM的輸出即為下一個RBM的輸入。訓練過程中,需要充分訓練上一層的RBM後才能訓練當前層的RBM,直至最後一層。
註:隱層激活單元和可視層輸入之間的相關性差別就作為權值更新的主要依據。
DBN訓練過程非常重要,這種逐層疊加RBM的方式叫做Greedy Layer-Wise Training,它是最開始提出深度學習時候的核心!
DBN調優過程:
DBN生成模型使用ContrastiveWake-Sleep演算法進行調優,其演算法調優過程是:
1) 除了頂層 RBM,其他層RBM的權重被分成向上的認知權重和向下的生成權重;
2)Wake階段(認知過程):通過外界的特徵和向上的權重 (認知權重)產生每一層的抽象表示(結點狀態) ,並且使用梯度下降修改層間的下行權重 (生成權重) 。
3)Sleep 階段(生成過程):通過頂層表示和向下權重,生成底層的狀態,同時修改層間向上的權重。
DBN使用過程:
1)使用隨機隱性神經元狀態值,在頂層 RBM 中進行足夠多次的Gibbs吉布斯抽樣;
2)向下傳播,得到每層的狀態。
DBN演算法優點:
1)靈活性好;
2)擴展容易;
3)性能較好;
4)並行計算;
5)相比前向神經網路,訓練較快,收斂時間較少。
DBN演算法缺點:
1)只能是一維的數據;
2)需要為訓練提供一個有標籤的樣本集;
3)學習過程較慢;
4)不適當的參數選擇會導致收斂於局部最優解;
5)沒有明確地處理對觀察變數時間聯繫的學習。
註:擴展的CDBNs(卷積DBNs) 考慮到2維數據結構。
DBN演算法應用:
很多的情況下,DBN是作為無監督學習框架來使用的,它的應用範圍較廣,擴展性也強,可應用於機器學習之手寫字識別、語音識別和圖像處理等領域。且在語音識別中取得了很好的效果。
語音識別:微軟研究人員通過與hinton合作,首先將RBM和DBN引入到語音識別聲學模型訓練中,並且在大辭彙量語音識別系統中獲得巨大成功,使得語音識別的錯誤率相對減低30%。
結語:
DBN演算法是機器學習之神經網路的一種,既可以用於非監督學習,也可以用於監督學習,值得深入研究。DBN是一個概率生成模型,與傳統的判別模型的神經網路相對,生成模型是建立一個觀察數據和標籤之間的聯合分布。通過訓練其神經元間的權重,可以讓整個神經網路按照最大概率來生成訓練數據。不僅可以使用DBN來識別特徵、分類數據,還可以用它來生成數據。DBN演算法是一種非常實用的學習演算法,應用範圍較廣,擴展性也強,可應用於機器學習之手寫字識別、語音識別和圖像處理等領域。
------以往文章推薦-----
TAG:科技優化生活 |