《計算機深度學習問題研究5800字(論文)》_第1頁
《計算機深度學習問題研究5800字(論文)》_第2頁
《計算機深度學習問題研究5800字(論文)》_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

計算機深度學習綜述報告1深度學習概述1.1深度學習發(fā)展史眾所周知,深度學習已經(jīng)成為了當下最流行的技術詞匯,似乎是一項才剛剛發(fā)明的新技術。但是事實上,有關深度學習的研究歷史(表1)可以追溯到1943年由WarrenMcCulloch教授和WalterPitts教授提出的McCulloch-PittsNeuron單神經(jīng)元計算結構[1]。該結構會通過N個權重與N個輸入來計算加權和作為輸出,是現(xiàn)代神經(jīng)元結構的雛形。1958年FrankRosenblatt教授提出的感知器模型(Perceptron)[2]是首個可以根據(jù)樣本數(shù)據(jù)來學習特征權重的模型,對現(xiàn)代機器學習的發(fā)展產(chǎn)生了巨大影響。1969年MarvinMinsky教授在書[3]中證明感知器模型只能解決線性可分問題,無法解決異或問題,并且給出“基于感知器的研究注定將失敗”的結論。導致神經(jīng)網(wǎng)絡的研究一度停滯不前。表1.1深度學習發(fā)展史上的重大科學及新聞事件時間階段時間1943第一階段單神經(jīng)元計算結構1958感知器模型1969神經(jīng)網(wǎng)絡第一次重大低潮80年代末第二階段分布式知識表達與反向傳播算法90年代初CNN,RNN,LSTM得到很好發(fā)展2012第三階段AlexNet獲得ILSVRC冠軍2013深度學習被MIT評為“年度十大科技突破之一”2015特斯拉將自動駕駛功能投入商用2016AlphaGo擊敗世界圍棋冠軍李世石2017AlphaGo擊敗世界排名第一的圍棋高手柯潔2019AlphaStar戰(zhàn)勝《星際爭霸》職業(yè)選手這期間人們在認知生物學領域取得了重要進展,發(fā)現(xiàn)了認知的兩個重要機制:一個是抽象,另一個是迭代。從原始信號,做低層抽象,逐漸向高層抽象迭代,在迭代中抽象出更高層的模式[4]。到了20世界80年代末,分布式知識表達(DistributedRepresentation)[5]和反向傳播算法(BackPropagation)[6]的提出開啟了神經(jīng)網(wǎng)絡研究的第二階段的序幕。分布式知識表達是深度學習的重要性質(zhì),基本思想是先讓每個神經(jīng)元表達簡單的特征,再把神經(jīng)元組合起來用于描述復雜的特征。相比本地式知識表達(即一個特征對應一個神經(jīng)元),分布式表達描述相同大小的特征空間需要的神經(jīng)數(shù)量少很多,極大節(jié)約了存儲空間。時至今日,反向傳播算法仍然是訓練深層神經(jīng)網(wǎng)絡的主要方法。到了2010年左右,計算機性能的極大提升和大數(shù)據(jù)互聯(lián)網(wǎng)+的發(fā)展,使得曾經(jīng)阻礙神經(jīng)網(wǎng)絡發(fā)展的計算力和訓練樣本量問題得到了解決,從此深度學習的發(fā)展一日千里。2012年ImageNet舉辦的ILSVRC圖像分類競賽中,由AlexKrizhevsky教授實現(xiàn)的深度學習系統(tǒng)AlexNet贏得了冠軍[6]。此后,深度學習算法的性能在圖像識別領域已經(jīng)完全碾壓了傳統(tǒng)機器學習算法[7](如支持向量機SVM等),并且在2013年之后的ILSVRC中基本就只有深度學習算法參賽了。2013年,深度學習被麻省理工(MIT)評為“年度十大科技突破之一”。2016和2017年Google的子公司DeepMind基于深度學習研發(fā)的AlphaGo擊敗了圍棋大師李世石和柯潔,一度引發(fā)了全世界對人工智能的恐慌。2019年1月DeepMind研發(fā)的AlphaStar擊敗了經(jīng)典戰(zhàn)略游戲《星際爭霸》的職業(yè)電競選手,標志著人工智能在部分信息博弈中已經(jīng)可以戰(zhàn)勝人類了。1.2深層神經(jīng)網(wǎng)絡深度學習(DL)是“一類通過多層非線性變換對高復雜性數(shù)據(jù)建模算法的合集”,深層神經(jīng)網(wǎng)絡(DNN)是實現(xiàn)“多層非線性變換”的最常用的一種方式,兩者互為代名詞。DNN的兩個非常重要的特征是多層和非線性[8],多層是為了符合分布式知識表達(1.1節(jié))的要求,非線性是為了解決更加復雜的問題。因為在現(xiàn)實世界中,絕大部分的問題都是無法線性分割的,而任何線性模型的組合仍然還是線性的。為DNN提供非線性表達能力的是激活函數(shù)(ActivationFunction)。圖1.1展示了一個神經(jīng)元的輸出是輸入數(shù)據(jù)加權和與偏置加和之后經(jīng)過激活函數(shù)非線性變換得到的結果。激活函數(shù)的特點是可微分并且單調(diào)。常用的激活函數(shù)有Sign、Sigmoid、Tanh、ReLU、P-ReLU、Leaky-ReLU、ELU、Maxout等。損失函數(shù)(LossFunction)是用于度量DNN輸出結果向量與樣本期望向量之間差距的函數(shù)。常用的損失函數(shù)有交叉熵(CrossEntropy)、均方差(MeanSquareError,MSE)、Log、L1Loss、L2Loss、ElasticNet等。構造一個深層神經(jīng)網(wǎng)絡就是確定網(wǎng)絡的三個組成部分:DNN的架構(或稱為拓撲結構)、激活函數(shù)與損失函數(shù)、訓練DNN的算法。DNN的使用一般分為訓練和推理兩個階段。訓練DNN即為網(wǎng)絡中的神經(jīng)元找到最優(yōu)權值配置,主流的訓練算法是梯度下降算法[9]和反向傳播算法(1.1節(jié))。訓練得到的網(wǎng)絡也稱為推理網(wǎng)絡(InferenceNetwork),可以用于對測試數(shù)據(jù)集或實際數(shù)據(jù)的推理。圖1.1含有激活函數(shù)的神經(jīng)元CNN網(wǎng)絡的架構可以用公式[10]來表示:輸入層→(卷積層+→池化層?)+→全連接層+,其中“卷積層+”表示一層或多層卷積層(CONV),“池化層?”表示沒有或一層池化層(POOL)。卷積層的核心是卷積核,尺寸一般為3×3、5×5、7×7。相比全連接方式,卷積核的參數(shù)非常少,各層通過卷積核共享機制可以極大減少訓練階段需要優(yōu)化的總參數(shù)量。當前主流的DNN開發(fā)及運行框架包括:TensorFlow(Google)[11]、PyTorch(Facebook)[12]、Caffe(Berkeley大學)[13]。其它DNN框架如Theano(Montreal大學)、Keras(Keras-Team)、MXNet(Amazon)、CNTK(Microsoft)的用戶基礎遠比不上前三種。DNN框架的運行原理,以TensorFlow[14]為例,首先將用戶基于應用層API編寫的、以神經(jīng)網(wǎng)絡算法為代表訓練或推理過程表達為數(shù)據(jù)流圖計算;在運行時把數(shù)據(jù)流圖轉換成C++核心層的細粒度、抽象化運行時狀態(tài),進而在計算設備(CPU或GPU)上以一致而有效的方式調(diào)度執(zhí)行。主流的DNN框架能夠支持在個人電腦、大型數(shù)據(jù)中心的服務器、嵌入式設備等多種平臺。1.3神經(jīng)網(wǎng)絡加速器近十年以來,深度學習的飛速發(fā)展得益于CPU和GPU算力的巨大進步。反過來,DNN計算時的高負載特性也促使CPU和GPU改進其體系結構以進一步提高計算效率,例如,Intel最新的XeonPhiKnightsMill處理器增加了對浮點運算“可變精度”的支持,NIVIDA最新的Volte架構增加了專門的TensorCore用于快速處理DNN任務中的被密集調(diào)用的“矩陣乘與累加”(MultiplyandAccumulate,MAC)操作。不過,這兩種通用計算芯片所包含的部分功能模塊(如多級緩存、分支處理、內(nèi)存管理、線程調(diào)度等)在處理DNN任務時并不會被用到,反而占用芯片的面積,這就限制了在處理DNN任務時每單位芯片面積計算性能與能效比的提升[15]。于是,人們研發(fā)了專用于處理深度學習任務的神經(jīng)網(wǎng)絡加速器,包括基于DSP或FPGA兩種通用型芯片改進而來的加速器,還有TPU(TensorProcessingUnit)、NPU(NeuralNetworkProcessingUnit)等采用為深度學習任務而定制體系架構的專用神經(jīng)網(wǎng)絡加速器。DSP(DigialSignalProcessor)即數(shù)字信號處理芯片,具有強大的浮點運算能力。DSP芯片通過在架構中加入神經(jīng)網(wǎng)絡處理核心成為了一種實現(xiàn)神經(jīng)網(wǎng)絡加速的可編程可擴展的有效平臺。主流的DSP加速產(chǎn)品包括EV6x(Synopsys)、VIP8000(VeriSilicon)等,它們都支持當前主流的網(wǎng)絡模型和框架。FPGA(FieldProgrammableGateArray)即現(xiàn)場可編程門陣列芯片,能夠實現(xiàn)快速的硬件功能驗證和評估,從而加快設計的迭代速度。FPGA憑借可編程陣列的特性,利用VHDL或Verilog語言可以設計新的硬件結構,更好地匹配神經(jīng)網(wǎng)絡的計算特點,比如針對CNN卷積層硬件實現(xiàn)各類優(yōu)化的卷積方法[16]。FPGA在能耗方面更優(yōu)于GPU,但浮點運算性能遜于GPU,因為目前的DNN計算還是重度依賴密集的浮點矩陣乘法(GeneralMatrixMultiplication,GEMM),而GEMM更利于映射到GPU上(常規(guī)并行性)。相比通用芯片,專用神經(jīng)網(wǎng)絡加速芯片(TPU、NPU等)在處理DNN計算時能耗更低,性能更高(芯片的面積和功耗僅為GPU的百分之一量級)。專用加速器片內(nèi)主要包括針對DNN計算特點而特別設計的運算單元和存儲單元,并且一般會設計專用的復雜指令集(ComplexInstructionSet,CISC)來處理復雜的神經(jīng)元操作,提升了速度同時減少了功耗。運算單元有兩種主流的結構:(1)樹狀結構,包括DianNao/DaDianNao/PuDianNaoNPU(寒武紀)等;(2)脈動陣列結構,包括TPU(Google)、Scaledeep(普渡大學)、Eyeriss(MIT)、ShiDianNao(寒武紀)、昇騰AtlasNPU(華為海思)等。存儲單元用來存儲神經(jīng)網(wǎng)絡每一層的輸入值、權重和輸出值等參數(shù)。隨著神經(jīng)網(wǎng)絡規(guī)模變大,傳統(tǒng)2D存儲結構的DDR技術已經(jīng)不能適應高帶寬的要求,研究者已開始把最新的3D存儲技術引入到加速器設計中[17]。同時,為了最小化數(shù)據(jù)搬移,緩解帶寬瓶頸,運算器和存儲器正朝著一體化的方向發(fā)展(憶阻器)[18]。除此以外,專用神經(jīng)網(wǎng)絡加速器未來還將支持更多的神經(jīng)網(wǎng)絡框架,并采用非馮·諾依曼體系架構來大幅度提高整體運算性能、降低功耗。2DNN性能優(yōu)化2.1輕量化神經(jīng)網(wǎng)絡本節(jié)陳述的DNN網(wǎng)絡層性能優(yōu)化相關研究工作主要是提高網(wǎng)絡的平均性能,而非實時性能?;谏鲜鯠NN性能分析結論,DNN任務性能優(yōu)化方向是減少模型中冗余參數(shù),優(yōu)化卷積核的計算結構。設計輕量化的神經(jīng)網(wǎng)絡方法包括人工手動優(yōu)化DNN模型和自動化設計方式優(yōu)化DNN模型。手動優(yōu)化DNN模型包括:深度學習模型壓縮、設計輕量化網(wǎng)絡、優(yōu)化卷積計算方式和網(wǎng)絡中卷積層池化層搭配的網(wǎng)絡結構設計。自動化設計方式是指,采用神經(jīng)網(wǎng)絡架構搜索方式,基于多目標優(yōu)化約束自動化設計網(wǎng)絡。(1)深度學習模型壓縮技術將現(xiàn)有神經(jīng)網(wǎng)絡模型部署在資源受限的實時嵌入式系統(tǒng)的主要挑戰(zhàn)之一是同時滿足嚴格的運行時限要求和受限的SWaP(Size,Weight,andPower)要求[19]。該問題尚未得到有效解決,近年來許多研究機構從軟件層面研究復雜深度學習網(wǎng)絡的精簡問題,提出了一些輕量化的神經(jīng)網(wǎng)絡模型。DNN輕量化技術是指采用模型的近似化技術保證網(wǎng)絡輸出精度不損失或損失在可接受范圍內(nèi)的情況下,使得網(wǎng)絡結構和網(wǎng)絡參數(shù)盡可能的精簡,實現(xiàn)系統(tǒng)模型的輕量化[20]。網(wǎng)絡模型近似操作常采用的三種方式是:模型壓縮、剪枝、矩陣分解。經(jīng)過模型近似技術處理過的模型稱為近似模型,該模型在許多實際環(huán)境中已被證明表現(xiàn)出足夠的精度[21]。模型近似操作的目標是為了探索更高效的基礎架構。已有的工作聚焦于剪枝、壓縮以及低比特方法來表示基本的網(wǎng)絡架構。Denil等學者證明了深度學習模型的參數(shù)化存在明顯的冗余,并且參數(shù)值可以通過預測得到。在MNIST數(shù)據(jù)集上測試,該方法在最好情況下可以預測出多層神經(jīng)網(wǎng)絡的95%的參數(shù),同時驗證了網(wǎng)絡模型參數(shù)的冗余性。Han等學者提出使用10%的精度關鍵數(shù)據(jù)快速訓練DNN,可以實現(xiàn)網(wǎng)絡98%的精度,這個結論再次證明了DNN網(wǎng)絡存在一定的冗余性,說明了DNN模型壓縮技術具有一定的可行性。Han等學者嘗試將訓練好的模型通過剪枝和權重共享增加權重稀疏性、降低存儲量的方法,使得神經(jīng)網(wǎng)絡的存儲需求減少35~49倍卻不損失網(wǎng)絡的準確性。Jaderberg等學者嘗試使用降秩技術來加速卷積神經(jīng)網(wǎng)絡,并且在場景字符分類數(shù)據(jù)集上訓練的4層CNN精度下降不到1%,卻獲得了4.5倍的加速。Zhang等學者提出了一種多層逼近時減小累積誤差的算法,將非線性響應的重構誤差降至最小,并采用低秩約束來降低了濾波器的復雜度。ImageNet數(shù)據(jù)集上的標準測試結果表明,通過該算法壓縮SPPNet得到的加速模型比原SPPNet的推理速度快了4倍。雖然加速模型的top-5誤差率比原模型增加了0。9%,但是其推理精度相比AlexNet還是提高了4.7%。在DNN網(wǎng)絡參數(shù)的線性量化方面,二值化神經(jīng)網(wǎng)絡(BinaryNeuralNetwork,BNN)具有高模型壓縮率和快計算速度的潛在優(yōu)勢,近幾年格外受到重視,成為深度學習的熱門研究方向。二值化網(wǎng)絡的方法是通過將單精度浮點型權重矩陣二值化,其中一個權重值只用一個比特來表示。二值化方法根據(jù)權重值和激活函數(shù)值的符號決定在{+1,-1}取值,數(shù)值大于等于0則取+1,否則取為-1。對于原來32位浮點型數(shù)的乘加運算,二值化之后的權重值和激活函數(shù)值可以通過一次異或運算(xnor)和一次POPCNT位運算指令實現(xiàn)。二值化方法在網(wǎng)絡模型的內(nèi)存消耗理論上能減少32倍,可以看出二值化神經(jīng)網(wǎng)絡在模型壓縮上具有很大的優(yōu)勢。研究二值化神經(jīng)網(wǎng)絡對解決當前浮點型神經(jīng)網(wǎng)絡應用到實時嵌入式系統(tǒng)中存在的模型過大,計算密度過高等問題,具有很重大的意義。(2)神經(jīng)網(wǎng)絡輕量化設計然而上述在已訓練模型上進行因式分解和稀疏卷積技術沒有從根本上實現(xiàn)網(wǎng)絡的高效輕量化,研究者們從網(wǎng)絡結構設計出發(fā),設計出了適用于移動設備的輕量級神經(jīng)網(wǎng)絡。如表1.2所示,其中最早于2016年2月加州大學伯克利分校和斯坦福大學提出輕量化網(wǎng)絡SqueezeNet模型。該模型具有新的網(wǎng)絡結構,通過降低大型卷積核的輸入通道數(shù)量,新的網(wǎng)絡結構實現(xiàn)了不同大小卷積核的通道連接來特征提取。同年10月份Google提出Xception模型。2017年4月,Google所提出的MobileNet模型具有一種新穎的卷積結構。該卷積結構的特點是在保證特征的非線性表示情況下,深度分離卷積式的卷積結構,充分解耦了傳統(tǒng)卷積模型,將卷積分為深度卷積和逐點卷積。這種卷積改進方式可以極大降低計算量和參數(shù)量,并且適配于移動設備。2018年Google和Face++分別相繼發(fā)布MobileNetV2和ShuffleNetV2,兩個輕量化網(wǎng)絡均是在之前模型的改進模型。輕量化網(wǎng)絡極大地降低了深度學習模型的參數(shù)量和計算量,同時在很大程度上保證了特征的高度抽象提取,在一定程度上保證了模型的精確度。表1.2輕量化網(wǎng)絡發(fā)展時間軸時間提出單位輕量化模型2016.02UCBerkeley&StanfordUniversitySqueezeNet2016.10GoogleXception2017.04GoogleMobileNet2017.07Face++ShuffleNet2018.01GoogleMobileNet2018.07Face++ShuffleNet實現(xiàn)輕量化網(wǎng)絡的技術方法主要包括:利用卷積核分解方法使用1×N網(wǎng)絡和N×1網(wǎng)絡代替N×N卷積核;輕量化網(wǎng)絡與傳統(tǒng)DNN網(wǎng)絡相比具有諸多優(yōu)點,網(wǎng)絡模型的精簡有助于整個系統(tǒng)的優(yōu)化。比如,在分布式訓練中,輕量化網(wǎng)絡與服務器通訊需求較小,由于網(wǎng)絡模型的參數(shù)少,從云端下載模型較快。在人工智能應用的實時嵌入式系統(tǒng)中,硬實時不僅僅關注網(wǎng)絡推理時間,還必須關注網(wǎng)絡預測精度,因此,采用輕量化網(wǎng)絡給系統(tǒng)的減少了任務執(zhí)行時間,提高了系統(tǒng)性能。SqueezeNet模型和Alexnet模型在ImageNet數(shù)據(jù)集上的推理精度相當,但是前者比后者的參數(shù)數(shù)量減少了50,并且SqueezeNet模型的尺寸小于0.5MB。3總結與展望隨著深度學習算法、嵌入式計算硬件、5G、物聯(lián)網(wǎng)的不斷發(fā)展,以深度學習為主要手段的人工智能技術必將在嵌入式應用領域得到更加廣泛的應用。因此,如何構建可信人工智能系統(tǒng)已經(jīng)成為了學術界和工業(yè)界的一個研究熱點。本文對現(xiàn)有的面向實時應用的深度學習研究工作進行了綜述,并從深層神經(jīng)網(wǎng)絡的輕量化設計出發(fā)綜述了近5年來的研究進展。雖然學術界取得了一定的成果,但仍然存在一些問題需要進一步研究和完善。下面將總結這些具體問題并展望進一步的研究方向。DNN輕量化設計問題:當前對DNN的性能分析和優(yōu)化以實驗為主要手段,缺少基于形式化的DNN任務建模與分析框架。在DNN輕量化的研究方面,缺乏描述精度和實時性之間權衡關系的量化表達方法,也沒有建立DNN輕量化技術的方法論。在DNN運行框架方面,現(xiàn)有的主流框架如TensorFlow、Caffe等尚無法滿足實時系統(tǒng)對DNN任務運行時間確定性的要求。針對這些問題,需要進一步研究DNN任務性能分析模型、DNN輕量化設計方法論、DNN實時運行框架。其中實時框架的開發(fā)涉及硬件、驅動、庫、框架等多個層次,是個復雜的系統(tǒng)工程。參考文獻[1]McCullochWS,PittsW.Alogicalcalculusoftheideasimmanentinnervousactivity.Thebulletinofmathematicalbiophysics,1943,5(4):115–133.[2]RosenblattF.Theperceptron:aprobabilisticmodelforinformationstorageandorganizationinthebrain.PsychologicalReview,1958:65–386.[3]MinskyM,PapertS.Perceptrons-anintroductiontocomputationalgeometry.MITPress,1987.[4]SejnowskiTT.Thedeeplearningrevolution.MITPress,2018.[5]HintonGE.Learningdistributedrepresentationsofconcepts.8thAnnualConferenceoftheCognitiveScienceSociety.OxfordUniversityPress,1986:112.[6]DavidE.Rumelhart,GeoffreyE.HintonRJW.Learningrepresentationbyback-propagationerrors.Nature,1986,323:533–536.[7]KrizhevskyA,SutskeverI,HintonGE.ImageNetclassificationwithdeepconvolutionalneuralnetworks.PereiraF,BurgesCJC,BottouL,WeinbergerKQ.AdvancesinNeuralInformationProcessingSystems25.CurranAssociates,Inc.,2012:1097–1105.[8]ZhouZ.Machinelearning.TsinghuaUniversityPress(TUP),2016.[9]NielsenM.Neuralnetworksanddeeplearning.DeterminationPress,2015.[10]GoodfellowI,BengioY,CourvilleA.Deeplearning.MITPress,2016.[11]Caicloud,ZhengZYGS.TensorFlow:apracticalgoogledeeplearningframework.PublishingHouseofElectronicIndustry(PHEI),2017.[12]TensorFlow../.[13]PyTorch../.[14]Caffe../.[15]PengJT,LinJBX.In-depthunderstandingoftensorflowarchitecturedesignandimplementationprinciples.Posts&TelecomPress,2018.[16]GLC,SM,YG.Asurveyofhardware-acceleratedneuralnetworks.JournalofComputerResearchandDevelopment,2019:1–22.[17]FarabetC,MartiniB,CordaB,AkselrodP,CulurcielloE,LeCunY.NeuFlow:aruntimereconfigurabledataflowprocessorforvision.IEEEConferenceonComputerVisionandPatternRecognition(CVPR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論