周一
摘 要 近年來,隨著深度學習算法的突破和當前計算能力的局限性,硬件加速受到越來越多的關(guān)注,許多研究機構(gòu)對硬件加速器進行了廣泛而深入的研究。本文介紹了深度學習算法的原理,分析了不同的硬件解決方案的優(yōu)缺點,并展望了硬件加速的未來前景。
關(guān)鍵詞 深度學習;算法;硬件加速
中圖分類號 TP2 文獻標識碼 A 文章編號 2095-6363(2017)16-0134-02
1 深度學習原理
1.1 深度學習概念
深度學習是機器學習中一個非常接近人工智能的領(lǐng)域,它的目的在于建立一個神經(jīng)網(wǎng)絡(luò)以模擬人腦的學習和分析的過程。深度學習的主要思想就是堆疊多個層,將低層的輸出作為更高一層的輸入,含多隱層的多層感知器就是一種深度學習結(jié)構(gòu)的體現(xiàn)。通過這樣的方式,深度學習能夠通過組合低層特征來形成更為抽象的高層表示屬性,從而發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示[1]。
以學習中有沒有標簽作為標準,深度學習的方式分為監(jiān)督學習和無監(jiān)督學習。兩種不同的學習框架下建立的學習模型也是存在差別的。比如,卷積神經(jīng)網(wǎng)絡(luò)(CNN)即是一種深度的監(jiān)督學習的機器學習模型,而深度置信網(wǎng)絡(luò)(DBN)則是一種無監(jiān)督學習的機器學習
模型。
1.2 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)是一種特殊的深層的神經(jīng)網(wǎng)絡(luò)模型,它已經(jīng)發(fā)展成為語音和圖像識別的研究熱點。CNN的提出是為了滿足最小化數(shù)據(jù)預(yù)處理的要求。在CNN中,圖像的局部感受野作為高一層結(jié)構(gòu)的最底層輸入,每層通過一個數(shù)字濾波器去提取數(shù)據(jù)最顯著的特征,通過這樣的方式網(wǎng)絡(luò)能夠獲取對位移、縮放和旋轉(zhuǎn)不變的觀測數(shù)據(jù)的顯著特征CNN的網(wǎng)絡(luò)結(jié)構(gòu)大致如圖1所示。
C1層的3個映射圖是卷積之后的結(jié)果。S2層中的3個圖分別是對C1中的3個特征映射圖中的特定尺寸的區(qū)域進行采樣的結(jié)果,這個過程稱為pooling。Pooling 分為max pooling和mean pooling。其中max pooling就是選出該區(qū)域中最大的像素點。通過pooling,可以進一步實現(xiàn)降維。之后重復之前的卷積和pooling的過程,最后形成一個一維向量輸入到傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)[2]。
2 深度學習算法的硬件發(fā)展現(xiàn)狀
PC機一般只有一個CPU,只能串行執(zhí)行,沒有充分發(fā)揮神經(jīng)網(wǎng)絡(luò)并行執(zhí)行的優(yōu)點。隨著神經(jīng)網(wǎng)絡(luò)尺寸的不斷加大,仿真時間復雜度迅速增大,因此,軟件模擬執(zhí)行只適用于規(guī)模小,速度慢,對實時性要求不高的場合。采用硬件實現(xiàn)神經(jīng)網(wǎng)絡(luò),抗干擾能力強,適用于自控應(yīng)用,不用程序控制。全并行執(zhí)行時的系統(tǒng)可以取得不依賴于網(wǎng)絡(luò)規(guī)模大小的執(zhí)行速度。目前幾種主流實現(xiàn)深度學習算法的硬件主要包括CPU、GPU、ASIC以及FPGA。
2.1 CPU
在過去的10多年中,CPU的性能得到了極大提升,但是,串行處理的特點成為了其在深度學習領(lǐng)域的致命缺點。盡管多核使得它能夠在一定程度上實現(xiàn)并行處理,但是也只是體現(xiàn)在小數(shù)據(jù)集上。對于大規(guī)模和復雜數(shù)據(jù)集,其處理能力還遠遠不夠。
2.2 GPU
相比于CPU,GPU具有更加強大的并行處理能力,其處理速度能達到CPU的10倍以上。GPU具有出色的浮點計算性能,在滿足所需精準度的同時,能夠快速處理分類和卷積運算。相對傳統(tǒng)CPU的方式,擁有更快的處理速度、更少的服務(wù)器投入和更低的功耗。以手寫體數(shù)字識別為例,目前的GPU加速芯片能達到99.5%以上的正確率。在第六屆ImageNet圖像識別大賽上,微軟基于GPU加速的計算機識別系統(tǒng)在圖像分類錯誤率方面達到3.5%。
2.3 ASIC
ASIC,即專用集成電路芯片,由于其定制化的特點,相比于GPU,其功耗更低,也更加高效。但是定制化的特點也造成了ASIC的可遷移能力不強,而且造價高昂,生產(chǎn)周期長,需要耗費大量的人力、物力和財力。Google之前發(fā)布了一款人工智能芯片:Tensor Processing Unit,其學習效果和運行效率比起傳統(tǒng)的CPU和GPU都要高出至少一個量級,兼具低功耗和高速度的雙重優(yōu)點。
2.4 FPGA
FPGA,作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。由于FPGA是可編程重構(gòu)的硬件,相比于ASIC要更加靈活,也省去了流片過程,能夠很好的兼顧處理速度和功耗。目前的深度學習網(wǎng)絡(luò)在不同的應(yīng)用場景中,其層數(shù)和規(guī)模都不相同,因此硬件的設(shè)計框架也相應(yīng)調(diào)整。采用FPGA實現(xiàn)深度學習算法,能夠縮短開發(fā)周期,降低開發(fā)成本,特別適用于高校的科學研究。
3 未來前景
深度學習的硬件加速受到了各國相關(guān)領(lǐng)域研究人員和高科技公司的重視。著名的深度學習專家Lecun曾經(jīng)提出一種用于識別數(shù)字的卷積網(wǎng)絡(luò)LeNet-5,其準確度能達到99%以上,當年美國大多數(shù)銀行曾用于識別支票上的手寫體數(shù)字;前段時間風靡全球的圍棋人工智能程序Alphago的主要工作原理也是深度學習網(wǎng)絡(luò),其核心處理芯片正是Google公司開發(fā)的Tensor Processing Unit;百度是中國互聯(lián)網(wǎng)企業(yè)第一個把深度學習作為核心技術(shù)研究的企業(yè),在語音和圖像產(chǎn)品方面都取得了長足的進步。
目前,在人臉識別數(shù)據(jù)集的算法表現(xiàn)上,深度學習算法已經(jīng)超過了人類。在不久的將來,很多混合型的問題,比如視頻識別、文字處理和網(wǎng)絡(luò)安全研究都會采用深度學習算法來解決。
4 結(jié)論
由于深度學習算法由于網(wǎng)絡(luò)復雜和數(shù)據(jù)量大等特點,傳統(tǒng)的軟件模擬和處理能力存在明顯的缺陷,因此采用硬件加速已經(jīng)成為了如今的發(fā)展趨勢。下一階段更智能、更大規(guī)模的神經(jīng)網(wǎng)絡(luò)也推動著加速工具的開發(fā)和研究。FPGA已經(jīng)承擔了相當一部分的運算任務(wù),GPU則成為了大規(guī)模訓練的主流解決方案,整個生態(tài)系統(tǒng)正在逐步完善。相信隨著加速芯片新技術(shù)研究的成熟,深度學習將被應(yīng)用在更多的商業(yè)產(chǎn)品中。
參考文獻
[1]尹寶才,王文通,王立春.深度學習研究綜述[J].北京工業(yè)大學學報,2015(1):48-59.
[2]Bengio Y.Learning Deep Architectures for AI[M].Now Publishers,2009.endprint