深度学习之六:
Deep Learning(深度學習)學習筆記整理系列之(六)
分類:?Deep Learning?機器學習?Linux驅動2013-04-10 10:3885019人閱讀評論(47)收藏舉報Deep Learning(深度學習)學習筆記整理系列
zouxy09@qq.com
http://blog.csdn.net/zouxy09
作者:Zouxy
version 1.0 2013-04-08
聲明:
1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也參考原文獻。
2)本文僅供學術交流,非商用。所以每一部分具體的參考資料并沒有詳細對應。如果某部分不小心侵犯了大家的利益,還望海涵,并聯系博主刪除。
3)本人才疏學淺,整理總結的時候難免出錯,還望各位前輩不吝指正,謝謝。
4)閱讀本文需要機器學習、計算機視覺、神經網絡等等基礎(如果沒有也沒關系了,沒有就看看,能不能看懂,呵呵)。
5)此屬于第一版本,若有錯誤,還需繼續修正與增刪。還望大家多多指點。大家都共享一點點,一起為祖國科研的推進添磚加瓦(呵呵,好高尚的目標啊)。請聯系:zouxy09@qq.com
目錄:
一、概述
二、背景
三、人腦視覺機理
四、關于特征
?????? 4.1、特征表示的粒度
?????? 4.2、初級(淺層)特征表示
???????4.3、結構性特征表示
?????? 4.4、需要有多少個特征?
五、Deep Learning的基本思想
六、淺層學習(Shallow Learning)和深度學習(Deep Learning)
七、Deep learning與Neural Network
八、Deep learning訓練過程
?????? 8.1、傳統神經網絡的訓練方法
?????? 8.2、deep learning訓練過程
九、Deep Learning的常用模型或者方法
?????? 9.1、AutoEncoder自動編碼器
?????? 9.2、Sparse Coding稀疏編碼
?????? 9.3、Restricted Boltzmann Machine(RBM)限制波爾茲曼機
?????? 9.4、Deep BeliefNetworks深信度網絡
?????? 9.5、Convolutional Neural Networks卷積神經網絡
十、總結與展望
十一、參考文獻和Deep Learning學習資源
接上
?
注:下面的兩個Deep Learning方法說明需要完善,但為了保證文章的連續性和完整性,先貼一些上來,后面再修改好了。
9.3、Restricted Boltzmann Machine (RBM)限制波爾茲曼機
? ? ? ?假設有一個二部圖,每一層的節點之間沒有鏈接,一層是可視層,即輸入數據層(v),一層是隱藏層(h),如果假設所有的節點都是隨機二值變量節點(只能取0或者1值),同時假設全概率分布p(v,h)滿足Boltzmann 分布,我們稱這個模型是Restricted BoltzmannMachine (RBM)。
? ? ? ?下面我們來看看為什么它是Deep Learning方法。首先,這個模型因為是二部圖,所以在已知v的情況下,所有的隱藏節點之間是條件獨立的(因為節點之間不存在連接),即p(h|v)=p(h1|v)…p(hn|v)。同理,在已知隱藏層h的情況下,所有的可視節點都是條件獨立的。同時又由于所有的v和h滿足Boltzmann 分布,因此,當輸入v的時候,通過p(h|v) 可以得到隱藏層h,而得到隱藏層h之后,通過p(v|h)又能得到可視層,通過調整參數,我們就是要使得從隱藏層得到的可視層v1與原來的可視層v如果一樣,那么得到的隱藏層就是可視層另外一種表達,因此隱藏層可以作為可視層輸入數據的特征,所以它就是一種Deep Learning方法。
? ? ? ?如何訓練呢?也就是可視層節點和隱節點間的權值怎么確定呢?我們需要做一些數學分析。也就是模型了。
? ? ? ? 聯合組態(jointconfiguration)的能量可以表示為:
? ? ? ? 而某個組態的聯合概率分布可以通過Boltzmann 分布(和這個組態的能量)來確定:
? ? ? 因為隱藏節點之間是條件獨立的(因為節點之間不存在連接),即:
? ? ? 然后我們可以比較容易(對上式進行因子分解Factorizes)得到在給定可視層v的基礎上,隱層第j個節點為1或者為0的概率:
? ? ? ?同理,在給定隱層h的基礎上,可視層第i個節點為1或者為0的概率也可以容易得到:
? ? ? ?給定一個滿足獨立同分布的樣本集:D={v(1),?v(2),…,?v(N)},我們需要學習參數θ={W,a,b}。
? ? ? ?我們最大化以下對數似然函數(最大似然估計:對于某個概率模型,我們需要選擇一個參數,讓我們當前的觀測樣本的概率最大):
? ? ? ? 也就是對最大對數似然函數求導,就可以得到L最大時對應的參數W了。
?
? ? ? ?如果,我們把隱藏層的層數增加,我們可以得到Deep Boltzmann Machine(DBM);如果我們在靠近可視層的部分使用貝葉斯信念網絡(即有向圖模型,當然這里依然限制層中節點之間沒有鏈接),而在最遠離可視層的部分使用Restricted Boltzmann Machine,我們可以得到DeepBelief Net(DBN)。
?
9.4、Deep Belief Networks深信度網絡
? ? ? ? DBNs是一個概率生成模型,與傳統的判別模型的神經網絡相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了后者,也就是P(Label|Observation)。對于在深度神經網絡應用傳統的BP算法的時候,DBNs遇到了以下問題:
(1)需要為訓練提供一個有標簽的樣本集;
(2)學習過程較慢;
(3)不適當的參數選擇會導致學習收斂于局部最優解。
? ? ? ?DBNs由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的神經網絡類型如圖三所示。這些網絡被“限制”為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。
? ? ? ?首先,先不考慮最頂構成一個聯想記憶(associative memory)的兩層,一個DBN的連接是通過自頂向下的生成權值來指導確定的,RBMs就像一個建筑塊一樣,相比傳統和深度分層的sigmoid信念網絡,它能易于連接權值的學習。
? ? ? ?最開始的時候,通過一個非監督貪婪逐層方法去預訓練獲得生成模型的權值,非監督貪婪逐層方法被Hinton證明是有效的,并被其稱為對比分歧(contrastive divergence)。
? ? ? ?在這個訓練階段,在可視層會產生一個向量v,通過它將值傳遞到隱層。反過來,可視層的輸入會被隨機的選擇,以嘗試去重構原始的輸入信號。最后,這些新的可視的神經元激活單元將前向傳遞重構隱層激活單元,獲得h(在訓練過程中,首先將可視向量值映射給隱單元;然后可視單元由隱層單元重建;這些新可視單元再次映射給隱單元,這樣就獲取新的隱單元。執行這種反復步驟叫做吉布斯采樣)。這些后退和前進的步驟就是我們熟悉的Gibbs采樣,而隱層激活單元和可視層輸入之間的相關性差別就作為權值更新的主要依據。
? ? ? ?訓練時間會顯著的減少,因為只需要單個步驟就可以接近最大似然學習。增加進網絡的每一層都會改進訓練數據的對數概率,我們可以理解為越來越接近能量的真實表達。這個有意義的拓展,和無標簽數據的使用,是任何一個深度學習應用的決定性的因素。
? ? ? ?在最高兩層,權值被連接到一起,這樣更低層的輸出將會提供一個參考的線索或者關聯給頂層,這樣頂層就會將其聯系到它的記憶內容。而我們最關心的,最后想得到的就是判別性能,例如分類任務里面。
? ? ? ?在預訓練后,DBN可以通過利用帶標簽數據用BP算法去對判別性能做調整。在這里,一個標簽集將被附加到頂層(推廣聯想記憶),通過一個自下向上的,學習到的識別權值獲得一個網絡的分類面。這個性能會比單純的BP算法訓練的網絡好。這可以很直觀的解釋,DBNs的BP算法只需要對權值參數空間進行一個局部的搜索,這相比前向神經網絡來說,訓練是要快的,而且收斂的時間也少。
? ? ? ?DBNs的靈活性使得它的拓展比較容易。一個拓展就是卷積DBNs(Convolutional Deep Belief Networks(CDBNs))。DBNs并沒有考慮到圖像的2維結構信息,因為輸入是簡單的從一個圖像矩陣一維向量化的。而CDBNs就是考慮到了這個問題,它利用鄰域像素的空域關系,通過一個稱為卷積RBMs的模型區達到生成模型的變換不變性,而且可以容易得變換到高維圖像。DBNs并沒有明確地處理對觀察變量的時間聯系的學習上,雖然目前已經有這方面的研究,例如堆疊時間RBMs,以此為推廣,有序列學習的dubbed temporal convolutionmachines,這種序列學習的應用,給語音信號處理問題帶來了一個讓人激動的未來研究方向。
? ? ? ?目前,和DBNs有關的研究包括堆疊自動編碼器,它是通過用堆疊自動編碼器來替換傳統DBNs里面的RBMs。這就使得可以通過同樣的規則來訓練產生深度多層神經網絡架構,但它缺少層的參數化的嚴格要求。與DBNs不同,自動編碼器使用判別模型,這樣這個結構就很難采樣輸入采樣空間,這就使得網絡更難捕捉它的內部表達。但是,降噪自動編碼器卻能很好的避免這個問題,并且比傳統的DBNs更優。它通過在訓練過程添加隨機的污染并堆疊產生場泛化性能。訓練單一的降噪自動編碼器的過程和RBMs訓練生成模型的過程一樣。
總結
- 上一篇: 深度学习之四:常用模型和方法
- 下一篇: 深度学习之七:卷积神经网络