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