• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      深度卷積神經網絡的數據表示方法分析與實踐

      2017-06-23 12:47:43王佩琪劉振宇王海霞汪東升
      計算機研究與發(fā)展 2017年6期
      關鍵詞:浮點數浮點位數

      王佩琪 高 原 劉振宇 王海霞 汪東升

      1(清華大學計算機科學與技術系 北京 100084)2(清華信息科學與技術國家實驗室(籌) 北京 100084)

      深度卷積神經網絡的數據表示方法分析與實踐

      王佩琪1,2高 原1,2劉振宇2王海霞2汪東升2

      1(清華大學計算機科學與技術系 北京 100084)2(清華信息科學與技術國家實驗室(籌) 北京 100084)

      (wpql4@mails.tsinghua.edu.cn)

      深度卷積神經網絡在多個領域展現了不凡的性能,并被廣泛應用.隨著網絡深度的增加和網絡結構不斷復雜化,計算資源和存儲資源的需求也在不斷攀升.專用硬件可以很好地解決對計算和存儲的雙重需求,在低功耗同時滿足較高的計算性能,從而應用在一些無法使用通用CPU和GPU的場景中.在專用硬件設計過程中仍存在著很多亟待解決的問題,例如選擇何種數據表示方法、如何平衡數據表示精度與硬件實現代價等.為解決上述問題,針對定點數和浮點數建立誤差分析模型,從理論角度分析如何選擇表示精度及選擇結果對網絡準確率的影響,并通過實驗探究不同數據表示方法對硬件實現代價的影響.通過理論分析和實驗驗證可知,在一般情況下,滿足同等精度要求時浮點表示方法在硬件實現開銷上占有一定優(yōu)勢.除此之外,還根據浮點表示特征對神經網絡中卷積操作進行了硬件實現,與定點數相比在功耗和面積上分別降低92.9%和77.2%.

      深度卷積神經網絡;數據表示方式;浮點數據表示;定點數據表示;卷積操作優(yōu)化

      卷積神經網絡(convolution neural network, CNN)因為其高準確率,廣泛應用于語音分析、圖像識別、自動駕駛等[1-3]多個熱門研究領域.獨特的權值共享網絡結構使得CNN在處理二維數據方面取得了突破性進展.為進一步提高網絡準確率,研究者們選擇盡可能多地增加卷積神經網絡層數,采用更為復雜的連接結構,旨在學習出更多高維度特征信息.例如,2014年ILSVRC競賽(image net large scale vision recognition challenge)的冠軍模型GoogLeNet[4]具有22層,采用了“Inception”連接結構,將多個不同大小的卷積核并行操作,所得結果通過直接連接作為下一層的輸入數據.復雜結構的引入使得卷積神經網絡計算過程越來越復雜.

      結構復雜的深度卷積神經網絡包含了更多權值,同時也產生了大量的計算需求.通常情況下,較為昂貴的高性能服務器可以用來滿足計算和存儲需求,但在一些特殊場景下,限于成本或是一些低功耗、空間限制等特殊需求,服務器很難滿足要求.專用硬件可以在一定程度上很好地解決上述問題,但在設計過程中仍存在一些問題沒有得到有效地解決,如數據表示方式和精度的選擇等.在之前的研究中,一部分工作[5-7]采用定點表示方法計算CNN,利用定點計算硬件實現代價小、運算快等特點對CNN進行加速.另一部分[8-9]選擇采用浮點表示方法來保證網絡的準確率和性能.由此可見,選擇何種數據表示方式不僅取決于網絡對準確率的要求,而且會對硬件實現開銷產生影響.例如,對同一數據,使用更多位數表示數據可以保證更高的準確率,但同時又會帶來能耗和面積的增加.

      我們通過研究發(fā)現,因為神經網絡本身較強的魯棒性,在一般情況下,浮點數與定點數相比具有一定優(yōu)勢:可以用更少的位數實現與定點數相同的精度.通過巧妙地硬件設計與實現,采用浮點數可以有效降低專用硬件實現開銷.本文的貢獻主要有3點:

      1) 提出浮點數和定點數誤差分析模型,并根據該模型在理論上分析數據表示方式對網絡準確率的影響;

      2) 根據浮點數和CNN自身特性,我們對卷積計算硬件實現進行設計,有效減少了計算過程的能量消耗,并進一步通過實踐驗證了在一般情況下,浮點表示具有一定優(yōu)勢;

      3) 硬件仿真模擬顯示,采用浮點數進行卷積操作時,在保持原有吞吐率前提下功耗和面積都得到了很大程度的降低.

      Fig. 1 A typical structure of convolution neural network圖1 卷積神經網絡結構示意圖

      1 卷積神經網絡

      為了更準確地分析出2種數據表示方式在卷積神經網絡實現過程中產生的影響,我們先對CNN進行簡單介紹.圖1給出了典型的卷積神經網絡層級結構.盡管不同CNN網絡模型結構不盡相同,但基本上均包含3個基本結構:卷積層、下采樣層(也稱為抽樣層)、全連接層(也稱感知層).卷積層的主要功能是提取輸入數據特征.卷積操作采用局部感受域和權值共享的方法,逐層提取更高維度的輸入特征.在CNN中,輸入數據中一小部分連續(xù)區(qū)域被稱之為局部感受域,該區(qū)域是最底層計算結構單元,通過與對應權值(即數字濾波器)進行卷積操作得到相應特征.局部感受域結構對圖像平移、比例縮放、傾斜或者其他形式的變形具有很強的魯棒性.其中,權值在整張輸入特征圖計算上進行共享,從而降低了網絡模型的復雜度,并且避免了傳統識別算法中復雜的特征提取和數據重建過程.一般地,卷積層可計算為

      (1)

      其中,foutj表示該層第j張?zhí)卣鲌D輸出結果,fini為第i張輸入特征圖值,filterij是計算所需的相應權值(濾波器數值),biasj表示第j張輸入特征圖的對應偏置,函數δ(x)表示激活函數.

      經過卷積操作后,輸入數據的局部特征被提取出來并映射到一個平面,即為輸出結果.此時激活函數對該結果進行特征映射,使得其具有位移不變性.激活函數用來模擬生物神經網絡的激活現象,常用函數有sigmoid,tanh,ReLU(rectified linear unit), PReLU(parametric rectified linear unit)等.根據不同的應用場景和數據特征,CNN常常選擇不同的激活函數.

      每次特征提取之后,可以選擇性地在卷積層后面設置下采樣層.顧名思義,下采樣層對卷積輸出結果進行局部平均(mean-pooling)或最大值選取(max-pooling),減小數據規(guī)模,同時使得網絡對輸入數據擁有較高的畸變容忍能力.

      CNN網絡在多層卷積和下采樣疊加后,往往會緊跟著一個或多個全連接層.全連接層的結構與多層感知器幾乎相同.該層的輸出不再是二維結果,而是通過輸入向量和權值向量相乘得到一維輸出向量,并使用激活函數將結果進行特征映射,即:

      (2)

      其中,fout(j)表示該全連接層輸出向量中的第j個分量值.最后一層全連接輸出結果往往被認定為整個網絡的結果,即可以將最后一層視為分類層.

      2 數據表示

      在神經網絡實現過程中,常用的2種數字表示方式是浮點和定點,選擇哪種表示方式取決于應用需求.基于CPU和GPU計算時,往往會出于對表示范圍和精確度的考慮選擇浮點進行數據表示;而在專用芯片設計中,往往會選擇定點來進行表示,因為與相同位數的浮點數計算相比,定點數的乘法、加法等基礎計算在使用門電路實現時運算比較快,硬件代價小.但是無論哪種數據表示方式,顯然所需表示位數越少,硬件實現開銷越低.

      圖2給出了2種數據的表示格式.定點數用實數乘以2-i后的二進制結果近似表示.如圖2(a)所示,一部分高位位數用來表示整數部分,其余低位表示分數部分,最高位表示符號.小數點的位置決定了整數和小數部分位數占比分配,同時這也就決定了數據表示范圍和表示精度.浮點數通過科學計數法來表達實數,即通過一個基數(即進制)、一個指數和一個尾數來表達.在IEEE 754標準[10]中,浮點數的表示格式如圖2(b)所示,通過尾數和可以調節(jié)的指數就可以表達給定數值.其中指數可正可負,在處理負指數時還需要加上一個偏差值保存在指數域中.我們可以籠統地認為,浮點數的表示范圍主要由指數域位數決定,表示精度主要由尾數域位數決定.

      Fig. 2 Standard formats of fixed-point and floating-point representations圖2 定點數和浮點數的標準格式

      因為神經網絡模型本身具有特殊性,在計算過程中既需要數據在很大的動態(tài)范圍內進行變化,又需要在某些層內有很高的表示精度.定點表示方法實際上并不占優(yōu)勢,滿足上述2個條件意味著整數部分和小數部分所需表示位數都很多.因此,在很多情況下,只能選擇犧牲神經網絡精確度來降低硬件開銷.與之相比,浮點數因為其本身表示方法的特殊性,可以很好地滿足神經網絡對數據表示的要求.一方面,相同位數情況下,浮點因為采用科學計數法,所能表示的動態(tài)范圍遠大于定點;另一方面,標準IEEE浮點表示方法中要求所有數據表示格式為1.fraction× 2expont,并在實際二進制表示時省略表示前面整數部分1,因此也額外帶來了一定程度上的位數優(yōu)勢.當然,浮點數的乘加運算十分復雜,硬件開銷比定點數計算大,而且還會引入額外誤差.接下來,我們將會針對該問題進行詳細分析.

      3 深度卷積網絡誤差模型

      在本節(jié)的理論推導中,假設各種數據表示都會保證足夠大的動態(tài)范圍,從而避免上溢發(fā)生;假設通過優(yōu)化非線性函數的分段,消除了擬合誤差[11],則舍入誤差成為唯一誤差源.

      3.1 基于定點表示的卷積網絡誤差模型

      Fig. 3 Flow graph of error in fixed-point convolution圖3 定點數據表示的卷積操作誤差流圖

      Fig. 4 Flow graph of error in floating-point convolution圖4 浮點數據表示的卷積操作誤差流圖

      由模型可知,來自上一層的輸出信號連同噪聲首先會經過一層非線性激活函數.在這里我們考慮常用函數sigmoid或者tanh,因此通過一階泰勒級數展開有:

      (3)

      故得:

      (4)

      盡管不同非線性激活函數導數不同,從而對于誤差傳播產生不同影響,但是絕大多數導數在正負區(qū)間內都是單調的,所以:

      (5)

      我們可以推導出激活函數的輸入噪信比與輸出噪信比大小關系:

      (6)

      通過式(6)可知,非線性激活函數并不會使得輸出噪信比惡化,所以在求取輸出噪信比上限時可以忽略非線性激活函數影響.參考文獻[12]和式(6),第l層輸出噪信比為

      (7)

      綜上分析,對于一個共L層深度的卷積網絡來說,輸出噪信比上限為

      (8)

      3.2 基于浮點表示的卷積網絡誤差模型

      圖4給出了基于浮點表示的卷積操作誤差流圖.與定點不同,浮點乘法與加法操作均會引入乘性舍入誤差.根據文獻[12],同理可推導出誤差上限:

      (9)

      關于誤差模型更多理論推導和分析過程可參見文獻[13],本文不再進行贅述.

      3.3 數據表示精度對網絡準確率的影響

      為了探究不同數據表示方法和位數選擇對神經網絡準確率的影響,我們選擇了3個不同規(guī)模卷積神經網絡在深度學習框架Caffe上進行實現,如表1所示.

      LeNet-5[14]是最早的卷積神經網絡之一,推動了深度學習領域發(fā)展.該網絡規(guī)模極小,應用在Minst數據集上對灰度手寫數字進行識別.LeNet-5中采用的許多概念對后續(xù)研究起到了巨大影響力,如使用卷積操作提取空間特征、將數據映射到空間均值下采樣等.CIFAR-10準確來講并不是一個神經網絡模型而是一個數據集,這里用于指代Caffe深度學習框架[15]中作用在CIFAR-10數據集上的神經網絡模型.這里我們僅用數據集名稱作為標識與其他網絡模型進行區(qū)分.AlexNet[16]將LeNet-5核心思想擴展到了更大規(guī)模、能提取出更深維度數據特征的神經網絡上,與之前神經網絡相比規(guī)模上有了很大提升,屬于大型神經網絡中典型代表.在整個理論分析和實驗過程中,我們只考慮前向判斷(inference phrase)過程.因為在工業(yè)界實際應用中多采用線下訓練的方式,用戶端只需進行前向判斷即可.

      Table 1 Parameters of Popular Convolution Neural Networks表1 卷積神經網絡模型參數

      采用有限字長二進制進行實數表示時,位數越少,產生的誤差就越大.與當前大多數研究采用的方法相似,我們在網絡實現過程中采用32位浮點數進行訓練,得出理想的精確結果;然后將這些參數舍入成不同配置,對測試結果準確度進行分析.圖5給出了定點數和浮點數位數選擇對3個神經網絡準確度的影響情況,可以看到,當位數達到一個“上界”時,網絡準確率幾乎就不再變化;而隨著網絡規(guī)模增加,浮點與定點表示所需的最佳字長都會增加,這是由于各個卷積層的誤差累計所造成.除此之外,定點表示相較于浮點所需字長增加趨勢更加明顯.以CIFAR-10為例,我們可以看到最終2種表示方法的錯誤率都保持在24.5%,浮點數尾數所需位從4位開始,錯誤率就開始逐漸降低,直到8 b時達到穩(wěn)定;而定點數的小數位從4 b開始直至6 b錯誤率都很高,直到7 b時才有了下降趨勢,并且最終需要8 b才達到穩(wěn)定.所以我們認為在一般情況下,浮點表示比較定點更適合于大型網絡.

      Fig. 5 Error rate vs word length圖5 數據位數選擇對網絡準確率的影響

      根據我們之前提出的定點和浮點卷積網絡誤差模型,我們分別對3個神經網絡的最佳位數配置計算和統計了因有限字長實數表示而引入的噪信比誤差,如表2所示.其中BF代表定點表示中小數域位數,BM代表浮點表示中尾數域位數.從表2中我們可以看出,無論定點數還是浮點數所引入的噪信比都很低,對網絡最終準確率不會產生影響.

      在硬件設計過程中,保證相同精度要求情況下,基于上述分析我們可以用少于定點位數的浮點數來對神經網絡數據進行表示.隨著網絡規(guī)模增大,表示整個網絡所有數據的動態(tài)范圍也隨之增加,因此浮點數的優(yōu)勢會更加明顯.當前一些相關研究[17-18]會將網絡進行一些量化處理,采用位數極少的定點數來進行計算.但在實際數據處理過程中,往往需要對量化后的數據進行展開從而帶來一些額外代價;除此之外,這些研究中提到的優(yōu)化方法同樣也適用于浮點數,可以進一步優(yōu)化表示所需位數,我們正在進行相關方面的研究.

      綜上所述,一般情況下,浮點數可以用少于定點所需位數來保證網絡所要求的精度.考慮到硬件實現代價,雖然浮點數因為本身計算復雜性,同樣位數條件下所需功耗和面積要大于定點數,但因浮點數本身特性可以在很大程度上減少自身表示位數,這樣在硬件實現過程中極有可能帶來能耗和面積上的降低.接下來,我們將通過實驗對上述結論進行驗證.

      4 實驗及結果分析

      在實驗部分,我們采用Verilog-HDL對傳統卷積方法和數據為中心的卷積方法進行硬件層級描述,通過Synopsys Design Compiler等軟件進行模擬、仿真、綜合等工作.實驗中使用TSMC 65 nm GP標準庫,同時使用Artisan single-ported register file memory compiler對片上緩存進行模擬仿真.考慮到需要滿足多個神經網絡的精度需求,我們選擇AlexNet網絡的配置位數(定點數BI=11,BF=10;浮點數BE=5,BM=10)進行實驗測試.

      4.1 基本操作單元的實現

      由式(1)(2)我們可以看出,乘法和加法是卷積神經網絡中基本操作,因此我們選擇兩輸入加法單元和兩數乘法單元來進行硬件實現的比較和分析.表3給出了2種基本操作單元在不同數據表示方式下所需功耗和面積.從表3中我們可以看出,在兩輸入乘法單元的實現中,浮點數的優(yōu)勢比較明顯,在面積與功耗上分別降低了55%和73.6%.因為標準浮點數采用科學計數法的方法表示,指數域只需進行加法操作即可;而浮點數加法計算需要進行對階、移位、歸一化等一系列額外操作,所以導致了兩輸入加法的功耗和面積都要大于定點計算.

      在神經網絡中,往往會對多個乘積結果進行累加.當前較為普遍的實現是采用加法樹,可以保證計算精度.為了解決加法操作代價過大的問題,并且考慮到浮點表示特點,我們對加法硬件實現方法進行了改進.我們的計算方法是將多個浮點操作數的指數部分進行對齊,然后小數部分直接相加.因為卷積神經網絡中歸一化操作會使各個浮點結果之間相差不大,所以精度上的損失幾乎可以忽略不計.表4中給出了16位浮點數采用傳統加法樹和直接相加2種方法時功耗和面積實現開銷.從表4中我們可以看出,采用直接相加的方法可以在一定程度上降低硬件開銷,4輸入和8輸入加法器分別帶來了70.4%和74.4%在功耗方面的降低.

      Table 3 Hardware Overhead with Fixed-point and Floating-point Arithmetic on AlexNet表3 AlexNet中定點表示與浮點表示的硬件實現開銷

      Table 4 Hardware Overhead of Different Adders表4 不同加法器的硬件實現開銷

      4.2 卷積操作的硬件實現

      因為卷積在整個深度卷積神經網絡的計算過程中占據了絕大部分,所以我們選擇對卷積操作進行硬件模擬仿真,驗證使用浮點數據表示方式對深度神經網絡硬件實現過程所帶來的優(yōu)勢.實際上,我們實現了一個可以處理整個卷積神經網絡的硬件結構,片上系統中存儲設計和控制邏輯采用與之前研究工作[5]相似的設計.但是為了更準確地對卷積操作部分進行分析,排除片上其他計算單元和元器件對性能產生影響,我們將卷積操作的基本計算基元陣列(processing engines, PEs)實驗結果單獨提出進行分析比較.

      在進行卷積操作計算時,為了充分利用浮點數帶來的硬件實現優(yōu)勢,我們將傳統卷積操作進行分解計算.一個K×K大小濾波器的卷積操作可以被分解為K個乘加分量,每個分量是在該K×K大小感受域中同一行數據計算結果加和.具體數據流和計算方法可參考文獻[19].圖6給出了以3×3大小濾波器為例,基本計算單元PE陣列結構示意圖.PE基元我們采用兩輸入乘法單元,而加法器則采用本文提出的加法器設計.為了讓PE陣列既可以計算卷積層,又可以計算全連接層,我們加入了多個二路選擇器和D觸發(fā)器.在卷積層計算中,4輸入加法器最后一個分量選擇上一行的計算結果,即D觸發(fā)器的輸出結果(如圖6中實線所示);在全連接層計算中則選擇本行的計算結果進行累加(如圖6中虛線所示).

      Fig. 6 Structures of PE arrays圖6 PE陣列硬件實現結構示意圖

      為了平衡卷積層和全連接層計算,并滿足深度卷積網絡的計算需求,實驗設置PE陣列大小為16×16;輸入數據大小設置為常用標準圖片大小,即256×256.在實驗過程中,我們只考慮前向過程,因為在工業(yè)界實際應用中多采用線下訓練的方式,用戶端只需進行前向判斷即可.表5給出了分別采用2種不同卷積方式下的硬件功耗和面積.從表5中我們可以看到,利用浮點數表示特點進行數據為中心的卷積計算方法,同時采用定制浮點加法器部件,浮點數表示與定點數相比,可以節(jié)省了92.9%的能量消耗,且面積也減少了77.2%.在接下來的工作中,我們會對片緩存結構進行優(yōu)化,使其適應這種數據為中心的卷積操作,進一步提升系統性能.除此之外,未來我們也會對全連接層的計算進行相關優(yōu)化和研究.

      Table 5 Overhead of PE Arrays Using Different Numeric Representations @600 MHz

      5 相關工作

      當前有很多研究機構和人員對神經網絡硬件加速和優(yōu)化方面進行探索,并得出了很多有意義的成果.與軟件算法層級加速和優(yōu)化相比,硬件系統優(yōu)化更容易滿足深層和復雜的網絡結構.

      在專用硬件系統實現過程中,選擇合適的數據表示方法是一個重要環(huán)節(jié).定點數和浮點數是2種較為常見的表示方法,不同應用會根據自身需求選擇不同精度表示.例如,文獻[6-7,20]采用16 b定點數,文獻[21-22]采用48 b定點數,文獻[23]采用32位單精度浮點數進行數據表示.研究者們根據經驗或實踐來進行數據表示方法和表示精度的選擇,往往沒有較為完善的理論模型對決策結果進行支持.在傳統多層感知器網絡中,Holi等人[23]提出了一種誤差分析理論模型,該模型中在網絡前向和后向2個階段中使用定點數據表示,并只針對單一錯誤源.因此,其他錯誤源所引入的誤差在該模型中被忽略.在最近研究中,Courbariaux等人[24]提出在神經網絡訓練過程中,動態(tài)定點表示方法可以滿足Maxout網絡對精度的需求.該文中提出了幾種在Maxout網絡計算中可以達到同等精度的表示方法:16 b浮點、20 b定點以及10~12 b混合動態(tài)定點表示方法,并最終采用了位數最少的動態(tài)定點表示法.實際上,這種表示方法會在硬件實現過程中隱式地引入額外硬件開銷.Gupta等人[25]關注于神經網絡訓練中有限定點數字長會對網絡本身準確度和性能產生怎樣的影響,并且該文提出了一種數據舍入方案,在訓練階段(learning phase)占據了重要地位.但是這種基于批次處理的數據處理方法無法很好地應用在測試階段(testing phase).與之前研究工作相比較,本文提出的誤差分析模型則可以很好地應用在測試階段,并且對于深度卷積神經網絡中定點和浮點2種表示方法都可以進行誤差分析.

      專用硬件設計上,近幾年也出現了很多十分有研究價值和借鑒意義的成果,如文獻[9]中提到對CNN性能的分析建模方法,通過模型分析出網絡硬件實現過程中的性能瓶頸和可優(yōu)化部件;又如中科院“寒武紀”項目中的系列研究工作,其中既有單個節(jié)點加速結構[5],又有可以將所有權值都存儲在片上多節(jié)點加速系統[6].因為一些新興技術涌現與發(fā)展,神經網絡加速硬件設計與實現方法又涌現了新的可能性.文獻[26-27]中采用了新型憶阻器作為存儲和計算元件,很大程度地提升了性能.此外,3D堆疊基礎和內存計算等技術也用于硬件設計之中.

      6 結 論

      本文研究了在神經網絡計算過程中,2種最為常見的表示方法(浮點數和定點數)對神經網絡準確度以及硬件實現代價的影響.本文基于這2種表示方法分別建立了誤差分析模型,并根據模型從理論角度分析了如何選擇表示位數以滿足網絡對精度的需求.我們發(fā)現在一般情況下,表示同等精度時浮點數所需位數少于定點數.因此,結合IEEE 754標準浮點表示特征,我們通過實驗驗證了使用浮點數可以在神經網絡硬件實現中有效地降低功耗和面積,分別減少了92.9%和77.2%.在最近的研究工作中,一些研究工作通過對網絡模型算法本身優(yōu)化[17],如經過微調或重訓練等方法,用很少的定點位數即可滿足網絡精度需求.實際上浮點數經過上述優(yōu)化,也可以進一步減少表示位數.在未來研究工作中,我們將采取一系列算法級優(yōu)化處理,進一步減少數據表示位數需求,從而在更大程度上降低神經網絡硬件實現代價.

      [1]Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2014: 580-587

      [2]Garcia C, Delakis M. Convolutional face finder: A neural architecture for fast and robust face detection[J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 2004, 26(11): 1408-1423

      [3]Zou A M, Kumar K D, Hou Z G, et al. Finite-time attitude tracking control for spacecraft using terminal sliding mode and Chebyshev neural network[J]. IEEE Trans on Systems, Man, and Cybernetics, Part B (Cybernetics), 2011, 41(4): 950-963

      [4]Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 1-9

      [5]Chen Tianshi, Du Zidong, Sun Ninghui, et al. Diannao: A small-footprint high-throughput accelerator for ubiquitous machine-learning[J]. ACM Sigplan Notices, 2014, 49(4): 269-284

      [6]Chen Yunji, Luo Tao, Liu Shijin, et al. Dadiannao: A machine-learning supercomputer[C] //Proc of the 47th Annual IEEE/ACM Int Symp on Microarchitecture. Los Alamitos, CA: IEEE Computer Society, 2014: 609-622

      [7]Du Zidong, Fasthuber R, Chen Tianshi, et al. ShiDianNao: Shifting vision processing closer to the sensor[J]. ACM SIGARCH Computer Architecture News, 2015, 43(3): 92-104

      [8]Qiu Jiantao, Wang Jie, Yao Song, et al. Going deeper with embedded FPGA platform for convolutional neural network[C] //Proc of the 2016 Special Interest Group on Design Automation of the Association for Computing Machinery (ACM/SIGDA) Int Symp on Field-Programmable Gate Arrays. New York: ACM, 2016: 26-35

      [9]Zhang Chen, Li Peng, Sun Guangyu, et al. Optimizing FPGA-based accelerator design for deep convolutional neural networks[C] //Proc of the 2015 Special Interest Group on Design Automation of the Association for Computing Machinery (ACM/SIGDA) Int Symp on Field-Programmable Gate Arrays. New York: ACM, 2015: 161-170

      [10]Overton M L. Numerical Computing with IEEE Floating Point Arithmetic[M]. Philadelphia, PA: Society for Industrial and Applied Mathematics, 2001

      [11]Vassiliadis S, Zhang M, Delgado-Frias J G. Elementary function generators for neural-network emulators[J]. IEEE Trans on Neural Networks, 2000, 11(6): 1438-1449

      [12]Oppenheim A V, Weinstein C J. Effects of finite register length in digital filtering and the fast Fourier transform[J]. Proceedings of the IEEE, 1972, 60(8): 957-976

      [13]Gao Yuan, Liu Zhenyu, Wang Dongsheng. Error models of finite word length arithmetic in CNN accelerator design[C] //Proc of 2016 Visual Communications and Image Processing (VCIP). Piscataway, NJ: IEEE, 2016: 1-4

      [14]LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324

      [15]Jia Yangqing, Shelhamer E, Donahue J, et al. Caffe: Convolutional architecture for fast feature embedding[C] //Proc of the 22nd ACM Int Conf on Multimedia. New York: ACM, 2014: 675-678

      [16]Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C] //Proc of Advances in Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc, 2012: 1097-1105

      [17]Han Song, Liu Xingyu, Mao Huizi, et al. EIE: Efficient inference engine on compressed deep neural network[C] //Proc of the 43rd Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2016: 243-254

      [18]Hubara I, Courbariaux M, Soudry D, et al. Binarized neural networks[C] //Proc of Advances in Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc, 2016: 4107-4115

      [19]Wang Peiqi, Liu Zhenyu. Data-centric computation mode for convolution in deep neural networks[C] //Proc of 2017 Int Joint Conf on Neural Networks (IJCNN). Piscataway, NJ: IEEE, 2017: 133-139

      [20]Sankaradas M, Jakkula V, Cadambi S, et al. A massively parallel coprocessor for convolutional neural networks[C] //Proc of the 20th IEEE Int Conf on Application-Specific Systems, Architectures and Processors (ASAP 2009). Piscataway, NJ: IEEE, 2009: 53-60

      [21]Chakradhar S, Sankaradas M, Jakkula V, et al. A dynamically configurable coprocessor for convolutional neural networks[J]. ACM SIGARCH Computer Architecture News, 2010, 38(3): 247-257

      [22]Farabet C, Poulet C, Han J Y, et al. CNP: An FPGA-based processor for convolutional networks[C] //Proc of Int Conf on Field Programmable Logic and Applications (FPL 2009). Piscataway, NJ: IEEE, 2009: 32-37

      [23]Holi J L, Hwang J N. Finite precision error analysis of neural network hardware implementations[J]. IEEE Trans on Computers, 1993, 42(3): 281-290

      [24]Courbariaux M, Bengio Y, David J. Low precision arithmetic for deep learning[J/OL]. arXiv:1412.7024, 2014

      [25]Gupta S, Agrawal A, Gopalakrishnan K, et al. Deep learning with limited numerical precision[C] //Proc of the 32nd Int Conf on Machine Learning(ICML 2015). Madison, Wisconsin: Omnipress, 2015: 1737-1746

      [26]Chi Ping, Li Shuangchen, Xu Cong, et al. PRIME: A novel processing-in-memory architecture for neural network computation in ReRAM-based main memory[C] //Proc of the 43rd Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2016: 27-39

      [27]Shafiee A, Nag A, Muralimanohar N, et al. ISAAC: A convolutional neural network accelerator with in-situ analog arithmetic in crossbars[C] //Proc of the 43rd Int Symp on Computer Architecture. Piscataway, NJ: IEEE, 2016: 14-26

      Wang Peiqi, born in 1994. PhD candidate. Her main research interests include computer architecture, deep neural network accelerator design and optimization.

      Gao Yuan, born in 1991. PhD candidate. His main research interests include error analysis of digital system calculation and convolution neural network accelerator design.

      Liu Zhenyu, born in 1973. PhD, associate professor. His main research interests include video coding algorithm, large scale integrated circuit design, image signal processing and multi-core processor simulation system.

      Wang Haixia, born in 1977. PhD, associate professor. Her main research interests include computer architecture, network on chip, and memory hierarchy.

      Wang Dongsheng, born in 1966. PhD, professor, PhD supervisor. His main research interests include computer architecture, distributed system, and accelerator design.

      A Comparison Among Different Numeric Representations in Deep Convolution Neural Networks

      Wang Peiqi1,2, Gao Yuan1,2, Liu Zhenyu2, Wang Haixia2, and Wang Dongsheng2

      1(DepartmentofComputerScienceandTechnology,TsinghuaUniversity,Beijing100084)2(TsinghuaNationalLaboratoryforInformationScienceandTechnology,Beijing100084)

      Deep convolution neural networks have been widely used in industries as well as academic area because of their triumphant performance. There are tendencies toward deeper and more complex network structures, which leads to demand of substantial computation and memory resources. Customized hardware is an appropriate and feasible option, which is beneficial to maintain high performance in lower energy consumption. Furthermore, customized hardware can also be adopted in some special situations where CPU and GPU cannot be placed. During the hardware-designing processes, we need to address some problems like how to choose different types of numeric representation as well as precision. In this article, we focus on two typical numeric representations, fixed-point and floating-point, and propose corresponding error models. Using these models, we theoretically analyze the influence of different types of data representation on the hardware overhead of neural networks. It is remarkable that floating-point has clear advantages over fixed-point under ordinary circumstances. In general, we verify through experiments that floating-point numbers, which are limited to certain precision, preponderate in both hardware area and power consumption. What’s more, according to the features of floating-point representation, our customized hardware implementation of convolution computation declines the power and area with 14.1× and 4.38× respectively.

      deep convolution neural network; numeric representation; floating-point computation; fixed-point computation; convolution optimization

      2017-02-27;

      2017-04-13

      國家自然科學基金項目(61373025);國家重點研發(fā)計劃項目(2016YFB1000303) This work was supported by the National Natural Science Foundation of China (61373025) and the National Key Research and Development Program of China (2016YFB1000303).

      汪東升(wds@tsinghua.edu.cn)

      TP183

      猜你喜歡
      浮點數浮點位數
      LEO星座增強GNSS PPP模糊度浮點解與固定解性能評估
      四種Python均勻浮點數生成方法
      電腦報(2021年11期)2021-07-01 08:26:31
      五次完全冪的少位數三進制展開
      基于浮點DSP的鐵路FSK信號檢測
      在C語言中雙精度浮點數線性化相等比較的研究
      船電技術(2017年1期)2017-10-13 04:23:24
      非精確浮點數乘法器設計
      基于FPGA的浮點FIR濾波器設計
      改進的Goldschmidt雙精度浮點除法器
      遙感衛(wèi)星CCD相機量化位數的選擇
      “判斷整數的位數”的算法分析
      河南科技(2014年11期)2014-02-27 14:09:41
      乾安县| 台湾省| 固安县| 阿拉尔市| 嘉义县| 富蕴县| 赞皇县| 南召县| 德兴市| 上高县| 汝城县| 渝中区| 乐都县| 定州市| 巴彦县| 香港 | 平湖市| 岐山县| 鹰潭市| 凤台县| 绥中县| 桑植县| 雅安市| 凤阳县| 堆龙德庆县| 钟祥市| 蓝山县| 镇雄县| 连城县| 盐边县| 赣榆县| 海丰县| 安溪县| 新郑市| 萨嘎县| 平利县| 丹凤县| 湘潭县| 兴城市| 藁城市| 怀仁县|