薦語文章列舉出了近年來深度學(xué)習(xí)的重要研究成果,從方法、架構(gòu),以及正則化、優(yōu)化技術(shù)方面進行概述。對于剛?cè)腴T的深度學(xué)習(xí)新手是一份不錯的參考資料,在形成基本學(xué)術(shù)界圖景、指導(dǎo)文獻查找等方面都能提供幫助。
摘要:深度學(xué)習(xí)是機器學(xué)習(xí)和人工智能研究的最新趨勢之一。它也是當(dāng)今最流行的科學(xué)研究趨勢之一。深度學(xué)習(xí)方法為計算機視覺和機器學(xué)習(xí)帶來了革命性的進步。新的深度學(xué)習(xí)技術(shù)正在不斷誕生,超越最先進的機器學(xué)習(xí)甚至是現(xiàn)有的深度學(xué)習(xí)技術(shù)。近年來,全世界在這一領(lǐng)域取得了許多重大突破。由于深度學(xué)習(xí)正快度發(fā)展,導(dǎo)致了它的進展很難被跟進,特別是對于新的研究者。在本文中,我們將簡要討論近年來關(guān)于深度學(xué)習(xí)的最新進展。
引言
「深度學(xué)習(xí)」(DL)一詞最初在 1986 被引入機器學(xué)習(xí)(ML),后來在 2000 年時被用于人工神經(jīng)網(wǎng)絡(luò)(ANN)。深度學(xué)習(xí)方法由多個層組成,以學(xué)習(xí)具有多個抽象層次的數(shù)據(jù)特征。DL 方法允許計算機通過相對簡單的概念來學(xué)習(xí)復(fù)雜的概念。對于人工神經(jīng)網(wǎng)絡(luò)(ANN),深度學(xué)習(xí)(DL)(也稱為分層學(xué)習(xí)(Hierarchical Learning))是指在多個計算階段中精確地分配信用,以轉(zhuǎn)換網(wǎng)絡(luò)中的聚合激活。為了學(xué)習(xí)復(fù)雜的功能,深度架構(gòu)被用于多個抽象層次,即非線性操作;例如 ANNs,具有許多隱藏層。用準(zhǔn)確的話總結(jié)就是,深度學(xué)習(xí)是機器學(xué)習(xí)的一個子領(lǐng)域,它使用了多層次的非線性信息處理和抽象,用于有監(jiān)督或無監(jiān)督的特征學(xué)習(xí)、表示、分類和模式識別。
深度學(xué)習(xí)即表征學(xué)習(xí)是機器學(xué)習(xí)的一個分支或子領(lǐng)域,大多數(shù)人認為近代深度學(xué)習(xí)方法是從 2006 開始發(fā)展起來的。本文是關(guān)于最新的深度學(xué)習(xí)技術(shù)的綜述,主要推薦給即將涉足該領(lǐng)域的研究者。本文包括 DL 的基本思想、主要方法、最新進展以及應(yīng)用。
綜述論文是非常有益的,特別是對某一特定領(lǐng)域的新研究人員。一個研究領(lǐng)域如果在不久的將來及相關(guān)應(yīng)用領(lǐng)域中有很大的價值,那通常很難被實時跟蹤到最新進展。現(xiàn)在,科學(xué)研究是一個很有吸引力的職業(yè),因為知識和教育比以往任何時候都更容易分享和獲得。對于一種技術(shù)研究的趨勢來說,唯一正常的假設(shè)是它會在各個方面有很多的改進。幾年前對某個領(lǐng)域的概述,現(xiàn)在可能已經(jīng)過時了。
考慮到近年來深度學(xué)習(xí)的普及和推廣,我們簡要概述了深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)(NN),以及它的主要進展和幾年來的重大突破。我們希望這篇文章將幫助許多新手研究者在這一領(lǐng)域全面了解最近的深度學(xué)習(xí)的研究和技術(shù),并引導(dǎo)他們以正確的方式開始。同時,我們希望通過這項工作,向這個時代的頂級 DL 和 ANN 研究者們致敬:Geoffrey Hinton(Hinton)、Juergen Schmidhuber(Schmidhuber)、Yann LeCun(LeCun)、Yoshua Bengio(Bengio)和許多其他研究學(xué)者,他們的研究構(gòu)建了現(xiàn)代人工智能(AI)。跟進他們的工作,以追蹤當(dāng)前最佳的 DL 和 ML 研究進展對我們來說也至關(guān)重要。
在本論文中,我們首先簡述過去的研究論文,對深度學(xué)習(xí)的模型和方法進行研究。然后,我們將開始描述這一領(lǐng)域的最新進展。我們將討論深度學(xué)習(xí)(DL)方法、深度架構(gòu)(即深度神經(jīng)網(wǎng)絡(luò)(DNN))和深度生成模型(DGM),其次是重要的正則化和優(yōu)化方法。此外,用兩個簡短的部分對于開源的 DL 框架和重要的 DL 應(yīng)用進行總結(jié)。我們將在最后兩個章節(jié)(即討論和結(jié)論)中討論深入學(xué)習(xí)的現(xiàn)狀和未來。
最近所有關(guān)于深度學(xué)習(xí)(DL)的論文都從多個角度討論了深度學(xué)習(xí)重點。這對 DL 的研究人員來說是非常有必要的。然而,DL 目前是一個蓬勃發(fā)展的領(lǐng)域。在最近的 DL 概述論文發(fā)表之后,仍有許多新的技術(shù)和架構(gòu)被提出。此外,以往的論文從不同的角度進行研究。我們的論文主要是針對剛進入這一領(lǐng)域的學(xué)習(xí)者和新手。為此,我們將努力為新研究人員和任何對這一領(lǐng)域感興趣的人提供一個深度學(xué)習(xí)的基礎(chǔ)和清晰的概念。
最新進展
在本節(jié)中,我們將討論最近從機器學(xué)習(xí)和人工神經(jīng)網(wǎng)絡(luò) (ANN) 的中衍生出來的主要深度學(xué)習(xí) (DL) 方法,人工神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)最常用的形式。
3.1 深度架構(gòu)的演變
人工神經(jīng)網(wǎng)絡(luò) (ANN) 已經(jīng)取得了長足的進步,同時也帶來了其他的深度模型。第一代人工神經(jīng)網(wǎng)絡(luò)由簡單的感知器神經(jīng)層組成,只能進行有限的簡單計算。第二代使用反向傳播,根據(jù)錯誤率更新神經(jīng)元的權(quán)重。然后支持向量機 (SVM) 浮出水面,在一段時間內(nèi)超越 ANN。為了克服反向傳播的局限性,人們提出了受限玻爾茲曼機(RBM),使學(xué)習(xí)更容易。此時其他技術(shù)和神經(jīng)網(wǎng)絡(luò)也出現(xiàn)了,如前饋神經(jīng)網(wǎng)絡(luò) (FNN)、卷積神經(jīng)網(wǎng)絡(luò) (CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 等,以及深層信念網(wǎng)絡(luò)、自編碼器等。從那時起,為實現(xiàn)各種用途,ANN 在不同方面得到了改進和設(shè)計。
Schmidhuber (2014)、Bengio (2009)、Deng 和 Yu (2014)、Goodfellow 等人 (2016)、Wang 等人 (2017) 對深度神經(jīng)網(wǎng)絡(luò) (DNN) 的進化和歷史以及深度學(xué)習(xí) (DL) 進行了詳細的概述。在大多數(shù)情況下,深層架構(gòu)是簡單架構(gòu)的多層非線性重復(fù),這樣可從輸入中獲得高度復(fù)雜的函數(shù)。
深度學(xué)習(xí)方法
深度神經(jīng)網(wǎng)絡(luò)在監(jiān)督學(xué)習(xí)中取得了巨大的成功。此外,深度學(xué)習(xí)模型在無監(jiān)督、混合和強化學(xué)習(xí)方面也非常成功。
4.1 深度監(jiān)督學(xué)習(xí)
監(jiān)督學(xué)習(xí)應(yīng)用在當(dāng)數(shù)據(jù)標(biāo)記、分類器分類或數(shù)值預(yù)測的情況。LeCun 等人 (2015) 對監(jiān)督學(xué)習(xí)方法以及深層結(jié)構(gòu)的形成給出了一個精簡的解釋。Deng 和 Yu(2014) 提到了許多用于監(jiān)督和混合學(xué)習(xí)的深度網(wǎng)絡(luò),并做出解釋,例如深度堆棧網(wǎng)絡(luò) (DSN) 及其變體。Schmidthuber(2014) 的研究涵蓋了所有神經(jīng)網(wǎng)絡(luò),從早期神經(jīng)網(wǎng)絡(luò)到最近成功的卷積神經(jīng)網(wǎng)絡(luò) (CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)、長短期記憶 (LSTM) 及其改進。
4.2 深度無監(jiān)督學(xué)習(xí)
當(dāng)輸入數(shù)據(jù)沒有標(biāo)記時,可應(yīng)用無監(jiān)督學(xué)習(xí)方法從數(shù)據(jù)中提取特征并對其進行分類或標(biāo)記。LeCun 等人 (2015) 預(yù)測了無監(jiān)督學(xué)習(xí)在深度學(xué)習(xí)中的未來。Schmidthuber(2014) 也描述了無監(jiān)督學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)。Deng 和 Yu(2014) 簡要介紹了無監(jiān)督學(xué)習(xí)的深度架構(gòu),并詳細解釋了深度自編碼器。
4.3 深度強化學(xué)習(xí)
強化學(xué)習(xí)使用獎懲系統(tǒng)預(yù)測學(xué)習(xí)模型的下一步。這主要用于游戲和機器人,解決平常的決策問題。Schmidthuber(2014) 描述了強化學(xué)習(xí) (RL) 中深度學(xué)習(xí)的進展,以及深度前饋神經(jīng)網(wǎng)絡(luò) (FNN) 和循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 在 RL 中的應(yīng)用。Li(2017) 討論了深度強化學(xué)習(xí) (Deep Reinforcement Learning, DRL)、它的架構(gòu) (例如 Deep Q-Network, DQN) 以及在各個領(lǐng)域的應(yīng)用。
Mnih 等人 (2016) 提出了一種利用異步梯度下降進行 DNN 優(yōu)化的 DRL 框架。
van Hasselt 等人 (2015) 提出了一種使用深度神經(jīng)網(wǎng)絡(luò) (deep neural network, DNN) 的 DRL 架構(gòu)。
深度神經(jīng)網(wǎng)絡(luò)
在本節(jié)中,我們將簡要地討論深度神經(jīng)網(wǎng)絡(luò) (DNN),以及它們最近的改進和突破。神經(jīng)網(wǎng)絡(luò)的功能與人腦相似。它們主要由神經(jīng)元和連接組成。當(dāng)我們說深度神經(jīng)網(wǎng)絡(luò)時,我們可以假設(shè)有相當(dāng)多的隱藏層,可以用來從輸入中提取特征和計算復(fù)雜的函數(shù)。Bengio(2009) 解釋了深度結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),如卷積神經(jīng)網(wǎng)絡(luò) (CNN)、自編碼器 (AE) 等及其變體。Deng 和 Yu(2014) 詳細介紹了一些神經(jīng)網(wǎng)絡(luò)架構(gòu),如 AE 及其變體。Goodfellow 等 (2016) 對深度前饋網(wǎng)絡(luò)、卷積網(wǎng)絡(luò)、遞歸網(wǎng)絡(luò)及其改進進行了介紹和技巧性講解。Schmidhuber(2014) 提到了神經(jīng)網(wǎng)絡(luò)從早期神經(jīng)網(wǎng)絡(luò)到最近成功技術(shù)的完整歷史。
5.1 深度自編碼器
自編碼器 (AE) 是神經(jīng)網(wǎng)絡(luò) (NN),其中輸出即輸入。AE 采用原始輸入,編碼為壓縮表示,然后解碼以重建輸入。在深度 AE 中,低隱藏層用于編碼,高隱藏層用于解碼,誤差反向傳播用于訓(xùn)練。。
5.1.1 變分自編碼器
變分自動編碼器 (VAE) 可以算作解碼器。VAE 建立在標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)上,可以通過隨機梯度下降訓(xùn)練 (Doersch,2016)。
5.1.2 多層降噪自編碼器
在早期的自編碼器 (AE) 中,編碼層的維度比輸入層小(窄)。在多層降噪自編碼器 (SDAE) 中,編碼層比輸入層寬 (Deng and Yu, 2014)。
5.1.3 變換自編碼器
深度自動編碼器 (DAE) 可以是轉(zhuǎn)換可變的,也就是從多層非線性處理中提取的特征可以根據(jù)學(xué)習(xí)者的需要而改變。變換自編碼器 (TAE) 既可以使用輸入向量,也可以使用目標(biāo)輸出向量來應(yīng)用轉(zhuǎn)換不變性屬性,將代碼引導(dǎo)到期望的方向 (Deng and Yu,2014)。
5.2 深度卷積神經(jīng)網(wǎng)絡(luò)
四種基本思想構(gòu)成了卷積神經(jīng)網(wǎng)絡(luò) (CNN),即:局部連接、共享權(quán)重、池化和多層使用。CNN 的第一部分由卷積層和池化層組成,后一部分主要是全連接層。卷積層檢測特征的局部連接,池層將相似的特征合并為一個。CNN 在卷積層中使用卷積而不是矩陣乘法。
Krizhevsky 等人 (2012) 提出了一種深度卷積神經(jīng)網(wǎng)絡(luò) (CNN) 架構(gòu),也稱為 AlexNet,這是深度學(xué)習(xí) (Deep Learning, DL) 的一個重大突破。網(wǎng)絡(luò)由 5 個卷積層和 3 個全連接層組成。該架構(gòu)采用圖形處理單元 (GPU) 進行卷積運算,采用線性整流函數(shù) (ReLU) 作為激活函數(shù),用 Dropout 來減少過擬合。
Iandola 等人 (2016) 提出了一個小型的 CNN 架構(gòu),叫做「SqueezeNet」。
Szegedy 等人 (2014) 提出了一種深度 CNN 架構(gòu),名為 Inception。Dai 等人 (2017) 提出了對 Inception-ResNet 的改進。
Redmon 等人 (2015) 提出了一個名為 YOLO (You Only Look Once) 的 CNN 架構(gòu),用于均勻和實時的目標(biāo)檢測。
Zeiler 和 Fergus (2013) 提出了一種將 CNN 內(nèi)部激活可視化的方法。
Gehring 等人 (2017) 提出了一種用于序列到序列學(xué)習(xí)的 CNN 架構(gòu)。
Bansal 等人 (2017) 提出了 PixelNet,使用像素來表示。
Goodfellow 等人 (2016) 解釋了 CNN 的基本架構(gòu)和思想。Gu 等人 (2015) 對 CNN 的最新進展、CNN 的多種變體、CNN 的架構(gòu)、正則化方法和功能以及在各個領(lǐng)域的應(yīng)用進行了很好的概述。
5.2.1 深度最大池化卷積神經(jīng)網(wǎng)絡(luò)
最大池化卷積神經(jīng)網(wǎng)絡(luò) (MPCNN) 主要對卷積和最大池化進行操作,特別是在數(shù)字圖像處理中。MPCNN 通常由輸入層以外的三種層組成。卷積層獲取輸入圖像并生成特征圖,然后應(yīng)用非線性激活函數(shù)。最大池層向下采樣圖像,并保持子區(qū)域的最大值。全連接層進行線性乘法。在深度 MPCNN 中,在輸入層之后周期性地使用卷積和混合池化,然后是全連接層。
5.2.2 極深的卷積神經(jīng)網(wǎng)絡(luò)
Simonyan 和 Zisserman(2014) 提出了非常深層的卷積神經(jīng)網(wǎng)絡(luò) (VDCNN) 架構(gòu),也稱為 VGG Net。VGG Net 使用非常小的卷積濾波器,深度達到 16-19 層。Conneau 等人 (2016) 提出了另一種文本分類的 VDCNN 架構(gòu),使用小卷積和池化。他們聲稱這個 VDCNN 架構(gòu)是第一個在文本處理中使用的,它在字符級別上起作用。該架構(gòu)由 29 個卷積層組成。
5.3 網(wǎng)絡(luò)中的網(wǎng)絡(luò)
Lin 等人 (2013) 提出了網(wǎng)絡(luò)中的網(wǎng)絡(luò) (Network In Network,NIN)。NIN 以具有復(fù)雜結(jié)構(gòu)的微神經(jīng)網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)卷積神經(jīng)網(wǎng)絡(luò) (CNN) 的卷積層。它使用多層感知器 (MLPConv) 處理微神經(jīng)網(wǎng)絡(luò)和全局平均池化層,而不是全連接層。深度 NIN 架構(gòu)可以由 NIN 結(jié)構(gòu)的多重疊加組成。
5.4 基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)
Girshick 等人 (2014) 提出了基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò) (R-CNN),使用區(qū)域進行識別。R-CNN 使用區(qū)域來定位和分割目標(biāo)。該架構(gòu)由三個模塊組成:定義了候選區(qū)域的集合的類別獨立區(qū)域建議,從區(qū)域中提取特征的大型卷積神經(jīng)網(wǎng)絡(luò) (CNN),以及一組類特定的線性支持向量機 (SVM)。
5.4.1 Fast R-CNN
Girshick(2015) 提出了快速的基于區(qū)域的卷積網(wǎng)絡(luò) (Fast R-CNN)。這種方法利用 R-CNN 架構(gòu)能快速地生成結(jié)果。Fast R-CNN 由卷積層和池化層、區(qū)域建議層和一系列全連接層組成。
5.4.2 Faster R-CNN
Ren 等人 (2015) 提出了更快的基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò) (Faster R-CNN),它使用區(qū)域建議網(wǎng)絡(luò) (Region Proposal Network, RPN) 進行實時目標(biāo)檢測。RPN 是一個全卷積網(wǎng)絡(luò),能夠準(zhǔn)確、高效地生成區(qū)域建議 (Ren et al.,2015)。
5.4.3 Mask R-CNN
何愷明等人 (2017) 提出了基于區(qū)域的掩模卷積網(wǎng)絡(luò) (Mask R-CNN) 實例目標(biāo)分割。Mask R-CNN 擴展了 R-CNN 的架構(gòu),并使用一個額外的分支用于預(yù)測目標(biāo)掩模。
5.4.4 Multi-Expert R-CNN
Lee 等人 (2017) 提出了基于區(qū)域的多專家卷積神經(jīng)網(wǎng)絡(luò) (ME R-CNN),利用了 Fast R-CNN 架構(gòu)。ME R-CNN 從選擇性和詳盡的搜索中生成興趣區(qū)域 (RoI)。它也使用 per-RoI 多專家網(wǎng)絡(luò)而不是單一的 per-RoI 網(wǎng)絡(luò)。每個專家都是來自 Fast R-CNN 的全連接層的相同架構(gòu)。
5.5 深度殘差網(wǎng)絡(luò)
He 等人 (2015) 提出的殘差網(wǎng)絡(luò) (ResNet) 由 152 層組成。ResNet 具有較低的誤差,并且容易通過殘差學(xué)習(xí)進行訓(xùn)練。更深層次的 ResNet 可以獲得更好的性能。在深度學(xué)習(xí)領(lǐng)域,人們認為 ResNet 是一個重要的進步。
5.5.1 Resnet in Resnet
Targ 等人 (2016) 在 Resnet in Resnet (RiR) 中提出將 ResNets 和標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò) (CNN) 結(jié)合到深層雙流架構(gòu)中。
5.5.2 ResNeXt
Xie 等人 (2016) 提出了 ResNeXt 架構(gòu)。ResNext 利用 ResNets 來重復(fù)使用分割-轉(zhuǎn)換-合并策略。
5.6 膠囊網(wǎng)絡(luò)
Sabour 等人 (2017) 提出了膠囊網(wǎng)絡(luò) (CapsNet),即一個包含兩個卷積層和一個全連接層的架構(gòu)。CapsNet 通常包含多個卷積層,膠囊層位于末端。CapsNet 被認為是深度學(xué)習(xí)的最新突破之一,因為據(jù)說這是基于卷積神經(jīng)網(wǎng)絡(luò)的局限性而提出的。它使用的是一層又一層的膠囊,而不是神經(jīng)元。激活的較低級膠囊做出預(yù)測,在同意多個預(yù)測后,更高級的膠囊變得活躍。在這些膠囊層中使用了一種協(xié)議路由機制。Hinton 之后提出 EM 路由,利用期望最大化 (EM) 算法對 CapsNet 進行了改進。
5.7 循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 更適合于序列輸入,如語音、文本和生成序列。一個重復(fù)的隱藏單元在時間展開時可以被認為是具有相同權(quán)重的非常深的前饋網(wǎng)絡(luò)。由于梯度消失和維度爆炸問題,RNN 曾經(jīng)很難訓(xùn)練。為了解決這個問題,后來許多人提出了改進意見。
Goodfellow 等人 (2016) 詳細分析了循環(huán)和遞歸神經(jīng)網(wǎng)絡(luò)和架構(gòu)的細節(jié),以及相關(guān)的門控和記憶網(wǎng)絡(luò)。
Karpathy 等人 (2015) 使用字符級語言模型來分析和可視化預(yù)測、表征訓(xùn)練動態(tài)、RNN 及其變體 (如 LSTM) 的錯誤類型等。
J′ozefowicz 等人 (2016) 探討了 RNN 模型和語言模型的局限性。
5.7.1 RNN-EM
Peng 和 Yao(2015) 提出了利用外部記憶 (RNN-EM) 來改善 RNN 的記憶能力。他們聲稱在語言理解方面達到了最先進的水平,比其他 RNN 更好。
5.7.2 GF-RNN
Chung 等 (2015) 提出了門控反饋遞歸神經(jīng)網(wǎng)絡(luò) (GF-RNN),它通過將多個遞歸層與全局門控單元疊加來擴展標(biāo)準(zhǔn)的 RNN。
5.7.3 CRF-RNN
Zheng 等人 (2015) 提出條件隨機場作為循環(huán)神經(jīng)網(wǎng)絡(luò) (CRF-RNN),其將卷積神經(jīng)網(wǎng)絡(luò) (CNN) 和條件隨機場 (CRF) 結(jié)合起來進行概率圖形建模。
5.7.4 Quasi-RNN
Bradbury 等人 (2016) 提出了用于神經(jīng)序列建模和沿時間步的并行應(yīng)用的準(zhǔn)循環(huán)神經(jīng)網(wǎng)絡(luò) (QRNN)。
5.8 記憶網(wǎng)絡(luò)
Weston 等人 (2014) 提出了問答記憶網(wǎng)絡(luò) (QA)。記憶網(wǎng)絡(luò)由記憶、輸入特征映射、泛化、輸出特征映射和響應(yīng)組成。
5.8.1 動態(tài)記憶網(wǎng)絡(luò)
Kumar 等人 (2015) 提出了用于 QA 任務(wù)的動態(tài)記憶網(wǎng)絡(luò) (DMN)。DMN 有四個模塊:輸入、問題、情景記憶、輸出。
5.9 增強神經(jīng)網(wǎng)絡(luò)
Olah 和 Carter(2016) 很好地展示了注意力和增強循環(huán)神經(jīng)網(wǎng)絡(luò),即神經(jīng)圖靈機 (NTM)、注意力接口、神經(jīng)編碼器和自適應(yīng)計算時間。增強神經(jīng)網(wǎng)絡(luò)通常是使用額外的屬性,如邏輯函數(shù)以及標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)架構(gòu)。
5.9.1 神經(jīng)圖靈機
Graves 等人 (2014) 提出了神經(jīng)圖靈機 (NTM) 架構(gòu),由神經(jīng)網(wǎng)絡(luò)控制器和記憶庫組成。NTM 通常將 RNN 與外部記憶庫結(jié)合。
5.9.2 神經(jīng) GPU
Kaiser 和 Sutskever(2015) 提出了神經(jīng) GPU,解決了 NTM 的并行問題。
5.9.3 神經(jīng)隨機存取機
Kurach 等人 (2015) 提出了神經(jīng)隨機存取機,它使用外部的可變大小的隨機存取存儲器。
5.9.4 神經(jīng)編程器
Neelakantan 等人 (2015) 提出了神經(jīng)編程器,一種具有算術(shù)和邏輯功能的增強神經(jīng)網(wǎng)絡(luò)。
5.9.5 神經(jīng)編程器-解釋器
Reed 和 de Freitas(2015) 提出了可以學(xué)習(xí)的神經(jīng)編程器-解釋器 (NPI)。NPI 包括周期性內(nèi)核、程序內(nèi)存和特定于領(lǐng)域的編碼器。
5.10 長短期記憶網(wǎng)絡(luò)
Hochreiter 和 Schmidhuber(1997) 提出了長短期記憶 (Long short - Short-Term Memory, LSTM),克服了循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 的誤差回流問題。LSTM 是基于循環(huán)網(wǎng)絡(luò)和基于梯度的學(xué)習(xí)算法,LSTM 引入自循環(huán)產(chǎn)生路徑,使得梯度能夠流動。
Greff 等人 (2017) 對標(biāo)準(zhǔn) LSTM 和 8 個 LSTM 變體進行了大規(guī)模分析,分別用于語音識別、手寫識別和復(fù)調(diào)音樂建模。他們聲稱 LSTM 的 8 個變種沒有顯著改善,而只有標(biāo)準(zhǔn) LSTM 表現(xiàn)良好。
Shi 等人 (2016b) 提出了深度長短期記憶網(wǎng)絡(luò) (DLSTM),它是一個 LSTM 單元的堆棧,用于特征映射學(xué)習(xí)表示。
5.10.1 批-歸一化 LSTM
Cooijmans 等人 (2016) 提出了批-歸一化 LSTM (BN-LSTM),它對遞歸神經(jīng)網(wǎng)絡(luò)的隱藏狀態(tài)使用批-歸一化。
5.10.2 Pixel RNN
van den Oord 等人 (2016b) 提出像素遞歸神經(jīng)網(wǎng)絡(luò) (Pixel-RNN),由 12 個二維 LSTM 層組成。
5.10.3 雙向 LSTM
W¨ollmer 等人 (2010) 提出了雙向 LSTM(BLSTM) 的循環(huán)網(wǎng)絡(luò)與動態(tài)貝葉斯網(wǎng)絡(luò) (DBN) 一起用于上下文敏感關(guān)鍵字檢測。
5.10.4 Variational Bi-LSTM
Shabanian 等人 (2017) 提出了變分雙向 LSTM(Variational Bi-LSTM),它是雙向 LSTM 體系結(jié)構(gòu)的變體。Variational Bi-LSTM 使用變分自編碼器 (VAE) 在 LSTM 之間創(chuàng)建一個信息交換通道,以學(xué)習(xí)更好的表征。
5.11 谷歌神經(jīng)機器翻譯
Wu 等人 (2016) 提出了名為谷歌神經(jīng)機器翻譯 (GNMT) 的自動翻譯系統(tǒng),該系統(tǒng)結(jié)合了編碼器網(wǎng)絡(luò)、解碼器網(wǎng)絡(luò)和注意力網(wǎng)絡(luò),遵循共同的序列對序列 (sequence-to-sequence) 的學(xué)習(xí)框架。
5.12 Fader Network
Lample 等人 (2017) 提出了 Fader 網(wǎng)絡(luò),這是一種新型的編碼器-解碼器架構(gòu),通過改變屬性值來生成真實的輸入圖像變化。
5.13 超網(wǎng)絡(luò)
Ha 等人 (2016) 提出的超網(wǎng)絡(luò)(Hyper Networks)為其他神經(jīng)網(wǎng)絡(luò)生成權(quán)值,如靜態(tài)超網(wǎng)絡(luò)卷積網(wǎng)絡(luò)、用于循環(huán)網(wǎng)絡(luò)的動態(tài)超網(wǎng)絡(luò)。
Deutsch(2018) 使用超網(wǎng)絡(luò)生成神經(jīng)網(wǎng)絡(luò)。
5.14 Highway Networks
Srivastava 等人 (2015) 提出了高速路網(wǎng)絡(luò)(Highway Networks),通過使用門控單元來學(xué)習(xí)管理信息。跨多個層次的信息流稱為信息高速路。
5.14.1 Recurrent Highway Networks
Zilly 等人 (2017) 提出了循環(huán)高速路網(wǎng)絡(luò) (Recurrent Highway Networks,RHN),它擴展了長短期記憶 (LSTM) 架構(gòu)。RHN 在周期性過渡中使用了 Highway 層。
5.15 Highway LSTM RNN
Zhang 等人 (2016) 提出了高速路長短期記憶 (high - Long short Memory, HLSTM) RNN,它在相鄰層的內(nèi)存單元之間擴展了具有封閉方向連接 (即 Highway) 的深度 LSTM 網(wǎng)絡(luò)。
5.16 長期循環(huán) CNN
Donahue 等人 (2014) 提出了長期循環(huán)卷積網(wǎng)絡(luò) (LRCN),它使用 CNN 進行輸入,然后使用 LSTM 進行遞歸序列建模并生成預(yù)測。
5.17 深度神經(jīng) SVM
Zhang 等人 (2015) 提出了深度神經(jīng) SVM(DNSVM),它以支持向量機 (Support Vector Machine, SVM) 作為深度神經(jīng)網(wǎng)絡(luò) (Deep Neural Network, DNN) 分類的頂層。
5.18 卷積殘差記憶網(wǎng)絡(luò)
Moniz 和 Pal(2016) 提出了卷積殘差記憶網(wǎng)絡(luò),將記憶機制并入卷積神經(jīng)網(wǎng)絡(luò) (CNN)。它用一個長短期記憶機制來增強卷積殘差網(wǎng)絡(luò)。
5.19 分形網(wǎng)絡(luò)
Larsson 等人 (2016) 提出分形網(wǎng)絡(luò)即 FractalNet 作為殘差網(wǎng)絡(luò)的替代方案。他們聲稱可以訓(xùn)練超深度的神經(jīng)網(wǎng)絡(luò)而不需要殘差學(xué)習(xí)。分形是簡單擴展規(guī)則生成的重復(fù)架構(gòu)。
5.20 WaveNet
van den Oord 等人 (2016) 提出了用于產(chǎn)生原始音頻的深度神經(jīng)網(wǎng)絡(luò) WaveNet。WaveNet 由一堆卷積層和 softmax 分布層組成,用于輸出。
Rethage 等人 (2017) 提出了一個 WaveNet 模型用于語音去噪。
5.21 指針網(wǎng)絡(luò)
Vinyals 等人 (2017) 提出了指針網(wǎng)絡(luò) (Ptr-Nets),通過使用一種稱為「指針」的 softmax 概率分布來解決表征變量字典的問題。
深度生成模型
在本節(jié)中,我們將簡要討論其他深度架構(gòu),它們使用與深度神經(jīng)網(wǎng)絡(luò)類似的多個抽象層和表示層,也稱為深度生成模型 (deep generate Models, DGM)。Bengio(2009) 解釋了深層架構(gòu),例如 Boltzmann machine (BM) 和 Restricted Boltzmann Machines (RBM) 等及其變體。
Goodfellow 等人 (2016) 詳細解釋了深度生成模型,如受限和非受限的玻爾茲曼機及其變種、深度玻爾茲曼機、深度信念網(wǎng)絡(luò) (DBN)、定向生成網(wǎng)絡(luò)和生成隨機網(wǎng)絡(luò)等。
Maal?e 等人(2016)提出了輔助的深層生成模型(Auxiliary Deep Generative Models),在這些模型中,他們擴展了具有輔助變量的深層生成模型。輔助變量利用隨機層和跳過連接生成變分分布。
Rezende 等人 (2016) 開發(fā)了一種深度生成模型的單次泛化。
6.1 玻爾茲曼機
玻爾茲曼機是學(xué)習(xí)任意概率分布的連接主義方法,使用最大似然原則進行學(xué)習(xí)。
6.2 受限玻爾茲曼機
受限玻爾茲曼機 (Restricted Boltzmann Machines, RBM) 是馬爾可夫隨機場的一種特殊類型,包含一層隨機隱藏單元,即潛變量和一層可觀測變量。
Hinton 和 Salakhutdinov(2011) 提出了一種利用受限玻爾茲曼機 (RBM) 進行文檔處理的深度生成模型。
6.3 深度信念網(wǎng)絡(luò)
深度信念網(wǎng)絡(luò) (Deep Belief Networks, DBN) 是具有多個潛在二元或真實變量層的生成模型。
Ranzato 等人 (2011) 利用深度信念網(wǎng)絡(luò) (deep Belief Network, DBN) 建立了深度生成模型進行圖像識別。
6.4 深度朗伯網(wǎng)絡(luò)
Tang 等人 (2012) 提出了深度朗伯網(wǎng)絡(luò) (Deep Lambertian Networks,DLN),它是一個多層次的生成模型,其中潛在的變量是反照率、表面法線和光源。DLNis 是朗伯反射率與高斯受限玻爾茲曼機和深度信念網(wǎng)絡(luò)的結(jié)合。
6.5 生成對抗網(wǎng)絡(luò)
Goodfellow 等人 (2014) 提出了生成對抗網(wǎng)絡(luò) (generate Adversarial Nets, GAN),用于通過對抗過程來評估生成模型。GAN 架構(gòu)是由一個針對對手(即一個學(xué)習(xí)模型或數(shù)據(jù)分布的判別模型)的生成模型組成。Mao 等人 (2016)、Kim 等人 (2017) 對 GAN 提出了更多的改進。
Salimans 等人 (2016) 提出了幾種訓(xùn)練 GANs 的方法。
6.5.1 拉普拉斯生成對抗網(wǎng)絡(luò)
Denton 等人 (2015) 提出了一種深度生成模型 (DGM),叫做拉普拉斯生成對抗網(wǎng)絡(luò) (LAPGAN),使用生成對抗網(wǎng)絡(luò) (GAN) 方法。該模型還在拉普拉斯金字塔框架中使用卷積網(wǎng)絡(luò)。
6.6 循環(huán)支持向量機
Shi 等人 (2016a) 提出了循環(huán)支持向量機 (RSVM),利用循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 從輸入序列中提取特征,用標(biāo)準(zhǔn)支持向量機 (SVM) 進行序列級目標(biāo)識別。
訓(xùn)練和優(yōu)化技術(shù)
在本節(jié)中,我們將簡要概述一些主要的技術(shù),用于正則化和優(yōu)化深度神經(jīng)網(wǎng)絡(luò) (DNN)。
7.1 Dropout
Srivastava 等人 (2014) 提出 Dropout,以防止神經(jīng)網(wǎng)絡(luò)過擬合。Dropout 是一種神經(jīng)網(wǎng)絡(luò)模型平均正則化方法,通過增加噪聲到其隱藏單元。在訓(xùn)練過程中,它會從神經(jīng)網(wǎng)絡(luò)中隨機抽取出單元和連接。Dropout 可以用于像 RBM (Srivastava et al.,2014) 這樣的圖形模型中,也可以用于任何類型的神經(jīng)網(wǎng)絡(luò)。最近提出的一個關(guān)于 Dropout 的改進是 Fraternal Dropout,用于循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)。
7.2 Maxout
Goodfellow 等人 (2013) 提出 Maxout,一種新的激活函數(shù),用于 Dropout。Maxout 的輸出是一組輸入的最大值,有利于 Dropout 的模型平均。
7.3 Zoneout
Krueger 等人 (2016) 提出了循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN) 的正則化方法 Zoneout。Zoneout 在訓(xùn)練中隨機使用噪音,類似于 Dropout,但保留了隱藏的單元而不是丟棄。
7.4 深度殘差學(xué)習(xí)
He 等人 (2015) 提出了深度殘差學(xué)習(xí)框架,該框架被稱為低訓(xùn)練誤差的 ResNet。
7.5 批歸一化
Ioffe 和 Szegedy(2015) 提出了批歸一化,通過減少內(nèi)部協(xié)變量移位來加速深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法。Ioffe(2017) 提出批重歸一化,擴展了以前的方法。
7.6 Distillation
Hinton 等人 (2015) 提出了將知識從高度正則化模型的集合 (即神經(jīng)網(wǎng)絡(luò)) 轉(zhuǎn)化為壓縮小模型的方法。
7.7 層歸一化
Ba 等人 (2016) 提出了層歸一化,特別是針對 RNN 的深度神經(jīng)網(wǎng)絡(luò)加速訓(xùn)練,解決了批歸一化的局限性。
深度學(xué)習(xí)框架
有大量的開源庫和框架可供深度學(xué)習(xí)使用。它們大多數(shù)是為 Python 編程語言構(gòu)建的。如 Theano、Tensorflow、PyTorch、PyBrain、Caffe、Blocks and Fuel 、CuDNN、Honk、ChainerCV、PyLearn2、Chainer,、torch 等。
深度學(xué)習(xí)應(yīng)用
在本節(jié)中,我們將簡要地討論一些最近在深度學(xué)習(xí)方面的杰出應(yīng)用。自深度學(xué)習(xí) (DL) 開始以來,DL 方法以監(jiān)督、非監(jiān)督、半監(jiān)督或強化學(xué)習(xí)的形式被廣泛應(yīng)用于各個領(lǐng)域。從分類和檢測任務(wù)開始,DL 應(yīng)用正在迅速擴展到每一個領(lǐng)域。
例如:
圖像分類與識別
視頻分類
序列生成
缺陷分類
文本、語音、圖像和視頻處理
文本分類
語音處理
語音識別和口語理解
文本到語音生成
查詢分類
句子分類
句子建模
詞匯處理
預(yù)選擇
文檔和句子處理
生成圖像文字說明
照片風(fēng)格遷移
自然圖像流形
圖像著色
圖像問答
生成紋理和風(fēng)格化圖像
視覺和文本問答
視覺識別和描述
目標(biāo)識別
文檔處理
人物動作合成和編輯
歌曲合成
身份識別
人臉識別和驗證
視頻動作識別
人類動作識別
動作識別
分類和可視化動作捕捉序列
手寫生成和預(yù)測
自動化和機器翻譯
命名實體識別
移動視覺
對話智能體
調(diào)用遺傳變異
癌癥檢測
X 射線 CT 重建
癲癇發(fā)作預(yù)測
硬件加速
機器人
Deng 和 Yu(2014) 提供了 DL 在語音處理、信息檢索、目標(biāo)識別、計算機視覺、多模態(tài)、多任務(wù)學(xué)習(xí)等領(lǐng)域應(yīng)用的詳細列表。
使用深度強化學(xué)習(xí) (Deep Reinforcement Learning, DRL) 來掌握游戲已經(jīng)成為當(dāng)今的一個熱門話題。每到現(xiàn)在,人工智能機器人都是用 DNN 和 DRL 創(chuàng)建的,它們在戰(zhàn)略和其他游戲中擊敗了人類世界冠軍和象棋大師,從幾個小時的訓(xùn)練開始。例如圍棋的 AlphaGo 和 AlphaGo Zero。
討論
盡管深度學(xué)習(xí)在許多領(lǐng)域取得了巨大的成功,但它還有很長的路要走。還有很多地方有待改進。至于局限性,例子也是相當(dāng)多的。例如:Nguyen 等人表明深度神經(jīng)網(wǎng)絡(luò)(DNN)在識別圖像時容易被欺騙。還有其他問題,如 Yosinski 等人提出的學(xué)習(xí)的特征可遷移性。Huang 等人提出了一種神經(jīng)網(wǎng)絡(luò)攻擊防御的體系結(jié)構(gòu),認為未來的工作需要防御這些攻擊。Zhang 等人則提出了一個理解深度學(xué)習(xí)模型的實驗框架,他們認為理解深度學(xué)習(xí)需要重新思考和概括。
Marcus 在 2018 年對深度學(xué)習(xí) (Deep Learning, DL) 的作用、局限性和本質(zhì)進行了重要的回顧。他強烈指出了 DL 方法的局限性,即需要更多的數(shù)據(jù),容量有限,不能處理層次結(jié)構(gòu),無法進行開放式推理,不能充分透明,不能與先驗知識集成,不能區(qū)分因果關(guān)系。他還提到,DL 假設(shè)了一個穩(wěn)定的世界,以近似方法實現(xiàn),工程化很困難,并且存在著過度炒作的潛在風(fēng)險。Marcus 認為 DL 需要重新概念化,并在非監(jiān)督學(xué)習(xí)、符號操作和混合模型中尋找可能性,從認知科學(xué)和心理學(xué)中獲得見解,并迎接更大膽的挑戰(zhàn)。
結(jié)論
盡管深度學(xué)習(xí)(DL)比以往任何時候都更快地推進了世界的發(fā)展,但仍有許多方面值得我們?nèi)パ芯俊N覀內(nèi)匀粺o法完全地理解深度學(xué)習(xí),我們?nèi)绾巫寵C器變得更聰明,更接近或比人類更聰明,或者像人類一樣學(xué)習(xí)。DL 一直在解決許多問題,同時將技術(shù)應(yīng)用到方方面面。但是人類仍然面臨著許多難題,例如仍有人死于饑餓和糧食危機, 癌癥和其他致命的疾病等。我們希望深度學(xué)習(xí)和人工智能將更加致力于改善人類的生活質(zhì)量,通過開展最困難的科學(xué)研究。最后但也是最重要的,愿我們的世界變得更加美好。
評論
查看更多