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