亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于脈沖神經(jīng)網(wǎng)絡(luò)與移動GPU計(jì)算的圖像分類算法研究與實(shí)現(xiàn)*

        2020-03-26 10:56:00徐頻捷王誨喆
        關(guān)鍵詞:模型

        徐頻捷,王誨喆,李 策,唐 丹,趙 地

        (1.中國科學(xué)院計(jì)算技術(shù)研究所,北京 100190;2.中國科學(xué)院大學(xué),北京 100049; 3.中國礦業(yè)大學(xué)(北京) 機(jī)電與信息工程學(xué)院,北京 100083)

        1 引言

        神經(jīng)科學(xué)希望能從生理學(xué)角度解釋生物的神智活動,但是神經(jīng)系統(tǒng)的生理學(xué)機(jī)制過于復(fù)雜,僅人腦就有超過一千億的神經(jīng)元,每個神經(jīng)元又和上萬個神經(jīng)元構(gòu)建聯(lián)系,哪怕科技發(fā)展到今天該領(lǐng)域也沒有取得突破性的進(jìn)展。隨著計(jì)算機(jī)科學(xué)的發(fā)展,人類所掌控的算力越來越強(qiáng),在摩爾定律的加持下,利用計(jì)算機(jī)模擬人腦成為了可能,類腦計(jì)算應(yīng)運(yùn)而生。而以圖像分類為代表的機(jī)器視覺作為類腦計(jì)算的重要任務(wù)之一,逐漸引起計(jì)算機(jī)科學(xué)家的重視。

        Maass博士[1]稱脈沖神經(jīng)網(wǎng)絡(luò)為第3代神經(jīng)網(wǎng)絡(luò),與傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)不同,脈沖神經(jīng)網(wǎng)絡(luò)由精確的脈沖點(diǎn)火序列驅(qū)動,使用更具有生物可解釋性的神經(jīng)元模型和突觸可塑性算法。漏極點(diǎn)火模型LIF(Leaky Integrate and Fire model)是由Lapicque[2]提出的,這種神經(jīng)元模型最簡單,但不夠精確。隨著生物學(xué)的發(fā)展,Hodgkin等[3]提出了霍奇金赫胥黎HH(Hodgkin Huxley)模型,HH模型高度仿生,精確地仿真了人腦神經(jīng)元活動時的理化特性,但在模型仿真時需要求解大量的微分方程,需要付出較大的計(jì)算代價(jià)。為了找到一種既有更高的生物可解釋性,又只需要較低算力代價(jià)的模型,Izhikevich[4]提出了Izhikevich模型,該模型介于LIF模型和HH模型之間,在算力代價(jià)大大降低的前提下,保證了較高的生物可信度。

        脈沖神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法分為基于梯度下降、基于Widrow-Hoff規(guī)則、基于感知機(jī)規(guī)則3大類。其中基于梯度下降的方法以Bohte等[5]的基于梯度下降的脈沖反向傳播SpikeProp(Spike Back Propagation)算法為代表;Mckennoch等[6]提出了帶動量的反向傳播算法作為改進(jìn);為了加快訓(xùn)練速度,Silva等[7]提出了快速梯度下降算法。在基于Widrow-Hoff規(guī)則的學(xué)習(xí)方法中,脈沖時序依賴可塑性STDP(Spike Timing Dependent-Plasticity)[8]算法最為常用;Ponulak等[9]的遠(yuǎn)程監(jiān)督學(xué)習(xí)ReSuMe(Remote Supervised Method)方法通過計(jì)算期望輸出和實(shí)際輸出的差值體現(xiàn)神經(jīng)元的突觸可塑性;Chronotron[10]中的I-learning機(jī)制,通過神經(jīng)元之間的帶權(quán)值電流調(diào)整突觸權(quán)值。而基于感知機(jī)規(guī)則的學(xué)習(xí)方法較為少見,以Xu等[11]提出的基于感知機(jī)規(guī)則的脈沖序列學(xué)習(xí)方法PBSNLR(Perceptron Based Spiking Neuron Learning Rule)為主。

        雖然在傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)上有關(guān)于低功耗算法的嘗試[12],但是過擬合、缺少生物可解釋性等問題仍然存在。為了克服人工神經(jīng)網(wǎng)絡(luò)的缺點(diǎn),大量基于脈沖神經(jīng)的視覺模擬算法被提出。Beyeler等[13]通過脈沖神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)了生物視網(wǎng)膜的視覺選擇機(jī)制,并實(shí)現(xiàn)了視頻數(shù)據(jù)的特征提??;潘婷[14]提出了單層脈沖神經(jīng)網(wǎng)絡(luò)圖像分類算法,并提出了一種改進(jìn)的突觸時序依賴可塑性算法;Diehl等[15]提出了一種基于液態(tài)機(jī)的圖像分類算法,該算法模擬了人腦視覺神經(jīng)元的連接方式,并通過自適應(yīng)的脈沖點(diǎn)火閾值方法提高網(wǎng)絡(luò)性能。

        2 脈沖卷積神經(jīng)網(wǎng)絡(luò)

        2.1 脈沖神經(jīng)網(wǎng)絡(luò)的生物學(xué)原理

        2個神經(jīng)元之間通過一種叫突觸的結(jié)構(gòu)連接。突觸間隙既保證了細(xì)胞之間不會走得太近,又保證了細(xì)胞之間的正常通信。當(dāng)來自突觸前神經(jīng)元的動作電位達(dá)到軸突末端的時候,動作電位并不會直接引起突觸后膜電勢的變化,而是通過傳遞一種叫做神經(jīng)遞質(zhì)的化學(xué)物質(zhì)改變突觸內(nèi)外膜電勢,形成電勢差。隨著動作電位的到達(dá),突觸小泡釋放神經(jīng)遞質(zhì),神經(jīng)遞質(zhì)穿過突觸間隙到達(dá)突觸后膜,并被突觸后膜上的受體接收。隨著受體和神經(jīng)遞質(zhì)結(jié)合,引起通道蛋白打開,神經(jīng)元和外界發(fā)生鈉離子和鉀離子交換,并引起突觸后膜的電勢發(fā)生變化。當(dāng)突觸后膜電勢累加達(dá)到某1個閾值時,神經(jīng)元激活并發(fā)出1個脈沖,隨后突觸后神經(jīng)元會進(jìn)入一段時間的不應(yīng)期。脈沖會引起1個新的動作電位的產(chǎn)生,并通過軸突傳導(dǎo),引起下1次突觸小泡的釋放。

        2.2 脈沖神經(jīng)元模型

        綜合考慮算力和生物可解釋性的需求,為了將脈沖神經(jīng)網(wǎng)絡(luò)部署在Jetson TK1開發(fā)板上,本文選用LIF神經(jīng)元模型。

        LIF神經(jīng)元可以由如圖1所示的電路圖模擬。當(dāng)電流流入細(xì)胞體(RC電路)時,突觸后膜電勢為ε(t),電流部分被電阻R消耗,部分給電容器C充電,如式(1)所示。

        (1)

        Figure 1 LIF neural model圖1 LIF神經(jīng)元模型

        令時間常數(shù)τm=RC,就可以將式(1)變形為更常見的形式:

        (2)

        (3)

        2.3 突觸可塑性算法

        為了實(shí)現(xiàn)低功耗網(wǎng)絡(luò),回避有監(jiān)督學(xué)習(xí)必須的大量數(shù)據(jù)標(biāo)注和復(fù)雜的學(xué)習(xí)方法,本文選用基于無監(jiān)督的STDP算法。STDP是Hebbian學(xué)習(xí)[16]的一種重要形式,在該算法中突觸前神經(jīng)元和突觸后神經(jīng)元脈沖時間的精確計(jì)時將影響突觸權(quán)重的變化[6]。SDTP遵循以下規(guī)則:如果突觸前神經(jīng)元的脈沖比突觸后神經(jīng)元的脈沖先到達(dá),那么將產(chǎn)生長時間的興奮刺激LTP(Long-Term Potentiation),同時2個神經(jīng)元之間的突觸權(quán)值將增大;如果突觸前神經(jīng)元的脈沖比突觸后神經(jīng)元的脈沖后到達(dá),那么將產(chǎn)生長時間的抑制LTD(Long-Term Depression),同時2個神經(jīng)元之間的突觸權(quán)值將減小。突觸權(quán)值的更新策略由式(4)描述:

        (4)

        其中,tpost為突觸后神經(jīng)元的脈沖產(chǎn)生時間,tpre為突觸前神經(jīng)元的脈沖產(chǎn)生時間;A+是可塑性增強(qiáng)學(xué)習(xí)率,A-是可塑性減弱學(xué)習(xí)率;τ+和τ-是時間衰減指數(shù)。

        3 CUDA改進(jìn)的脈沖神經(jīng)網(wǎng)絡(luò)

        3.1 脈沖卷積

        脈沖卷積操作對象是表示點(diǎn)火時間序列的脈沖信號。1個典型的脈沖卷積運(yùn)算可以由式(5)描述:

        (5)

        (6)

        3.2 脈沖池化

        對于脈沖池化,可以由式(7)描述:

        (7)

        其中各個參數(shù)的含義與脈沖卷積中的一樣,值得注意的是,wij是突觸前神經(jīng)元j和突觸后神經(jīng)元i之間的突觸權(quán)重,這里的權(quán)重來自于池化模板,且權(quán)值根據(jù)模板的類型(最大、平均、隨機(jī))是固定的,不需要通過學(xué)習(xí)算法更新。

        3.3 脈沖卷積神經(jīng)網(wǎng)絡(luò)

        Figure 2 Structure of spiking convolutional neural network圖2 脈沖卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

        在生物學(xué)研究中發(fā)現(xiàn),人的視覺系統(tǒng)通過簡單視覺細(xì)胞(S cell)和復(fù)雜視覺細(xì)胞(C cell)來提取視覺特征。簡單視覺細(xì)胞主要用于提取特征信息,能夠最大限度地響應(yīng)來自感受野的視覺邊緣信息;而復(fù)雜細(xì)胞有更大的接受域,使網(wǎng)絡(luò)獲得了抗變形的能力,使得視覺系統(tǒng)對于某些確定位置的刺激具有局部不變性。通過復(fù)雜視覺細(xì)胞和簡單視覺細(xì)胞的層疊組合,既能夠控制網(wǎng)絡(luò)連接的規(guī)模,又能約束特征子模式的響應(yīng)級別。為了構(gòu)建1個有效的視覺分類系統(tǒng),本文用脈沖池化層模擬人視覺系統(tǒng)的復(fù)雜視覺細(xì)胞,用脈沖卷積層模擬簡單視覺細(xì)胞,通過堆疊類似于傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)的池化卷積模塊,構(gòu)建深度脈沖卷積神經(jīng)網(wǎng)絡(luò)模型。如圖2所示是1個典型的脈沖卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖,圖2中模塊從左往右依次為脈沖高斯差分神經(jīng)元組(DOG)、脈沖卷積神經(jīng)元組1(Conv1)、脈沖池化神經(jīng)元組1(Pool1)、脈沖卷積神經(jīng)元組2(Conv2)、全局最大池化(GP),最后通過支持向量機(jī)(SVM)完成分類。

        Figure 3 Flow chart of CUDA improved spiking convolution algorithm圖3 CUDA改進(jìn)的脈沖卷積算法流程圖

        3.4 CUDA改進(jìn)的脈沖卷積

        為了充分利用Jetson TK1開發(fā)板支持CUDA編程的優(yōu)勢,本文提出并實(shí)現(xiàn)了CUDA改進(jìn)的脈沖卷積神經(jīng)網(wǎng)絡(luò),算法流程圖如圖3所示,該實(shí)現(xiàn)分為CPU和GPU 2個部分。

        CPU代碼部分主要完成時間步的遍歷。輸入神經(jīng)元組的維度是H×W×C×T,分別表示輸入神經(jīng)元組的長、寬、通道數(shù)和時間步。在CPU代碼部分,如圖3的C1(簡稱C1,下同)所示,代碼將讀取來自神經(jīng)網(wǎng)絡(luò)上1層的輸出。在C2中,實(shí)現(xiàn)對時間步的循環(huán)遍歷,當(dāng)輸出達(dá)到時間步尾時脈沖卷積結(jié)束(C3),否則對該時間步的特征進(jìn)行卷積。在C4完成線程和線程塊的分配。在C5處交互CPU與GPU之間的數(shù)據(jù),CPU內(nèi)存和GPU顯存的存儲形式差別很大,需要額外定義GPU上的顯存變量,再將CPU上的內(nèi)存變量轉(zhuǎn)化成GPU顯存變量。

        GPU代碼部分主要完成突觸后膜電勢加權(quán)求和以及脈沖序列的生成,該部分由多個GPU線程并行完成,因此只需要關(guān)注單個線程中的操作。在G1中定位當(dāng)前線程的位置,即定位當(dāng)前線程對應(yīng)的突觸后神經(jīng)元。在G2完成C4處分配的冗余線程的越界檢查,越界線程沒有對應(yīng)的突觸后神經(jīng)元,因此不應(yīng)參加卷積計(jì)算。在G3處,每個突觸后神經(jīng)元唯一對應(yīng)1個感受野,感受野的大小和卷積核尺寸相同,對感受野上的脈沖做加權(quán)求和形成突觸后膜電勢增量,并累加到突觸后膜電勢上。在G4中,由于突觸后膜電勢在時間步上的累加效應(yīng),當(dāng)突出后膜電勢累加并超過閾值時就會在當(dāng)前時間步產(chǎn)生1個脈沖,同時突觸后膜電勢回到靜息電位(G5),如果未達(dá)到閾值,則電勢會被保留到下1個時間步。當(dāng)GPU上的卷積操作結(jié)束時,將更新后的脈沖序列和突觸后膜電勢送回CPU內(nèi)存。

        4 實(shí)驗(yàn)結(jié)果及分析

        本文選用Jetson TK1作為開發(fā)環(huán)境,這是一款被廣泛使用的高性能嵌入式開發(fā)板,基于NVIDIA的Tegra?K1 SoC架構(gòu)。雖然是1個小型嵌入式設(shè)備,但擁有基于ARM架構(gòu)的Cortex-A15 CPU,4核主頻2.3 GHz;以及NVIDIA的Kepler GK20a架構(gòu)GPU,擁有192個CUDA核心,每秒浮點(diǎn)運(yùn)算次數(shù)高達(dá)326 GFLOPS。由于Jetson TK1低功耗、高性能的特點(diǎn),現(xiàn)在正被廣泛應(yīng)用于智能家居[18]、監(jiān)控安防[19]、車載設(shè)備[20]等眾多領(lǐng)域。

        輸入網(wǎng)絡(luò)的手寫數(shù)字圖像維度是28×28×1,網(wǎng)絡(luò)整體分為基本神經(jīng)元組和特殊神經(jīng)元組,其中基本神經(jīng)元組為前4組,特殊神經(jīng)元組為后2組,各神經(jīng)元組具體參數(shù)如表1所示。在整個網(wǎng)絡(luò)中,只有2個脈沖卷積神經(jīng)元組是需要通過學(xué)習(xí)更新權(quán)重的。特征的提取和分類是完全分開的,使用脈沖時序依賴可塑性算法更新參數(shù),本文對第1個卷積層和第2個卷積層各做50 000次權(quán)重更新。

        Table 1 Parameters of each neuron group表1 各神經(jīng)元組參數(shù)

        脈沖神經(jīng)網(wǎng)絡(luò)通過精確的脈沖點(diǎn)火序列驅(qū)動,可以可視化各層輸出的脈沖序列。以輸入手寫數(shù)字“6”為例,可以得到如圖4所示的脈沖點(diǎn)火序列,這些圖將三維神經(jīng)元組的長、寬、通道3個維度合并平攤成1個維度作為y軸,將脈沖點(diǎn)火時間作為x軸。

        Figure 4 Spatiotemporal relationship of spiking sequences produced by neural group圖4 各神經(jīng)元組產(chǎn)生脈沖的時空關(guān)系圖

        首先,本文將分析CUDA改進(jìn)的脈沖卷積神經(jīng)網(wǎng)絡(luò)在Jetson TK1開發(fā)板上的表現(xiàn),將分類準(zhǔn)確率、網(wǎng)絡(luò)單次運(yùn)行耗時和圖像分類幀率作為評價(jià)指標(biāo)。網(wǎng)絡(luò)單次運(yùn)行耗時把網(wǎng)絡(luò)的運(yùn)行分為配置狀態(tài)、初始化狀態(tài)以及運(yùn)行狀態(tài)3個部分;而圖像處理幀率分析實(shí)驗(yàn)則是建立在網(wǎng)絡(luò)已經(jīng)完成初始化基礎(chǔ)上,只關(guān)注在運(yùn)行狀態(tài)1 s能夠處理多少幅圖像(FPS)。本文使用MNIST數(shù)據(jù)集,該數(shù)據(jù)集包含60 000幅大小為28×28的手寫數(shù)字灰度圖像,取其中50 000幅作為訓(xùn)練集訓(xùn)練網(wǎng)絡(luò),取其中10 000幅作為測試集測試算法性能。

        首先分析網(wǎng)絡(luò)單次運(yùn)行耗時,Jetson TK1開發(fā)板在CPU狀態(tài)、GPU狀態(tài)以及PC機(jī)上CPU狀態(tài)下進(jìn)行對比,實(shí)驗(yàn)結(jié)果如圖5所示。網(wǎng)絡(luò)配置狀態(tài)(Config State)主要讀取網(wǎng)絡(luò)結(jié)構(gòu)和各種超參數(shù),這個狀態(tài)用時是最少的,在各平臺上該步驟用時都保持在0.01 s之內(nèi);其次是初始化狀態(tài)(Setup State),初始化狀態(tài)主要構(gòu)建網(wǎng)絡(luò)結(jié)構(gòu),申請CPU內(nèi)存以及GPU顯存;最后是運(yùn)行狀態(tài)(Run State),運(yùn)行狀態(tài)將完成脈沖神經(jīng)網(wǎng)絡(luò)的仿真。可以看出,在Jetson TK1上,GPU模式下CUDA改進(jìn)的脈沖神經(jīng)網(wǎng)絡(luò)相比于CPU模式提升較大,GPU模式下的運(yùn)行時間為3.87 s,而CPU模式下用時9.53 s。

        Figure 5 Time consuming comparison of spiking neural network of different states on different plaforms圖5 脈沖神經(jīng)網(wǎng)絡(luò)在不同平臺上各階段耗時比較

        接下來做幀率分析,同樣選取來自MNIST數(shù)據(jù)集中的圖像,由于幀率分析時需要1次性處理多幅圖像,這將反復(fù)執(zhí)行運(yùn)行狀態(tài)的代碼,而配置和初始化狀態(tài)只需執(zhí)行1次。為了節(jié)省開發(fā)板資源,本文將網(wǎng)絡(luò)的訓(xùn)練階段放到PC機(jī)上執(zhí)行,然后將訓(xùn)練的權(quán)重保存在開發(fā)板上,這樣開發(fā)板上的脈沖卷積神經(jīng)網(wǎng)絡(luò)只需要專注于圖像分類的前向傳播工作,而可以忽略費(fèi)時費(fèi)力的網(wǎng)絡(luò)訓(xùn)練工作。

        從表2可以看出,將網(wǎng)絡(luò)改變成CUDA版本并部署在Jetson TK1開發(fā)板上時檢測準(zhǔn)確率達(dá)到了98%,檢測幀率達(dá)到了0.34,相比于基于CPU的原始算法,CUDA改進(jìn)的脈沖神經(jīng)網(wǎng)絡(luò)在保證準(zhǔn)確率不變的情況下幀率增加3倍。與基于單層脈沖神經(jīng)網(wǎng)絡(luò)[14]的算法比較,本文算法由于增加了網(wǎng)絡(luò)的層數(shù),使用了CUDA改進(jìn),在準(zhǔn)確率和幀率上均有所提升。

        5 結(jié)束語

        本文提出了一種脈沖卷積神經(jīng)網(wǎng)絡(luò),先使用脈沖高斯差分層提取輸入脈沖的時空特征,再通過堆疊脈沖卷積層和脈沖池化層提取脈沖序列的高層特征,使用基于無監(jiān)督學(xué)習(xí)的脈沖時序依賴可塑性算法訓(xùn)練網(wǎng)絡(luò)權(quán)重,最后由支持向量機(jī)分類特征。實(shí)驗(yàn)表明,該方法在MNIST數(shù)據(jù)集上有較好的分類準(zhǔn)確率。

        Table 2 Performance comparison among our algorithm and other algorithms on MNIST data set in Jetson TK1 environment 表2 在Jetson TK1環(huán)境中本文算法與其他算法在MNIST數(shù)據(jù)集上的性能比較

        在所提的脈沖卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上,本文提出了一種CUDA改進(jìn)的脈沖卷積神經(jīng)網(wǎng)絡(luò)模型,并將該模型成功部署在了Jetson TK1開發(fā)板上,實(shí)現(xiàn)了在移動GPU上的基于脈沖神經(jīng)網(wǎng)絡(luò)的圖像處理以及圖像分類算法,并與傳統(tǒng)單層脈沖神經(jīng)網(wǎng)絡(luò)的性能進(jìn)行了對比??傮w來說,本文提出的基于脈沖神經(jīng)網(wǎng)絡(luò)與移動GPU計(jì)算的圖像分類算法有較強(qiáng)的生物可解釋性、較高的魯棒性和較快的運(yùn)算速度。

        猜你喜歡
        模型
        一半模型
        一種去中心化的域名服務(wù)本地化模型
        適用于BDS-3 PPP的隨機(jī)模型
        提煉模型 突破難點(diǎn)
        函數(shù)模型及應(yīng)用
        p150Glued在帕金森病模型中的表達(dá)及分布
        函數(shù)模型及應(yīng)用
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        3D打印中的模型分割與打包
        精品国产一区二区三区18p| 在线看不卡的国产视频| 99久久婷婷国产精品综合网站| 80s国产成年女人毛片| 一个人看的视频www免费| 夜夜爽无码一区二区三区| 国产一区亚洲一区二区| 亚洲精品国产第一区二区| 真人新婚之夜破苞第一次视频| 国产av成人精品播放| av天堂手机一区在线| 精品国产亚洲亚洲国产| 欧美国产精品久久久乱码| 亚洲视频高清| 性感熟妇被我玩弄到高潮| 欧美日韩精品一区二区视频| 国产精品.xx视频.xxtv| 久久精品女人天堂AV一个| 日本二区在线视频观看| 狠狠噜天天噜日日噜无码| 性导航app精品视频| 日本在线一区二区三区四区| 久久人人爽人人爽人人片av高请| 丰满老熟妇好大bbbbb| 国产亚洲日本人在线观看| av手机免费在线观看高潮| 毛片无码国产| 一本大道东京热无码中字| 亚洲自偷自拍另类第一页| 强开小婷嫩苞又嫩又紧视频韩国 | 亚洲久热无码av中文字幕| 色婷婷亚洲十月十月色天| 在线a亚洲视频播放在线播放| 国产精品丝袜久久久久久不卡| 在线观看国产三级av| 人妻蜜桃日产一本久道综合在线 | 精品粉嫩av一区二区三区| 男人激烈吮乳吃奶视频免费| 免费精品美女久久久久久久久久| 99精品人妻少妇一区二区三区| 最近中文字幕免费完整版|