<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 智能計算 > 設計應用 > 面向網(wǎng)絡(luò )邊緣應用的新一代神經(jīng)網(wǎng)絡(luò ) 

面向網(wǎng)絡(luò )邊緣應用的新一代神經(jīng)網(wǎng)絡(luò ) 

作者:Hussein Osman 時(shí)間:2017-12-26 來(lái)源:電子產(chǎn)品世界 收藏
編者按: 介紹了面向網(wǎng)絡(luò )邊緣應用的新一代神經(jīng)網(wǎng)絡(luò )——微型二值神經(jīng)網(wǎng)絡(luò ),可在保持低功耗的同時(shí)減少對存儲器的需求。

作者 / Hussein Osman

本文引用地址:http://dyxdggzs.com/article/201712/373604.htm

萊迪思半導體

Hussein Osman,在半導體行業(yè)擁有14年的經(jīng)驗,其中包括13年的系統設計工作經(jīng)驗,目前擔任產(chǎn)品營(yíng)銷(xiāo)經(jīng)理。在加入萊迪思之前,曾任賽普拉斯半導體公司的專(zhuān)家級系統工程師,致力于尖端的觸摸、電容式觸摸感應和指紋技術(shù)產(chǎn)品定義和開(kāi)發(fā)。

  人工智能(AI)、和機器學(xué)習領(lǐng)域的發(fā)展十分迅速,開(kāi)發(fā)工程師正不斷嘗試為系統添加更多智能功能,前景不可估量。其中各類(lèi)應用對于計算的需求是不同的。在數據中心領(lǐng)域,用于執行圖像識別的是“經(jīng)過(guò)訓練”的,舉個(gè)例子,通過(guò)向投喂成千上萬(wàn)的圖像并分配權重直至神經(jīng)網(wǎng)絡(luò )能夠正確識別對象。就像人類(lèi)從一張白紙到最后成為知識淵博的人,當新數據出現時(shí),人們能夠根據過(guò)去的經(jīng)驗進(jìn)行“推理”并做出決定,同樣,系統必須使用“推理技術(shù)”根據神經(jīng)網(wǎng)絡(luò )從新數據上學(xué)到的東西來(lái)進(jìn)行“推理”并得出結果。

  建立數據架構并計算推理所需的權重可能需要數TB的數據和大量的計算資源。因此,數據中心常用的深度學(xué)習技術(shù)通常使用大尺寸、高性能GPU來(lái)滿(mǎn)足如此大量的計算要求。

  高功耗GPU對于想要將AI優(yōu)勢引入到網(wǎng)絡(luò )邊緣領(lǐng)域的設計工程師來(lái)說(shuō)太過(guò)奢侈。在網(wǎng)絡(luò )邊緣領(lǐng)域,部署數據中心使用的基于浮點(diǎn)運算的深度學(xué)習技術(shù)是不太現實(shí)的。設計工程師必須開(kāi)發(fā)計算效率高的解決方案,不僅要達到精度要求,還要滿(mǎn)足消費電子市場(chǎng)對于設備的功耗、尺寸和成本的限制。盡管設備在數據中心接受過(guò)訓練,可是一旦部署到網(wǎng)絡(luò )邊緣領(lǐng)域,就要盡可能使用更少位數進(jìn)行計算來(lái)實(shí)現推理。為了簡(jiǎn)化計算流程,設計工程師從浮點(diǎn)數運算轉為定點(diǎn)數運算,如果可能的話(huà),甚至使用最基本的整數運算。通過(guò)改變訓練的方式來(lái)補償浮點(diǎn)數到定點(diǎn)整數的數據量級上的差異,設計工程師得以開(kāi)發(fā)解決方案來(lái)實(shí)現更快的訓練速度和更高的精度,從而將定點(diǎn)/低精度整數運算神經(jīng)網(wǎng)絡(luò )的性能提升至浮點(diǎn)數運算神經(jīng)網(wǎng)絡(luò )的水平。為了最為簡(jiǎn)單地構建的網(wǎng)絡(luò )邊緣設備,訓練需要生成具有1位權重和激活的神經(jīng)網(wǎng)絡(luò )模型。這樣的模型被稱(chēng)為神經(jīng)網(wǎng)絡(luò )。

  VectorBlox Computing 和萊迪思半導體公司的工程師已經(jīng)合作開(kāi)發(fā)了一種新器件,以充分利用神經(jīng)網(wǎng)絡(luò )的優(yōu)勢。該器件通過(guò)方法優(yōu)化了神經(jīng)網(wǎng)絡(luò )的尺寸、成本、功耗和性能,大大降低存儲器需求,同時(shí)最大限度降低了功耗。這可以使用低功耗器件,例如iCE40 UltraPlus?來(lái)實(shí)現,該器件提供了具備充足存儲器、邏輯和DSP資源的靈活平臺。研究成果發(fā)表在第三屆關(guān)于資源重新整合(Overlay Architectures for , OLAF)年度研討會(huì )論文中。

  開(kāi)發(fā)團隊將這個(gè)全新的概念稱(chēng)為微型二值神經(jīng)網(wǎng)絡(luò )(Tiny Binarized Neural Network)或TinBiNN。二值神經(jīng)網(wǎng)絡(luò )(BNN)無(wú)需乘法和除法運算,可降低對于存儲器的要求,并且僅使用加法和減法來(lái)計算卷積。開(kāi)發(fā)團隊將TinBiNN定義為可使用少于5400個(gè)4輸入查找表(LUT)資源實(shí)現的BiNN。本文討論的重點(diǎn)是基于少于5000個(gè)4輸入LUT的輕量級TinBiNN,以及如何使用萊迪思半導體的UltraPlus?FPGA實(shí)現。

1 二值神經(jīng)網(wǎng)絡(luò )

  基于的機器學(xué)習應用中,計算內核是一個(gè)卷積核,一個(gè)3×3窗口的權重與輸入數據相乘,然后求和成一個(gè)純量結果。輸入值、權重和結果通常使用浮點(diǎn)數系統。雖然硬件優(yōu)化支持窄定點(diǎn)值,但乘法仍占主導地位。

  最新的理論,如M.Courbariaux,Y.Bengio和J.-P. David的“BinaryConnect: Training Deep Neural Networks with Binary Weights During Propagations”論文中使用二進(jìn)制權重來(lái)表示+1或-1,消除了乘法運算[1]。該項目使用浮點(diǎn)數據在CIFAR 10圖像識別數據集上實(shí)現了8.3%的誤差率。

  VectorBlox和萊迪思的開(kāi)發(fā)工程師對BinaryConnect方法進(jìn)行了三項改進(jìn)。首先,他們把網(wǎng)絡(luò )結構減小了一半。工程師們將(2x128 C3) – MP2 – (2x256C3) – MP2 (2 x 512C3) – MP2 – (2x1024FC) - 10SFC架構簡(jiǎn)化為(2 x 64C3) - MP2 – (2 x 128C3) - MP2 - (2 x 256C3) – MP2 – (2 x 256FC) - 10SFC,其中C3是3×3 ReLU卷積層,MP2是2×2 max-pooling層,而FC是一個(gè)完全互連層。

  然后團隊通過(guò)對所有輸入數據使用8位有符號的定點(diǎn)數進(jìn)一步優(yōu)化網(wǎng)絡(luò )。累加器使用32位有符號數來(lái)防止溢出,然后在數據傳遞到下一層之前通過(guò)飽和操作變成8位。新系統的錯誤率為10.8%。神經(jīng)網(wǎng)絡(luò )的規??s小至48-48-96-96-128-128和64-128-10,錯誤率增加到11.5%。

  第二項改進(jìn)是為二值神經(jīng)網(wǎng)絡(luò )實(shí)現硬件加速器。然后開(kāi)發(fā)工程師使用加速器作為ORCA軟RISC-V處理器中的ALU。RISC-V軟處理器以其高效率的RV32IM指令集聞名,使得開(kāi)發(fā)工程師能夠以更少的資源進(jìn)行更多的計算。在這種情況下,開(kāi)發(fā)工程師使用一組自定義輕量矢量擴展(LVE)指令增強了ORCA處理器。通過(guò)RISC-V ALU傳輸矩陣數據,LVE減少或消除循環(huán)、存儲器訪(fǎng)問(wèn)和地址生成開(kāi)銷(xiāo),從而提高了矩陣運算的效率。將加速器作為自定義矢量指令(CVI)(見(jiàn)圖2)添加到LVE,進(jìn)一步提升了運算效率。

  第三項修改是在iCE40 UltraPlus FPGA中實(shí)現了增強的RISC-V處理器。為了在網(wǎng)絡(luò )邊緣執行推理任務(wù),設計工程師需要一種能夠提供高度并行架構的解決方案,支持以低功耗每秒進(jìn)行大量運算。對于希望通過(guò)語(yǔ)音或圖像識別技術(shù)為網(wǎng)絡(luò )邊緣應用添加更多智能功能的設計工程師而言,iCE40 UltraPlus可提供連接圖像傳感器所需的靈活I(lǐng)/O以及豐富的邏輯資源,用于縮放和處理捕獲的圖像數據。iCE40 UltraPlus還具備8個(gè)DSP模塊,支持更復雜的算法,而片上存儲器則可以在低功耗狀態(tài)下緩沖數據。LVE直接在128 kB暫存RAM上運行,該暫存器RAM已經(jīng)三倍超頻,可以在每個(gè)CPU時(shí)鐘周期內進(jìn)行兩次讀取和一次寫(xiě)入。二進(jìn)制權重存儲在內部RAM中,所以如果任何LVE操作正在進(jìn)行,DMA引擎都可以將這些值高效地轉移到暫存器中,不必占用CPU時(shí)鐘周期。

  開(kāi)發(fā)工程師使用iCE40 UltraPlus移動(dòng)開(kāi)發(fā)平臺,對FPGA器件的關(guān)鍵互連功能進(jìn)行評估,快速實(shí)現原型設計和測試。概念驗證演示可幫助工程師快速開(kāi)發(fā)驅動(dòng)和接口等解決方案。該平臺可提供速率高達108 Mbps的1個(gè)MIPI DSI接口、4個(gè)麥克風(fēng)橋接和多種傳感器。在這個(gè)平臺上,FPGA可以通過(guò)板載SPI閃存或USB端口進(jìn)行編程。

  開(kāi)發(fā)團隊采用Omnivision OVM7692 RGB攝像頭(640 x 480像素),并使用RGB565在硬件層面將圖像壓縮至40 x 30像素。DMA用于將RGBA8888像素寫(xiě)入暫存器。軟件對RGBA8888像素進(jìn)行去交錯,并將結果填充到尺寸為40 x 34的獨立R8、G8和B8像素平面,其中只有32 x 32像素的數據是重要的。

  開(kāi)發(fā)工程師創(chuàng )建了一個(gè)人臉檢測器,這是通過(guò)使用修改的CIFAR-10數據集對10類(lèi)分類(lèi)器進(jìn)行訓練,用CIFAR-100中“人”的重復圖像替換“鹿”圖像實(shí)現的。為了提高性能,團隊進(jìn)一步縮小網(wǎng)絡(luò )結構,并使用175,000個(gè)面部和非面部圖像的專(zhuān)用數據庫來(lái)訓練全新的1類(lèi)分類(lèi)器。這個(gè)數據庫包括各種人臉圖像,涵蓋各個(gè)年齡、種族、是否戴眼鏡、帽子和太陽(yáng)眼鏡等信息。

2 低錯誤率,低功耗

  初步結果很不錯。在開(kāi)發(fā)平臺上,10分類(lèi)分類(lèi)器運行時(shí)間為1315 ms。 這款小尺寸CPU的工作頻率為24 MHz,并使用iCE40 UltraPlus 5K器件的5280個(gè)4輸入LUT中的4895個(gè)。它還使用FPGA的8個(gè)16x16 DSP模塊中的4個(gè),30個(gè)4 kb(0.5 kB)BRAM中的26個(gè)以及全部4個(gè)32 kB SPRAM。ORCA RISC-V上的加速器將卷積層的運行效率提高了73倍,LVE將密集層的運行效率提高了8倍。最終的結果是整體速度提高了71倍。

  1分類(lèi)分類(lèi)器運行時(shí)間為230 ms,誤差為0.4%,功耗為21.8 mW。低功耗版本設計運行速率為1幀/秒,而功耗僅為4.4 mW。上述兩個(gè)分類(lèi)器的錯誤率主要歸因于訓練,而不是精度的降低。圖像傳感器的功耗不包括在該分析中,盡管低功耗圖像傳感器能夠以1-2 mW的功耗實(shí)現上述幀速率。

3 潛在的應用

  基于TinBiNN神經(jīng)網(wǎng)絡(luò )的小尺寸、低功耗解決方案可以在網(wǎng)絡(luò )邊緣領(lǐng)域實(shí)現各類(lèi)應用。例如,智能門(mén)鈴可以使用嵌入式AI功能自動(dòng)進(jìn)入待機模式,直到有人出現。智能電視機可在沒(méi)有觀(guān)眾的情況下自動(dòng)關(guān)閉。同樣,智能安防攝像頭可使用嵌入式人工智能功能來(lái)減少或避免錯誤報告,只有當入侵者出現時(shí)才發(fā)送警報,而不是在狗、貓或其他動(dòng)物出現在攝像頭面前時(shí)發(fā)出警報。

  具備面部識別的移動(dòng)設備和平板電腦需要用戶(hù)在進(jìn)行面部識別之前喚醒設備。該解決方案使得這些設備能夠以低功耗持續偵測人臉,然后喚醒高功耗應用處理器執行深度識別任務(wù)。

4 結論

  將AI引入網(wǎng)絡(luò )邊緣領(lǐng)域是挑戰與機遇并存的。正如本項目所展示的,使用FPGA和RISC-V處理器代替基于云的資源來(lái)構建AI可以大幅降低功耗,同時(shí)縮短響應時(shí)間。同時(shí),本地數據保存和處理提高了安全性,節省了寶貴的帶寬。通過(guò)將AI集成到器件中,設計工程師即使在網(wǎng)絡(luò )關(guān)閉以節省功耗的情況下也能實(shí)現實(shí)時(shí)工作的智能功能。

  參考文獻: [1]Courbariaux M,Bengio Y,David J P.BinaryConnect: Training Deep Neural Networks with Binary Weights during Propagations.Advances in Neural Information Processing Systems 28(NIPS 2015).Curran Associates,Inc.,2015:3123-3131

  本文來(lái)源于《電子產(chǎn)品世界》2018年第1期第79頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>