深度学习(01)-- 基础学习
文章目錄
- 目錄
- 1. 深度學習基礎
- 1.1 深度學習總覽
- 1.2 深度網絡訓練過程
- 1.2.1 傳統神經網絡的訓練方法為什么不能用在深度神經網絡
- 1.2.2 deep learning訓練過程
- 1.3 數學知識:
- 2. 九種深度學習模型
- 2.1 受限玻爾茲曼機RBM
- 2.2 自編碼器AE(降維)
- 2.3 深層信念網絡DBN
- 2.4 深層玻爾茲曼機DBM
- 2.5 循環神經網絡RNN
- 2.6 卷積神經網絡CNN
- 2.7 其他模型
- 3. 深度學習的混合模型,廣泛應用和開發工具
目錄
1. 深度學習基礎
1.1 深度學習總覽
1.應用:計算機視覺、自然語言處理(NLP)
2.硬件:顯卡的處理器,GPU(圖形處理器)
3.流行:卷積神經網絡CNN、循環神經網絡RNN
4.框架:TensorFlow(Python)、Caffe(C++)
5.基礎:Hopefield網絡、玻爾茲曼機BM、限制玻爾茲曼機RBM
6.起因:淺層神經網絡可以近似任意函數,而高層可以綜合應用低層信息 ;低層關注局部,高層關注全局。
7.稀疏編碼:用幾個較少的基將信號表示出來,重復迭代的過程
8.訓練機制:layer-wise ;BP機制對于7層以上,殘差傳到最前面層很小,出現梯度擴散
1.2 深度網絡訓練過程
1.2.1 傳統神經網絡的訓練方法為什么不能用在深度神經網絡
BP算法作為傳統訓練多層網絡的典型算法,實際上對僅含幾層網絡,該訓練方法就已經很不理想。深度結構(涉及多個非線性處理單元層)非凸目標代價函數中普遍存在的局部最小是訓練困難的主要來源。
- BP算法存在的問題:
- 梯度越來越稀疏:從頂層越往下,誤差校正信號越來越小;
- 收斂到局部最小值:尤其是從遠離最優區域開始的時候(隨機值初始化會導致這種情況的發生);
- 一般,我們只能用有標簽的數據來訓練:但大部分的數據是沒標簽的,而大腦可以從沒有標簽的的數據中學習;
1.2.2 deep learning訓練過程
- 一是自底向上無監督預訓練:每次訓練一層網絡,逐層構建單層神經元
- 二是自頂向下有監督調優: 當所有層訓練完后,使用wake-sleep算法調優
無監督預訓練的過程==特征學習的過程
參考博客
1.3 數學知識:
矩陣論、概率論(貝葉斯公式)、信息論(熵)、概率圖模型
- 概率有向圖模型(貝葉斯網絡、信念網絡)
- 概率無向圖模型(馬爾可夫網絡、馬爾可夫隨機場)
- 部分有向無圈圖模型(鏈圖模型)
2. 九種深度學習模型
2.1 受限玻爾茲曼機RBM
2.2 自編碼器AE(降維)
2)AE學習算法
2.3 深層信念網絡DBN
1.初識深度信念網絡
深度信念網絡是一個概率生成模型,與傳統的判別模型的神經網絡相對,生成模型是建立一個觀察數據和標簽之間的聯合分布,對P(Observation|Label)和 P(Label|Observation)都做了評估,而判別模型僅僅而已評估了后者,也就是P(Label|Observation)。
DBNs由多個限制玻爾茲曼機(Restricted Boltzmann Machines)層組成,一個典型的網絡結構如圖1所示。這些網絡被“限制”為一個可視層和一個隱層,層間存在連接,但層內的單元間不存在連接。隱層單元被訓練去捕捉在可視層表現出來的高階數據的相關性。
圖1
2.需要面對的問題
對于在深度神經網絡應用傳統的BP算法的時候,DBN遇到了以下問題:
(1)需要為訓練提供一個有標簽的樣本集;
(2)學習過程較慢;
(3)不適當的參數選擇會導致學習收斂于局部最優解。
Solution:
首先,先不考慮最頂構成一個聯想記憶(associative memory)的兩層,一個DBN的連接是通過自頂向下的生成權值來指導確定的,RBMs就像一個建筑塊一樣,相比傳統和深度分層的sigmoid信念網絡,它能易于連接權值的學習。
最開始的時候,通過一個非監督貪婪逐層方法去預訓練獲得生成模型的權值,非監督貪婪逐層方法被Hinton證明是有效的,并被其稱為對比分歧(contrastive divergence)。
圖2
在這個訓練階段,在可視層會產生一個向量v,通過它將值傳遞到隱層。反過來,可視層的輸入會被隨機的選擇,以嘗試去重構原始的輸入信號。最后,這些新的可視的神經元激活單元將前向傳遞重構隱層激活單元,獲得h(在訓練過程中,首先將可視向量值映射給隱單元;然后可視單元由隱層單元重建;這些新可視單元再次映射給隱單元,這樣就獲取新的隱單元。執行這種反復步驟叫做吉布斯采樣)。這些后退和前進的步驟就是我們熟悉的Gibbs采樣,而隱層激活單元和可視層輸入之間的相關性差別就作為權值更新的主要依據。
訓練時間會顯著的減少,因為只需要單個步驟就可以接近最大似然學習。增加進網絡的每一層都會改進訓練數據的對數概率,我們可以理解為越來越接近能量的真實表達。這個有意義的拓展,和無標簽數據的使用,是任何一個深度學習應用的決定性的因素。
在最高兩層,權值被連接到一起,這樣更低層的輸出將會提供一個參考的線索或者關聯給頂層,這樣頂層就會將其聯系到它的記憶內容。而我們最關心的,最后想得到的就是判別性能,例如分類任務里面。
在預訓練后,DBN可以通過利用帶標簽數據用BP算法去對判別性能做調整。在這里,一個標簽集將被附加到頂層(推廣聯想記憶),通過一個自下向上的,學習到的識別權值獲得一個網絡的分類面。這個性能會比單純的BP算法訓練的網絡好。這可以很直觀的解釋,DBNs的BP算法只需要對權值參數空間進行一個局部的搜索,這相比前向神經網絡來說,訓練是要快的,而且收斂的時間也少。
3.詳細訓練算法流程
圖3
在訓練時, Hinton采用了逐層無監督的方法來學習參數。如圖3所示,首先把數據向量x和第一層隱藏層作為一個RBM, 訓練出這個RBM的參數(連接x和h1的權重, x和h1各個節點的偏置等等), 然后固定這個RBM的參數, 把h1視作可見向量, 把h2視作隱藏向量, 訓練第二個RBM, 得到其參數, 然后固定這些參數, 訓練h2和h3構成的RBM, 具體的訓練算法如下:
CD的訓練過程中用到了Gibbs 采樣,即在訓練過程中,首先將可視向量值映射給隱單元,然后用隱層單元重建可視向量,接著再將可視向量值映射給隱單元……反復執行這種步驟。
k-Gibbs的過程如下:
其中,P是model distribution,是training set distribution
DBN訓練算法:
DBN運用CD算法逐層進行訓練,得到每一層的參數Wi和ci用于初始化DBN,之后再用監督學習算法對參數進行微調。
4.經典網絡結構
經典的DBN網絡結構是由若干層 RBM 和一層 BP 組成的一種深層神經網絡, 結構如下圖4所示.
圖4
DBN 在訓練模型的過程中主要分為兩步:
第 1 步:分別單獨無監督地訓練每一層 RBM 網絡,確保特征向量映射到不同特征空間時,都盡可能多地保留特征信息;
第 2 步:在 DBN 的最后一層設置 BP 網絡,接收 RBM 的輸出特征向量作為它的輸入特征向量,有監督地訓練實體關系分類器.而且每一層 RBM 網絡只能確保自身層內的 權值對該層特征向量映射達到最優,并不是對整個 DBN 的特征向量映射達到最優,所以反向傳播網絡還將錯誤信息自頂向下傳播至每一層 RBM,微調整個 DBN 網絡.RBM 網絡訓練模型的過程可以看作對一個深層 BP 網絡權值參數的初始化,使DBN 克服了 BP 網絡因隨機初始化權值參數而容易陷入局部最優和訓練時間長的缺點.
上述訓練模型中第一步在深度學習的術語叫做預訓練,第二步叫做微調。最上面有監督學習的那一層,根據具體的應用領域可以換成任何分類器模型,而不必是BP網絡。
5.拓展
DBN的靈活性使得它的拓展比較容易。一個拓展就是卷積DBNs(Convolutional Deep Belief Networks(CDBN))。DBN并沒有考慮到圖像的2維結構信息,因為輸入是簡單的從一個圖像矩陣一維向量化的。而CDBN就是考慮到了這個問題,它利用鄰域像素的空域關系,通過一個稱為卷積RBM的模型區達到生成模型的變換不變性,而且可以容易得變換到高維圖像。DBN并沒有明確地處理對觀察變量的時間聯系的學習上,雖然目前已經有這方面的研究,例如堆疊時間RBMs,以此為推廣,有序列學習的dubbed temporal convolutionmachines,這種序列學習的應用,給語音信號處理問題帶來了一個讓人激動的未來研究方向。
目前,和DBN有關的研究包括堆疊自動編碼器,它是通過用堆疊自動編碼器來替換傳統DBN里面的RBM。這就使得可以通過同樣的規則來訓練產生深度多層神經網絡架構,但它缺少層的參數化的嚴格要求。與DBN不同,自動編碼器使用判別模型,這樣這個結構就很難采樣輸入采樣空間,這就使得網絡更難捕捉它的內部表達。但是,降噪自動編碼器卻能很好的避免這個問題,并且比傳統的DBN更優。它通過在訓練過程添加隨機的污染并堆疊產生場泛化性能。訓練單一的降噪自動編碼器的過程和RBM訓練生成模型的過程一樣。
2.4 深層玻爾茲曼機DBM
DBM生成學習算法
- DBM是概率無向圖模型,采用經過編輯的RBM進行逐層預訓練。
- 逐層預訓練完成后,通過權值減半處理,重新編輯成一個DBM,作為逐層預訓練的結果。
- 調優先采用平均場算法估計DBM的后驗概率。然后用類CD算法更新參數。
2.5 循環神經網絡RNN
2.6 卷積神經網絡CNN
2.7 其他模型
和積網絡SPN
深層堆疊網絡DSN
長短時記憶網絡LSTM
3. 深度學習的混合模型,廣泛應用和開發工具
總結
以上是生活随笔為你收集整理的深度学习(01)-- 基础学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐算法---FM,协同过滤
- 下一篇: 深度学习(莫烦 神经网络 lecture