周一

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