新聞中心

EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 云中的機(jī)器學(xué)習(xí):FPGA 上的深度神經(jīng)網(wǎng)絡(luò)

云中的機(jī)器學(xué)習(xí):FPGA 上的深度神經(jīng)網(wǎng)絡(luò)

作者: 時間:2018-08-14 來源:網(wǎng)絡(luò) 收藏

憑借出色的性能和功耗指標(biāo),賽靈思 成為設(shè)計人員構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)的首選 XE XE XE XE 。新的軟件工具可簡化實現(xiàn)工作。

本文引用地址:http://butianyuan.cn/article/201808/386778.htm

人工智能正在經(jīng)歷一場變革,這要得益于機(jī)器學(xué)習(xí)的快速進(jìn)步。在機(jī)器學(xué)習(xí)領(lǐng)域,人們正對一類名為“深度學(xué)習(xí)”算法產(chǎn)生濃厚的興趣,因為這類算法具有出色的大數(shù)據(jù)集性能。在深度學(xué)習(xí)中,機(jī)器可以在監(jiān)督或不受監(jiān)督的方式下從大量數(shù)據(jù)中學(xué)習(xí)一項任務(wù)。大規(guī)模監(jiān)督式學(xué)習(xí)已經(jīng)在圖像識別和語音識別等任務(wù)中取得巨大成功。

深度學(xué)習(xí)技術(shù)使用大量已知數(shù)據(jù)找到一組權(quán)重和偏差值,以匹配預(yù)期結(jié)果。這個過程被稱為訓(xùn)練,并會產(chǎn)生大型模式。這激勵工程師傾向于利用專用硬件(例如 GPU)進(jìn)行訓(xùn)練和分類。

隨著數(shù)據(jù)量的進(jìn)一步增加,機(jī)器學(xué)習(xí)將轉(zhuǎn)移到云。大型機(jī)器學(xué)習(xí)模式實現(xiàn)在云端的 CPU 上。盡管 GPU 對深度學(xué)習(xí)算法而言在性能方面是一種更好的選擇,但功耗要求之高使其只能用于高性能計算集群。因此,亟需一種能夠加速算法又不會顯著增加功耗的處理平臺。在這樣的背景下, 似乎是一種理想的選擇,其固有特性有助于在低功耗條件下輕松啟動眾多并行過程。

讓我們來詳細(xì)了解一下如何在賽靈思 上實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò) (CNN)。CNN 是一類深度神經(jīng)網(wǎng)絡(luò),在處理大規(guī)模圖像識別任務(wù)以及與機(jī)器學(xué)習(xí)類似的其他問題方面已大獲成功。在當(dāng)前案例中,針對在 FPGA 上實現(xiàn) CNN 做一個可行性研究,看一下 FPGA 是否適用于解決大規(guī)模機(jī)器學(xué)習(xí)問題。

卷積神經(jīng)網(wǎng)絡(luò)是一種深度神經(jīng)網(wǎng)絡(luò) (DNN),工程師最近開始將該技術(shù)用于各種識別任務(wù)。圖像識別、語音識別和自然語言處理是 CNN 比較常見的幾大應(yīng)用。

什么是卷積神經(jīng)網(wǎng)絡(luò)?

卷積神經(jīng)網(wǎng)絡(luò)是一種深度神經(jīng)網(wǎng)絡(luò) (DNN),工程師最近開始將該技術(shù)用于各種識別任務(wù)。圖像識別、語音識別和自然語言處理是 CNN 比較常見的幾大應(yīng)用。

2012 年,Alex Krishevsky 與來自多倫多大學(xué) (University of Toronto) 的其他研究人員 [1] 提出了一種基于 CNN 的深度架構(gòu),贏得了當(dāng)年的“Imagenet 大規(guī)模視覺識別挑戰(zhàn)”獎。他們的模型與競爭對手以及之前幾年的模型相比在識別性能方面取得了實質(zhì)性的提升。自此,AlexNet 成為了所有圖像識別任務(wù)中的對比基準(zhǔn)。

AlexNet 有五個卷積層和三個致密層(圖 1)。每個卷積層將一組輸入特征圖與一組權(quán)值濾波器進(jìn)行卷積,得到一組輸出特征圖。致密層是完全相連的一層,其中的每個輸出均為所有輸入的函數(shù)。

卷積層

AlexNet 中的卷積層負(fù)責(zé)三大任務(wù),如圖 2 所示:3D 卷積;使用校正線性單元 (ReLu) 實現(xiàn)激活函數(shù);子采樣(最大池化)。3D 卷積可用以下公式表示:

其中Y(m,x,y)是輸出特征圖m位置(x,y)處的卷積輸出,S是(x,y)周圍的局部鄰域,W是卷積濾波器組,X(n,x,y)是從輸入特征圖n上的像素位置(x,y)獲得的卷積運算的輸入。

圖 1 – AlexNet 是一種圖像識別基準(zhǔn),包含五個卷積層(藍(lán)框)和三個致密層(黃)。

圖 2 – AlexNet 中的卷積層執(zhí)行 3D 卷積、激活和子采樣。

所用的激活函數(shù)是一個校正線性單元,可執(zhí)行函數(shù)Max(x,0)。激活函數(shù)會在網(wǎng)絡(luò)的傳遞函數(shù)中引入非線性。最大池化是 AlexNet 中使用的子采樣技術(shù)。使用該技術(shù),只需選擇像素局部鄰域最大值傳播到下一層。

定義致密層

AlexNet 中的致密層相當(dāng)于完全連接的層,其中每個輸入節(jié)點與每個輸出節(jié)點相連。AlexNet 中的第一個致密層有 9,216 個輸入節(jié)點。將這個向量乘以權(quán)值矩陣,以在 4,096 個輸出節(jié)點中產(chǎn)生輸出。在下一個致密層中,將這個 4,096 節(jié)點向量與另一個權(quán)值矩陣相乘得到 4,096 個輸出。最后,使用 4,096 個輸出通過 softmax regression 為 1,000 個類創(chuàng)建概率。

在 FPGA 上實現(xiàn) CNN

隨著新型高級設(shè)計環(huán)境的推出,軟件開發(fā)人員可以更方便地將其設(shè)計移植到賽靈思 FPGA 中。軟件開發(fā)人員可通過從 C/C++ 代碼調(diào)用函數(shù)來充分利用 FPGA 與生俱來的架構(gòu)優(yōu)勢。Auviz Systems 的庫(例如 AuvizDNN)可為用戶提供最佳函數(shù),以便其針對各種應(yīng)用創(chuàng)建定制 CNN??稍谫愳`思 SD-Accel™ 這樣的設(shè)計環(huán)境中調(diào)用這些函數(shù),以在 FPGA 上啟動內(nèi)核。

最簡單的方法是以順序方式實現(xiàn)卷積和向量矩陣運算??紤]到所涉及計算量,因此順序計算會產(chǎn)生較大時延。

順序?qū)崿F(xiàn)產(chǎn)生很大時遲的主要原因在于 CNN 所涉及的計算的絕對數(shù)量。圖 3 顯示了 AlexNet 中每層的計算量和數(shù)據(jù)傳輸情況,以說明其復(fù)雜性。

圖 3 – 圖表展示了 AlexNet 中涉及的計算復(fù)雜性和數(shù)據(jù)傳輸數(shù)量。


上一頁 1 2 下一頁

關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉