午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

 解先生9808 2018-01-02

深度學(xué)習(xí)大熱以后各種模型層出不窮,很多朋友都在問到底什么是DNN、CNN和RNN,這么多個網(wǎng)絡(luò)到底有什么不同,作用各是什么,深度學(xué)習(xí)的主要分類是什么呀?

分享之前我還是要推薦下我自己創(chuàng)建的大數(shù)據(jù)學(xué)習(xí)資料分享群 232840209,這是全國最大的大數(shù)據(jù)學(xué)習(xí)交流的地方,2000人聚集,不管你是小白還是大牛,小編我都挺歡迎,今天的源碼已經(jīng)上傳到群文件,不定期分享干貨,包括我自己整理的一份最新的適合2017年學(xué)習(xí)的前端資料和零基礎(chǔ)入門教程,歡迎初學(xué)和進(jìn)階中的小伙伴。

深度學(xué)習(xí)大熱以后各種模型層出不窮,很多朋友都在問到底什么是DNN、CNN和RNN,這么多個網(wǎng)絡(luò)到底有什么不同,作用各是什么,深度學(xué)習(xí)的主要分類是什么呀?這些網(wǎng)絡(luò)cnn dbn dnm rnn是怎樣的關(guān)系?這個問題的機(jī)會,我也想介紹一下主流的神經(jīng)網(wǎng)絡(luò)模型。因?yàn)楦袷絾栴}和傳播原因,我把原回答內(nèi)容在這篇文章中再次向大家介紹。

在更詳細(xì)的介紹各種網(wǎng)絡(luò)前,首先說明:

大部分神經(jīng)網(wǎng)絡(luò)都可以用深度(depth)和連接結(jié)構(gòu)(connection)來定義,下面會具體情況具體分析。

籠統(tǒng)的說,神經(jīng)網(wǎng)絡(luò)也可以分為有監(jiān)督的神經(jīng)網(wǎng)絡(luò)和無/半監(jiān)督學(xué)習(xí),但其實(shí)往往是你中有我我中有你,不必死摳字眼。

有鑒于篇幅,只能粗略的科普一下這些非常相似的網(wǎng)絡(luò)以及應(yīng)用場景,具體的細(xì)節(jié)無法展開詳談,有機(jī)會在專欄中深入解析。

文章中介紹的網(wǎng)絡(luò)包括:

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

1. 有監(jiān)督的神經(jīng)網(wǎng)絡(luò)(Supervised Neural Networks)

1.1. 神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks)和深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks)

追根溯源的話,神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)模型是感知機(jī)(Perceptron),因此神經(jīng)網(wǎng)絡(luò)也可以叫做多層感知機(jī)(Multi-layer Perceptron),簡稱MLP。單層感知機(jī)叫做感知機(jī),多層感知機(jī)(MLP) 人工神經(jīng)網(wǎng)絡(luò)(ANN)。

那么多層到底是幾層?一般來說有1-2個隱藏層的神經(jīng)網(wǎng)絡(luò)就可以叫做多層,準(zhǔn)確的說是(淺層)神經(jīng)網(wǎng)絡(luò)(Shallow Neural Networks)。隨著隱藏層的增多,更深的神經(jīng)網(wǎng)絡(luò)(一般來說超過5層)就都叫做深度學(xué)習(xí)(DNN)。然而,“深度”只是一個商業(yè)概念,很多時候工業(yè)界把3層隱藏層也叫做“深度學(xué)習(xí)”,所以不要在層數(shù)上太較真。在機(jī)器學(xué)習(xí)領(lǐng)域的約定俗成是,名字中有深度(Deep)的網(wǎng)絡(luò)僅代表其有超過5-7層的隱藏層。

神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)指的是“神經(jīng)元”之間如何連接,它可以是任意深度。以下圖的3種不同結(jié)構(gòu)為例,我們可以看到連接結(jié)構(gòu)是非常靈活多樣的。

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

圖片來源:10 Misconceptions about Neural Networks

需要特別指出的是,卷積網(wǎng)絡(luò)(CNN)和循環(huán)網(wǎng)絡(luò)(RNN)一般不加Deep在名字中的原因是:它們的結(jié)構(gòu)一般都較深,因此不需要特別指明深度。想對比的,自編碼器(Auto Encoder)可以是很淺的網(wǎng)絡(luò),也可以很深。所以你會看到人們用Deep Auto Encoder來特別指明其深度。

應(yīng)用場景:全連接的前饋深度神經(jīng)網(wǎng)絡(luò)(Fully Connected Feed Forward Neural Networks),也就是DNN適用于大部分分類(Classification)任務(wù),比如數(shù)字識別等。但一般的現(xiàn)實(shí)場景中我們很少有那么大的數(shù)據(jù)量來支持DNN,所以純粹的全連接網(wǎng)絡(luò)應(yīng)用性并不是很強(qiáng)。

1. 2. 循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks)和遞歸神經(jīng)網(wǎng)絡(luò)(Recursive Neural Networks)

雖然很多時候我們把這兩種網(wǎng)絡(luò)都叫做RNN,但事實(shí)上這兩種網(wǎng)路的結(jié)構(gòu)事實(shí)上是不同的。而我們常常把兩個網(wǎng)絡(luò)放在一起的原因是:它們都可以處理有序列的問題,比如時間序列等。

舉個最簡單的例子,我們預(yù)測股票走勢用RNN就比普通的DNN效果要好,原因是股票走勢和時間相關(guān),今天的價格和昨天、上周、上個月都有關(guān)系。而RNN有“記憶”能力,可以“模擬”數(shù)據(jù)間的依賴關(guān)系(Dependency)。為了加強(qiáng)這種“記憶能力”,人們開發(fā)各種各樣的變形體,如非常著名的Long Short-term Memory(LSTM),用于解決“長期及遠(yuǎn)距離的依賴關(guān)系”。如下圖所示,左邊的小圖是最簡單版本的循環(huán)網(wǎng)絡(luò),而右邊是人們?yōu)榱嗽鰪?qiáng)記憶能力而開發(fā)的LSTM。

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

同理,另一個循環(huán)網(wǎng)絡(luò)的變種 – 雙向循環(huán)網(wǎng)絡(luò)(Bi-directional RNN)也是現(xiàn)階段自然語言處理和語音分析中的重要模型。開發(fā)雙向循環(huán)網(wǎng)絡(luò)的原因是語言/語音的構(gòu)成取決于上下文,即“現(xiàn)在”依托于“過去”和“未來”。單向的循環(huán)網(wǎng)絡(luò)僅著重于從“過去”推出“現(xiàn)在”,而無法對“未來”的依賴性有效的建模。

遞歸神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)不同,它的計算圖結(jié)構(gòu)是樹狀結(jié)構(gòu)而不是網(wǎng)狀結(jié)構(gòu)。遞歸循環(huán)網(wǎng)絡(luò)的目標(biāo)和循環(huán)網(wǎng)絡(luò)相似,也是希望解決數(shù)據(jù)之間的長期依賴問題。而且其比較好的特點(diǎn)是用樹狀可以降低序列的長度,從 降低到 ,熟悉數(shù)據(jù)結(jié)構(gòu)的朋友都不陌生。但和其他樹狀數(shù)據(jù)結(jié)構(gòu)一樣,如何構(gòu)造最佳的樹狀結(jié)構(gòu)如平衡樹/平衡二叉樹并不容易。

應(yīng)用場景:語音分析,文字分析,時間序列分析。主要的重點(diǎn)就是數(shù)據(jù)之間存在前后依賴關(guān)系,有序列關(guān)系。一般首選LSTM,如果預(yù)測對象同時取決于過去和未來,可以選擇雙向結(jié)構(gòu),如雙向LSTM。

1.3. 卷積網(wǎng)絡(luò)(Convolutional Neural Networks)

卷積網(wǎng)絡(luò)早已大名鼎鼎,從某種意義上也是為深度學(xué)習(xí)打下良好口碑的功臣。不僅如此,卷積網(wǎng)絡(luò)也是一個很好的計算機(jī)科學(xué)借鑒神經(jīng)科學(xué)的例子。卷積網(wǎng)絡(luò)的精髓其實(shí)就是在多個空間位置上共享參數(shù),據(jù)說我們的視覺系統(tǒng)也有相類似的模式。

首先簡單說什么是卷積。卷積運(yùn)算是一種數(shù)學(xué)計算,和矩陣相乘不同,卷積運(yùn)算可以實(shí)現(xiàn)稀疏相乘和參數(shù)共享,可以壓縮輸入端的維度。和普通DNN不同,CNN并不需要為每一個神經(jīng)元所對應(yīng)的每一個輸入數(shù)據(jù)提供單獨(dú)的權(quán)重。與池化(pooling)相結(jié)合,CNN可以被理解為一種公共特征的提取過程,不僅是CNN大部分神經(jīng)網(wǎng)絡(luò)都可以近似的認(rèn)為大部分神經(jīng)元都被用于特征提取。

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

以上圖為例,卷積、池化的過程將一張圖片的維度進(jìn)行了壓縮。從圖示上我們不難看出卷積網(wǎng)絡(luò)的精髓就是適合處理結(jié)構(gòu)化數(shù)據(jù),而該數(shù)據(jù)在跨區(qū)域上依然有關(guān)聯(lián)。

應(yīng)用場景:雖然我們一般都把CNN和圖片聯(lián)系在一起,但事實(shí)上CNN可以處理大部分格狀結(jié)構(gòu)化數(shù)據(jù)(Grid-like Data)。舉個例子,圖片的像素是二維的格狀數(shù)據(jù),時間序列在等時間上抽取相當(dāng)于一維的的格狀數(shù)據(jù),而視頻數(shù)據(jù)可以理解為對應(yīng)視頻幀寬度、高度、時間的三維數(shù)據(jù)。

2. 無監(jiān)督的預(yù)訓(xùn)練網(wǎng)絡(luò)(Unsupervised Pre-trained Neural Networks)

2.1. 深度生成模型(Deep Generative Models)

說到生成模型,大家一般想到的無監(jiān)督學(xué)習(xí)中的很多建模方法,比如擬合一個高斯混合模型或者使用貝葉斯模型。深度學(xué)習(xí)中的生成模型主要還是集中于想使用無監(jiān)督學(xué)習(xí)來幫助監(jiān)督學(xué)習(xí),畢竟監(jiān)督學(xué)習(xí)所需的標(biāo)簽代價往往很高…所以請大家不要較真我把這些方法放在了無監(jiān)督學(xué)習(xí)中。

2.1.1. 玻爾茲曼機(jī)(Boltzmann Machines)和受限玻爾茲曼機(jī)(Restricted Boltzmann Machines)

每次一提到玻爾茲曼機(jī)和受限玻爾茲曼機(jī)我其實(shí)都很頭疼。簡單的說,玻爾茲曼機(jī)是一個很漂亮的基于能量的模型,一般用最大似然法進(jìn)行學(xué)習(xí),而且還符合Hebb’s Rule這個生物規(guī)律。但更多的是適合理論推演,有相當(dāng)多的實(shí)際操作難度。

而受限玻爾茲曼機(jī)更加實(shí)際,它限定了其結(jié)構(gòu)必須是二分圖(Biparitite Graph)且隱藏層和可觀測層之間不可以相連接。此處提及RBM的原因是因?yàn)樗巧疃刃拍罹W(wǎng)絡(luò)的構(gòu)成要素之一。

應(yīng)用場景:實(shí)際工作中一般不推薦單獨(dú)使用RBM…

2.1.2. 深度信念網(wǎng)絡(luò)(Deep Belief Neural Networks)

DBN是祖師爺Hinton在06年提出的,主要有兩個部分: 1. 堆疊的受限玻爾茲曼機(jī)(Stacked RBM) 2. 一層普通的前饋網(wǎng)絡(luò)。

DBN最主要的特色可以理解為兩階段學(xué)習(xí),階段1用堆疊的RBM通過無監(jiān)督學(xué)習(xí)進(jìn)行預(yù)訓(xùn)練(Pre-train),階段2用普通的前饋網(wǎng)絡(luò)進(jìn)行微調(diào)。就像我上文提到的,神經(jīng)網(wǎng)絡(luò)的精髓就是進(jìn)行特征提取。和后文將提到的自動編碼器相似,我們期待堆疊的RBF有數(shù)據(jù)重建能力,及輸入一些數(shù)據(jù)經(jīng)過RBF我們還可以重建這些數(shù)據(jù),這代表我們學(xué)到了這些數(shù)據(jù)的重要特征。

將RBF堆疊的原因就是將底層RBF學(xué)到的特征逐漸傳遞的上層的RBF上,逐漸抽取復(fù)雜的特征。比如下圖從左到右就可以是低層RBF學(xué)到的特征到高層RBF學(xué)到的復(fù)雜特征。在得到這些良好的特征后就可以用第二部分的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

多說一句,特征抽取并重建的過程不僅可以用堆疊的RBM,也可以用后文介紹的自編碼器。

應(yīng)用場景:現(xiàn)在來說DBN更多是了解深度學(xué)習(xí)“哲學(xué)”和“思維模式”的一個手段,在實(shí)際應(yīng)用中還是推薦CNN/RNN等,類似的深度玻爾茲曼機(jī)也有類似的特性但工業(yè)界使用較少。

2.1.3. 生成式對抗網(wǎng)絡(luò)(Generative Adversarial Networks)

生成式對抗網(wǎng)絡(luò)用無監(jiān)督學(xué)習(xí)同時訓(xùn)練兩個模型,內(nèi)核哲學(xué)取自于博弈論…

簡單的說,GAN訓(xùn)練兩個網(wǎng)絡(luò):1. 生成網(wǎng)絡(luò)用于生成圖片使其與訓(xùn)練數(shù)據(jù)相似 2. 判別式網(wǎng)絡(luò)用于判斷生成網(wǎng)絡(luò)中得到的圖片是否是真的是訓(xùn)練數(shù)據(jù)還是偽裝的數(shù)據(jù)。生成網(wǎng)絡(luò)一般有逆卷積層(deconvolutional layer)而判別網(wǎng)絡(luò)一般就是上文介紹的CNN。自古紅藍(lán)出CP,下圖左邊是生成網(wǎng)絡(luò),右邊是判別網(wǎng)絡(luò),相愛相殺。

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

熟悉博弈論的朋友都知道零和游戲(zero-sum game)會很難得到優(yōu)化方程,或很難優(yōu)化,GAN也不可避免這個問題。但有趣的是,GAN的實(shí)際表現(xiàn)比我們預(yù)期的要好,而且所需的參數(shù)也遠(yuǎn)遠(yuǎn)按照正常方法訓(xùn)練神經(jīng)網(wǎng)絡(luò),可以更加有效率的學(xué)到數(shù)據(jù)的分布。

另一個常常被放在GAN一起討論的模型叫做變分自編碼器(Variational Auto-encoder),有興趣的讀者可以自己搜索。

應(yīng)用場景:現(xiàn)階段的GAN還主要是在圖像領(lǐng)域比較流行,但很多人都認(rèn)為它有很大的潛力大規(guī)模推廣到聲音、視頻領(lǐng)域。

2.2. 自編碼器(Auto-encoder)

自編碼器是一種從名字上完全看不出和神經(jīng)網(wǎng)絡(luò)有什么關(guān)系的無監(jiān)督神經(jīng)網(wǎng)絡(luò),而且從名字上看也很難猜測其作用。讓我們看一幅圖了解它的工作原理…

深度學(xué)習(xí)大熱以后各種模型層出不窮,主流的深度學(xué)習(xí)模型有哪些?

如上圖所示,Autoencoder主要有2個部分:1. 編碼器(Encoder) 2. 解碼器(Decoder)。我們將輸入(圖片2)從左端輸入后,經(jīng)過了編碼器和解碼器,我們得到了輸出….一個2。但事實(shí)上我們真正學(xué)習(xí)到是中間的用紅色標(biāo)注的部分,即數(shù)在低維度的壓縮表示。評估自編碼器的方法是重建誤差,即輸出的那個數(shù)字2和原始輸入的數(shù)字2之間的差別,當(dāng)然越小越好。

和主成分分析(PCA)類似,自編碼器也可以用來進(jìn)行數(shù)據(jù)壓縮(Data Compression),從原始數(shù)據(jù)中提取最重要的特征。認(rèn)真的讀者應(yīng)該已經(jīng)發(fā)現(xiàn)輸入的那個數(shù)字2和輸出的數(shù)字2略有不同,這是因?yàn)閿?shù)據(jù)壓縮中的損失,非常正常。

應(yīng)用場景:主要用于降維(Dimension Reduction),這點(diǎn)和PCA比較類似。同時也有專門用于去除噪音還原原始數(shù)據(jù)的去噪編碼器(Denoising Auto-encoder)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多