学习笔记 | 深度学习相关研究与展望 Review of deep learning
? ? ? 深度學(xué)習(xí)是新興的機(jī) 器學(xué)習(xí)研究領(lǐng)域,旨在研究如何從數(shù)據(jù)中自動(dòng)地提取多層特征 表示,其核心思想是通過(guò)數(shù)據(jù)驅(qū)動(dòng)的方式,采用一系列的非線 性變換,從原始數(shù)據(jù)中提取由低層到高層、由具體到抽象、由一 般到特定語(yǔ)義的特征。
1 深度學(xué)習(xí)相關(guān)應(yīng)用領(lǐng)域
1. 1 圖像識(shí)別
? ? ? 物體檢測(cè)和圖像分類是圖像識(shí)別的兩個(gè)核心問(wèn)題,圖像識(shí)別是深度學(xué)習(xí)最早嘗試的 應(yīng)用領(lǐng)域,早在 1989 年,LeCun 等人
發(fā)表了關(guān)于卷積神經(jīng)網(wǎng) 絡(luò)的相關(guān)工作,在手寫數(shù)字識(shí)別任務(wù)上取得了當(dāng)時(shí)世界上最好 的結(jié)果,并廣泛應(yīng)用于各大銀行支票的手寫數(shù)字識(shí)別任務(wù)中。 百度在 2012 年將深度學(xué)習(xí)技術(shù)成功應(yīng)用于自然圖像 OCR 識(shí) 別和人臉識(shí)別等問(wèn)題上,并推出相應(yīng)的移動(dòng)搜索產(chǎn)品和桌面應(yīng) 用。從 2012 年的 ImageNet 競(jìng)賽開始,深度學(xué)習(xí)在圖像識(shí)別領(lǐng) 域發(fā)揮出巨大威力,在通用圖像分類、圖像檢測(cè)、光學(xué)字符識(shí)別 (optical character recognition,OCR)、人臉識(shí)別等領(lǐng)域,最好的 系統(tǒng)都是基于深度學(xué)習(xí)的。圖 1 為 2010—2016 年ImageNet 競(jìng) 賽的識(shí)別錯(cuò)誤率變化及人的識(shí)別錯(cuò)誤率。2012 年是深度學(xué)習(xí) 技術(shù)第一次被應(yīng)用到 ImageNet 競(jìng)賽中,可以看出相對(duì)于 2011 年傳統(tǒng)最好的識(shí)別錯(cuò)誤率大幅降低了 41. 1% ,且 2015 年基于 深度學(xué)習(xí)技術(shù)的圖像識(shí)別錯(cuò)誤率已經(jīng)超過(guò)了人類,2016 年最新的 ImageNet 識(shí)別錯(cuò)誤率已經(jīng)達(dá)到 2. 991% 。
1. 2 語(yǔ)音識(shí)別
? ? ??語(yǔ) 音 識(shí) 別( automatic speech recognition,ASR)是指能夠讓計(jì)算機(jī)自動(dòng)地識(shí)別語(yǔ)音中所攜帶 信息的技術(shù)。在語(yǔ)音識(shí)別領(lǐng)域,深度神經(jīng)網(wǎng) 絡(luò)(deep neural network,DNN) 模型給處在瓶頸階段的傳統(tǒng) GMM-HMM 模型帶來(lái)了巨大的革新,使得語(yǔ)音識(shí)別的準(zhǔn)確率又 上了一個(gè)新的臺(tái)階。目前國(guó)內(nèi)外知名互聯(lián)網(wǎng)企業(yè)(谷歌、科大 訊飛及百度等)的語(yǔ)音識(shí)別算法采用的都是 DNN 方法。國(guó)內(nèi)科大訊飛提出的前饋型序列記憶網(wǎng)絡(luò)( feed-for- ward sequential memory network,FSMN) 語(yǔ)音識(shí)別系統(tǒng),使用大 量的卷積層直接對(duì)整句語(yǔ)音信號(hào)進(jìn)行建模,更好地表達(dá)了語(yǔ)音 的長(zhǎng)時(shí)相關(guān)性,其效果比學(xué)術(shù)界和工業(yè)界最好的雙向 RNN( re- current neural network)語(yǔ)音識(shí)別系統(tǒng)識(shí)別率提升了 15% 以上。 由此可見(jiàn),深度學(xué)習(xí)技術(shù)對(duì)語(yǔ)言識(shí)別率的提高有著不可忽略的 貢獻(xiàn)。
1. 3 自然語(yǔ)言處理
? ? ? 自然語(yǔ)言處理(natural language processing,NLP)也是深度 學(xué)習(xí)的一個(gè)重要應(yīng)用領(lǐng)域,經(jīng)過(guò)幾十年的發(fā)展,基于統(tǒng)計(jì)的模 型已成為 NLP 的主流,同時(shí)人工神經(jīng)網(wǎng)絡(luò)在 NLP 領(lǐng)域也受到 了理論界的足夠重視。世界 上最早的深度學(xué)習(xí)用于 NLP 的研究工作誕生 于 NEC Labs American,其研究員 Collobert 等人從 2008 年開始采用 embedding 和多層一維卷積的結(jié)構(gòu),用于詞性標(biāo)注、分塊、命名實(shí) 體識(shí)別、語(yǔ)義角色標(biāo)注等四個(gè)典型 NLP 問(wèn)題。此外,基于深度學(xué)習(xí)模型的特征學(xué)習(xí)還 在語(yǔ)義消歧、情感分析等自然語(yǔ)言處理任務(wù)中均超越了 當(dāng)時(shí)最優(yōu)系統(tǒng),取得了優(yōu)異表現(xiàn)。
2 深度學(xué)習(xí)常用模型
2. 1 自動(dòng)編碼機(jī)
? ? ??自動(dòng)編/解碼網(wǎng)絡(luò)可看做是傳統(tǒng)的多層感知器的變種,其基本想法是將輸入信號(hào)經(jīng)過(guò)多層神經(jīng)網(wǎng)絡(luò)后重構(gòu)原始的輸入,通過(guò)非監(jiān)督學(xué)習(xí)的方式挖掘輸入信號(hào) 的潛在結(jié)構(gòu),將中間層的響應(yīng)作為潛在的特征表示。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? 自動(dòng)編/解碼機(jī)由將輸入信號(hào)映射到低維空間的編碼機(jī)和 用隱含特征重構(gòu)初始輸入的解碼機(jī)構(gòu)成。假設(shè)輸入信號(hào)為 x, 編碼層首先將其線性映射為 z,然后再施加某種非線性變換, 這一過(guò)程可以形式化為 a = f(z) = f(Wx + b) ?其中: f (·)為某種非線性函數(shù),常用的有 sigmoid 函數(shù) f( z) = 1 /(1 + exp(- z))和修正線性單元( rectified linear unit,ReLU) 函數(shù) f(z) = max(0,z),也稱為激活函數(shù)。
2. 2 受限玻爾茲曼機(jī)
? ? ? 玻爾茲曼機(jī)(Boltzmann machine,BM) 是一種隨機(jī)的遞歸 神經(jīng)網(wǎng)絡(luò),由 Hinton 等人提出,是能通過(guò)學(xué)習(xí)數(shù)據(jù)固有 內(nèi)在表示、解決復(fù)雜學(xué)習(xí)問(wèn)題最早的人工神經(jīng)網(wǎng)絡(luò)之一,受限 玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)是玻爾茲曼機(jī) 的擴(kuò)展,由于去掉了玻爾茲曼機(jī)同層之間的連接,所以大大提 高了學(xué)習(xí)效率。
2. 3 深度神經(jīng)網(wǎng)絡(luò)
? ? ? 神經(jīng)網(wǎng)絡(luò)技術(shù)起源于 20 世紀(jì) 50、60 年代,當(dāng)時(shí)叫做感知 機(jī),是最早被設(shè)計(jì)并實(shí)現(xiàn)的人工神經(jīng)網(wǎng)絡(luò),是一種二分類的線 性分類模型,主要用于線性分類且分類能力十分有限。輸入的 特征向量通過(guò)隱含層變換達(dá)到輸出層,在輸出層得到分類結(jié) 果。早期感知機(jī)的推動(dòng)者是 Rosenblatt,但是單層感知機(jī)遇到 一個(gè)嚴(yán)重的問(wèn)題,即它對(duì)稍復(fù)雜一些的函數(shù)都無(wú)能為力(如最 為典型的異或操作)。隨著數(shù)學(xué)理論的發(fā)展,這個(gè)缺點(diǎn)直到 20 世紀(jì) 80 年代才被 Rumelhart、Williams、Hinton、LeCun 等人發(fā)明 的多層感知機(jī)(multilayer perceptron,MLP) 克服。多層感知機(jī) 可以擺脫早期離散傳輸函數(shù)的束縛,使用 sigmoid 或 tanh 等連 續(xù)函數(shù)模擬神經(jīng)元對(duì)激勵(lì)的響應(yīng),在訓(xùn)練算法上則使用 Werbos 發(fā)明的反向傳播 BP 算法。
? ? ? 通過(guò)增加隱含 層的數(shù)量及相應(yīng)的節(jié)點(diǎn)數(shù),可以形成深度神經(jīng)網(wǎng)絡(luò)。深度神經(jīng) 網(wǎng)絡(luò)一般指全連接的神經(jīng)網(wǎng)絡(luò),該類神經(jīng)網(wǎng)絡(luò)模型常用于圖像 及語(yǔ)言識(shí)別等領(lǐng)域,在圖像識(shí)別領(lǐng)域由于其將圖像數(shù)據(jù)變成一 維數(shù)據(jù)進(jìn)行處理,忽略了圖像的空間幾何關(guān)系,所以其在圖像 識(shí)別領(lǐng)域的識(shí)別率不及卷積神經(jīng)網(wǎng)絡(luò),且由于相鄰層之間全連 接,其要訓(xùn)練的參數(shù)規(guī)模巨大,所以巨大的參數(shù)量也進(jìn)一步限制了全連接神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)的深度和廣度。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
2. 4 卷積神經(jīng)網(wǎng)絡(luò)
? ? ? 近幾年,卷積神經(jīng)網(wǎng)絡(luò)在大規(guī)模圖像特征表示和分類中取 得了很大的成功。標(biāo)志性事件是在 2012 年的 ImageNet 大規(guī)模
視覺(jué)識(shí)別挑戰(zhàn)競(jìng)賽中,Krizhevsky 實(shí)現(xiàn)的深度卷積神經(jīng)網(wǎng)絡(luò) 模型將圖像分類的錯(cuò)誤率降低了近 50%。2016 年 4 月著 名的圍棋人機(jī)大戰(zhàn)中以 4 ∶ 1大比分優(yōu)勢(shì)戰(zhàn)勝李世石的 AlphaGo 人工智能圍棋程序就采用了 CNN + 蒙特卡洛搜索樹算法。卷 積神經(jīng)網(wǎng)絡(luò)最早是由 LeCun 等人在 1998 年提出,用于手寫字 符圖像的識(shí)別
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
? ? ? 該網(wǎng)絡(luò)的輸入為原始二維圖像,經(jīng)過(guò)若干卷積層和全連接 層后,輸出圖像在各類別下的預(yù)測(cè)概率。每個(gè)卷積層包含卷積、非線性激活函數(shù)和最大值池化三種運(yùn)算。在卷積神經(jīng)網(wǎng)絡(luò)中,需要學(xué)習(xí)一組二維濾波模板 F = f1,…,fNk,與輸入特征圖 x 進(jìn)行卷積操作,得到 Nk 個(gè)二維特征圖 zk = fk * x。采用卷積運(yùn)算的好處有如下幾點(diǎn):a)二維卷積模板可以更好地挖掘相鄰像素之間的局部關(guān)系和圖像的二維結(jié)構(gòu);b) 與一般神經(jīng)網(wǎng)絡(luò)中的全連接結(jié)構(gòu)相比,卷積網(wǎng)絡(luò)通過(guò)權(quán)重共享極大地減少了網(wǎng)絡(luò)的參數(shù)量,使得訓(xùn)練大規(guī)模網(wǎng)絡(luò)變得可行;c)卷積操作對(duì)圖像上的平移、旋轉(zhuǎn)和尺度等變換具有一定的魯棒性。得到卷積響應(yīng)特征圖后,通常需要經(jīng)過(guò)一個(gè)非線性激活函數(shù)來(lái)得到激活響應(yīng)圖,如 sigmoid、tanh 和 ReLU 等函數(shù)。緊接著,在激活函數(shù)響應(yīng)圖上施加一個(gè)最大值池化(max pooling)或者平均值池化(average pooling)運(yùn)算。在這一操作中,首先用均勻的網(wǎng)格將特征圖劃分為若干空間區(qū)域,這些區(qū)域可以有重疊部分,然后取每個(gè)圖像區(qū)域的平均值或最大值作為輸出。此外在最大值池化中,通常還需要記錄所輸出最大值的位置。已有研究工作證明了最大值池化操作在圖像特征提取中的性能優(yōu)于平均值池化,因而近些年研究者基本都采用了最大值池化。池化操作主要有如下兩個(gè)優(yōu)點(diǎn):a) 增強(qiáng)了網(wǎng)絡(luò)對(duì)伸縮、平移、旋轉(zhuǎn)等圖像變換的魯棒性;b)使得高層網(wǎng)絡(luò)可以在更大尺度下學(xué) 習(xí)圖像的更高層結(jié)構(gòu),同時(shí)降低了網(wǎng)絡(luò)參數(shù),使得大規(guī)模的網(wǎng)絡(luò)訓(xùn)練變得可行。由于卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)量較大,很容易發(fā) 生過(guò)擬合,影響最終的測(cè)試性能。研究者為克服這一問(wèn)題提出 了很多改進(jìn)的方法。Hinton 等人提出了稱為“dropout”的優(yōu) 化技術(shù),通過(guò)在每次訓(xùn)練迭代中隨機(jī)忽略一半的特征點(diǎn)來(lái)防止過(guò)擬合,取得了一定的效果;Wan 等人進(jìn)一步擴(kuò)展了這一想法,在全連接層的訓(xùn)練中,每一次迭代時(shí)從網(wǎng)絡(luò)的連接權(quán)重中隨機(jī)挑選的一個(gè)子集置為 0,使得每次網(wǎng)絡(luò)更新針對(duì)不一樣的網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)一步提升了模型的泛化性。此外還有一些簡(jiǎn)單有效的工程技巧,如動(dòng)量法、權(quán)重衰變和數(shù)據(jù)增強(qiáng)等。
2. 5 循環(huán)神經(jīng)網(wǎng)絡(luò)
? ? ? 在全連接的 DNN 和 CNN 中,每層神經(jīng)元的信號(hào)只能向上 一層傳播,樣本的處理在各個(gè)時(shí)刻相互獨(dú)立,因此該類神經(jīng)網(wǎng)絡(luò)無(wú)法對(duì)時(shí)間序列上的變化進(jìn)行建模,如樣本出現(xiàn)的時(shí)間順序?qū)τ谧匀徽Z(yǔ)言處理、語(yǔ)音識(shí)別、手寫體識(shí)別等應(yīng)用非常重要。為了適應(yīng)這種需求,就出現(xiàn)了另一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)———循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。RNN 中神經(jīng)元的輸出可以在下一個(gè)時(shí)間戳直接作用到自身,即第 i 層神經(jīng)元在 t 時(shí)刻的輸入,除了(i - 1)層神經(jīng)元在 t - 1 時(shí)刻的輸出外,還包括其自身在 t 時(shí)刻的輸入。
? ? ? 為了適應(yīng)不同的應(yīng)用需求,RNN 模型出現(xiàn)了不同的變種, 主要包括以下幾種:
a)長(zhǎng)短 期 記 憶 模 型
b)Simples RNN(SRN)
c)Bidirectional RNN
? ? ? ?此外針對(duì)不同的應(yīng)用需求還出現(xiàn)了一些包括深度 RNN 模型(deep RNN)回聲狀態(tài)網(wǎng)絡(luò)( echo state networks)、門控 RNN 模型( gated recurrent unit,GRU)、時(shí)鐘頻率驅(qū)動(dòng)的RNN(clockwork RNN)模型等。
2. 6 多模型融合的神經(jīng)網(wǎng)絡(luò)
? ? ??除了單個(gè)的神經(jīng)網(wǎng)絡(luò)模型,還出現(xiàn)了不同神經(jīng)網(wǎng)絡(luò)模型組合的神經(jīng)網(wǎng)絡(luò),如 CNN 和 RBM、CNN 和 RNN 等,通過(guò)將各個(gè) 網(wǎng)絡(luò)模型的優(yōu)勢(shì)組合起來(lái)可以達(dá)到最優(yōu)的效果。將 CNN 與 RNN 相結(jié)合用于對(duì)圖像描述的自動(dòng)生成,使得該組合模型能夠根據(jù)圖像的特征生成文字描述或者根據(jù)文字產(chǎn)生相應(yīng)內(nèi)容的圖片。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,相信會(huì)有越來(lái)越多性能優(yōu)異的神經(jīng)網(wǎng)絡(luò)模型出現(xiàn)在大眾的視野,如近期火熱的生成對(duì)抗網(wǎng)絡(luò)( generative adversarial networks,GAN) 及相應(yīng)變種 模型為無(wú)監(jiān)督學(xué)習(xí)的研究開啟了一扇門窗。
3 基于深度學(xué)習(xí)的優(yōu)化方法
3. 1 數(shù)據(jù)并行
? ? ? 當(dāng)訓(xùn)練的模型規(guī)模比較大時(shí),可以通過(guò)數(shù)據(jù)并行的方法來(lái)加速模型的訓(xùn)練,數(shù)據(jù)并行可以對(duì)訓(xùn)練數(shù)據(jù)做切分,同時(shí)采用多個(gè)模型實(shí)例對(duì)多個(gè)分塊的數(shù)據(jù)同時(shí)進(jìn)行訓(xùn)練。數(shù)據(jù)并行的大致框架如圖 10 所示。在訓(xùn)練過(guò)程中,由于數(shù)據(jù)并行需要進(jìn)行訓(xùn)練參數(shù)的交換,通常需要一個(gè)參數(shù)服務(wù)器,多個(gè)訓(xùn)練過(guò)程相互獨(dú)立,每個(gè)訓(xùn)練的結(jié)果,即模型的變化量 ΔW 需要提交給參數(shù)服務(wù)器,參數(shù)服務(wù)器負(fù)責(zé)更新最新的模型參數(shù) W' = W - η × ΔW,之后再將最新的模型參數(shù) W'廣播至每個(gè)訓(xùn)練過(guò)程,以便各個(gè)訓(xùn)練過(guò)程可以從同一起點(diǎn)開始訓(xùn)練。在數(shù)據(jù)并行的實(shí)現(xiàn)中,由于是采用同樣的模型、不同的數(shù)據(jù)進(jìn)行訓(xùn)練,影響模型性能的瓶頸在于多 CPU 或多 GPU 間的參數(shù)交換。根據(jù)參數(shù)更新公式,需要將所有模型計(jì)算出的梯度提交到參數(shù)服務(wù)器并更新到相應(yīng)參數(shù)上,所以數(shù)據(jù)片的劃分以及與參數(shù)服務(wù)器的帶寬可能會(huì)成為限制數(shù)據(jù)并行效率的瓶頸。
3. 2 模型并行
? ? ? 除了數(shù)據(jù)并行,還可以采用模型并行的方式來(lái)加速模型的訓(xùn)練。模型并行是指將大的模型拆分成幾個(gè)分片,由若干個(gè)訓(xùn)練單元分別持有,各個(gè)訓(xùn)練單元相互協(xié)作共同完成大模型的訓(xùn)練。一般來(lái)說(shuō),模型并行帶來(lái)的通信和同步開銷多于數(shù)據(jù)并行,因此其加速比不及數(shù)據(jù)并行,但對(duì)于單機(jī)內(nèi)存無(wú)法容納的大模型來(lái)說(shuō),模型并行也是一個(gè)很好的方法,2012 年 ImageNet 冠軍模型Axlenet 就是采用兩塊 GPU 卡進(jìn)行模型并行訓(xùn)練。
4 深度學(xué)習(xí)常用軟件工具及平臺(tái)
4. 1 常用軟件工具
a)TensorFlow,它由 Google 基于 DistBelief 進(jìn)行研發(fā)的第二 代人工智能系統(tǒng)。
b)以 Keras 為主的深度學(xué)習(xí)抽象化平臺(tái)。其本身不具有底層運(yùn)算協(xié)調(diào)能力,而是依托于 TensorFlow 或 Theano 進(jìn)行底層運(yùn)算,Keras 提供神經(jīng)網(wǎng)絡(luò)模塊抽象化和訓(xùn)練中的流程優(yōu)化,可以讓用戶在快速建模的同時(shí),具有很方便的二次開發(fā)能力,加入自己喜歡的模塊。
c)以 Caffe、Torch、MXNet、CNTK 為主的深度學(xué)習(xí)功能性平臺(tái)。
d)Theano,它是深度學(xué)習(xí)領(lǐng)域最早的軟件平臺(tái),專注于底層基本運(yùn)算。該平臺(tái)有以下幾個(gè)特點(diǎn):
? ? ? ? ? ? ? ? ? ? ?(a)集成 NumPy 的基于Python 實(shí)現(xiàn)的科學(xué)計(jì)算包,可以與稀疏矩陣運(yùn)算包 SciPy 配合使用,全面兼容 NumPy 庫(kù)函數(shù);
? ? ? ? ? ? ? ? ? ??( b)易于使用 GPU 進(jìn)行加速,具有比 CPU 實(shí)現(xiàn)相對(duì)較大的加速比;
? ? ? ? ? ? ? ? ? ? ?(c)具有優(yōu)異可靠性和速度優(yōu)勢(shì);
? ? ? ? ? ? ? ? ? ? ? (d)可支持動(dòng)態(tài) C 程序生成;
? ? ? ? ? ? ? ? ? ? ?(e) 擁有測(cè)試和自檢單元,可方便檢測(cè)和診斷多類型錯(cuò)誤。
4. 2 工業(yè)界平臺(tái)
a)DistBelief 是由 Google 用 CPU 集群實(shí)現(xiàn)的數(shù)據(jù)并行和模型并行框架,該集群可使用上萬(wàn) CPU core 訓(xùn)練多達(dá) 10 億參數(shù)的深度網(wǎng)絡(luò)模型,可用于語(yǔ)音識(shí)別和 2. 1 萬(wàn)類目的的圖像分類。
b)Facebook 實(shí)現(xiàn)了多 GPU 訓(xùn)練深度卷積神經(jīng)網(wǎng)絡(luò)的并行框架,結(jié)合數(shù)據(jù)并行和模型并行的方式來(lái)訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模 型,使用 4 張 NVIDIA TITAN GPU 可在數(shù)天內(nèi)訓(xùn)練 ImageNet1 000分類的網(wǎng)絡(luò)。
c)Paddle( parallel asynchonous distributed deep learning)是由國(guó)內(nèi)的百度公司搭建的多機(jī) GPU 訓(xùn)練平臺(tái),其將數(shù)據(jù)放置于不同的機(jī)器,通過(guò)參數(shù)服務(wù)器協(xié)調(diào)各機(jī)器的訓(xùn)練,Paddle平臺(tái)也可以支持?jǐn)?shù)據(jù)并行和模型并行。
d)騰訊為加速深度學(xué)習(xí)模型訓(xùn)練也開發(fā)了并行化平臺(tái)———Mariana,其包含深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的多 GPU 數(shù)據(jù)并行框架、深度卷積神經(jīng)網(wǎng)絡(luò)的多 GPU 模型并行和數(shù)據(jù)并行框架,以及深度神經(jīng)網(wǎng)絡(luò)的 CPU 集群框架。該平臺(tái)基于特定應(yīng)用的訓(xùn)練場(chǎng)景,設(shè)計(jì)定制化的并行訓(xùn)練平臺(tái),用于語(yǔ)音識(shí)別、圖像識(shí)別以及在廣告推薦中的應(yīng)用。
? ? ? 通過(guò)對(duì)以上幾種工業(yè)界平臺(tái)的介紹可以發(fā)現(xiàn),不管是基于CPU 集群的 DistBelief 平臺(tái)還是基于多 GPU 的 Paddle 或 Mariana平臺(tái),針對(duì)大規(guī)模神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練基本上都是采用基于模型的并行方案或基于數(shù)據(jù)的并行方案,或是同時(shí)采用兩種并行方案。由于神經(jīng)網(wǎng)絡(luò)模型在前向傳播及反向傳播計(jì)算過(guò)程存在一定的數(shù)據(jù)相關(guān)性,當(dāng)前其在大規(guī)模 CPU 集群或者GPU 集群上訓(xùn)練的方法并不多。
5 深度學(xué)習(xí)相關(guān)加速技術(shù)
? ? ? 1 CPU 加速技術(shù)
? ? ? 2GPU 加速技術(shù)
? ? ? 3FPGA 加速技術(shù)
6 存在問(wèn)題與研究展望
? ? ? 盡管深度學(xué)習(xí)技術(shù)在圖像處理、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域取得了突破性的進(jìn)展,但仍有許多問(wèn)題亟待解決。
? ? ? a)無(wú)監(jiān)督數(shù)據(jù)的特征學(xué)習(xí)。當(dāng)前,標(biāo)簽數(shù)據(jù)的特征學(xué)習(xí)仍然占據(jù)主導(dǎo)地位,而真實(shí)世界存在著海量的無(wú)標(biāo)簽數(shù)據(jù),將這些無(wú)標(biāo)簽數(shù)據(jù)逐一添加人工標(biāo)簽,顯然是不現(xiàn)實(shí)的。因此,隨著深度學(xué)習(xí)技術(shù)的發(fā)展,必將越來(lái)越重視對(duì)無(wú)標(biāo)簽數(shù)據(jù)的特征學(xué)習(xí),以及將無(wú)標(biāo)簽數(shù)據(jù)進(jìn)行自動(dòng)添加標(biāo)簽技術(shù)的研究。
? ? ? b)基于模型融合的深度學(xué)習(xí)方法。相關(guān)研究表明,單一的深度學(xué)習(xí)模型往往不能帶來(lái)最好的效果,而通過(guò)增加深度來(lái)提高模型效果的方法會(huì)有一定的局限性,如梯度消失問(wèn)題、計(jì)算過(guò)于復(fù)雜、模型的并行性有限等問(wèn)題,因此通過(guò)融合其他模型或者多種簡(jiǎn)單模型進(jìn)行平均打分,可能會(huì)帶來(lái)更好的效果。
? ? ? c)遷移學(xué)習(xí)。遷移學(xué)習(xí)可以說(shuō)是一種“站在巨人肩上”的學(xué)習(xí)方法,可以在不同領(lǐng)域中進(jìn)行知識(shí)遷移,使得在一個(gè)領(lǐng)域中已有的知識(shí)得到充分的利用,無(wú)須每次都將求解問(wèn)題視為全新的問(wèn)題。一個(gè)好的遷移學(xué)習(xí)方法可以大大加快模型的訓(xùn)練速度。
? ? ? d)嵌入式設(shè)備。目前深度學(xué)習(xí)技術(shù)正往嵌入式設(shè)備靠近,即原來(lái)的訓(xùn)練往往在服務(wù)器或者云端,而嵌入式設(shè)備通過(guò)網(wǎng)絡(luò)將待識(shí)別的任務(wù)上傳至云端,再由云端將處理結(jié)果發(fā)送到嵌入式端。隨著嵌入式設(shè)備計(jì)算能力的提升、新型存儲(chǔ)技術(shù)以及儲(chǔ)電技術(shù)的進(jìn)步,在嵌入式端完成實(shí)時(shí)訓(xùn)練是完全可能的,到時(shí)就可能實(shí)現(xiàn)真正的人工智能。因此,嵌入式設(shè)備成為將來(lái)的研究重點(diǎn),包括軍/民用無(wú)人機(jī)、無(wú)人車/戰(zhàn)車、無(wú)人潛水器等智能化裝備。
? ? ? e)低功耗設(shè)計(jì)。鑒于嵌入式設(shè)備對(duì)功耗非常敏感,具有功耗優(yōu)勢(shì)的 FPGA 芯片可能成為研究的一個(gè)熱點(diǎn),設(shè)計(jì)基于FPGA 類似 Caffe 的可編程深度學(xué)習(xí)軟件平臺(tái)會(huì)是一個(gè)研究方向。
? ? ? f)算法層優(yōu)化。由于深度學(xué)習(xí)技術(shù)巨大的計(jì)算量和存儲(chǔ)需求,不僅要在硬件上進(jìn)行加速,算法模型優(yōu)化上也可以錦上添花,如稀疏編碼、層級(jí)融合、深度壓縮等相關(guān)技術(shù)也會(huì)繼續(xù)研究。
? ? ? g)脈沖神經(jīng)網(wǎng)絡(luò)。脈沖神經(jīng)網(wǎng)絡(luò)目前雖然在精度上并不具有與機(jī)器學(xué)習(xí)算法一樣的水準(zhǔn),一方面因?yàn)閷W(xué)習(xí)算法,另一方面因?yàn)樾畔⒕幋a,然而脈沖神經(jīng)網(wǎng)絡(luò)是更接近生物學(xué)現(xiàn)象和觀察的模型。未來(lái)在脈沖神經(jīng)網(wǎng)絡(luò)研究上的突破也是人工智能研究上的一個(gè)重點(diǎn)。
? ? ? h)非精確計(jì)算。鑒于神經(jīng)網(wǎng)絡(luò)模型對(duì)計(jì)算精度不是特別敏感,因此非精確計(jì)算越來(lái)越引人矚目,被認(rèn)為是降低能耗最有效的手段之一。通過(guò)犧牲可接受的實(shí)驗(yàn)精度來(lái)?yè)Q取明顯的資源節(jié)約(能耗、關(guān)鍵路徑延遲、面積),可以將非精確計(jì)算和硬件神經(jīng)網(wǎng)絡(luò)相結(jié)合來(lái)擴(kuò)大應(yīng)用范圍、提高錯(cuò)誤恢復(fù)能力和提高能源節(jié)約程度,使得該神經(jīng)網(wǎng)絡(luò)成為未來(lái)異構(gòu)多核平臺(tái)的熱門備選加速器。
? ? ? i)模型壓縮。深度學(xué)習(xí)仍在不斷進(jìn)步,目前網(wǎng)絡(luò)的規(guī)模開始朝著更深但是參數(shù)更少的方向發(fā)展,如微軟提出的深度殘差網(wǎng)絡(luò)和 Standford 提出的稀疏神經(jīng)網(wǎng)絡(luò),該研究體現(xiàn)了深度神經(jīng)網(wǎng)絡(luò)中存在參數(shù)的冗余性。可以預(yù)見(jiàn)未來(lái)的算法研究會(huì)進(jìn)一步壓縮冗余參數(shù)的存在空間,從而網(wǎng)絡(luò)可能具有更好的精度但是卻擁有更少的參數(shù)。
總結(jié)
以上是生活随笔為你收集整理的学习笔记 | 深度学习相关研究与展望 Review of deep learning的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java字符串排序
- 下一篇: 深度学习-模型预测(论文笔记)