国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于神經(jīng)元轉(zhuǎn)換方法的混合卷積脈沖神經(jīng)網(wǎng)絡(luò)

2021-06-23 01:39李凌開孔萬增
關(guān)鍵詞:電勢(shì)集上脈沖

李凌開,孔萬增,2

(1.杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院,浙江 杭州 310018;2.浙江省腦機(jī)協(xié)同智能重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310018)

0 引 言

傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)中,神經(jīng)元的運(yùn)算以及神經(jīng)元與神經(jīng)元之間的信息傳遞均以實(shí)數(shù)的形式進(jìn)行,而生物體神經(jīng)元的運(yùn)算通過脈沖形式的電信號(hào)進(jìn)行,這可能是目前ANN在某些視覺任務(wù)上表現(xiàn)不如人類的原因之一。此外,ANN的計(jì)算耗能較大,而生物大腦在執(zhí)行類似任務(wù)時(shí)消耗的生物能較少。這些差異啟發(fā)研究者們提出更具生物可解釋性的脈沖神經(jīng)網(wǎng)絡(luò)(Spiking Neural Network,SNN)。SNN使用脈沖序列進(jìn)行信息表示,其神經(jīng)元通過事件驅(qū)動(dòng)的方式來處理信息,以較低的能耗在神經(jīng)形態(tài)芯片上運(yùn)行,被稱為第三代人工神經(jīng)網(wǎng)絡(luò)[1]。但是,SNN難以使用傳統(tǒng)方法進(jìn)行訓(xùn)練,網(wǎng)絡(luò)模型無法加深,限制了SNN的特征提取能力,如Mt-spike[2],BP-STDP[3]等。近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)在視覺任務(wù)上表現(xiàn)得越來越出色,主要得益于其網(wǎng)絡(luò)結(jié)構(gòu)越來越深以及網(wǎng)絡(luò)參數(shù)量越來越大,從而能夠從圖像中提取出更高層次的語義特征,如DenseNet[4],EfficientNet[5],Res2Net[6]等。研究表明,CNN的卷積層和最大池化層與生物視覺系統(tǒng)提取圖像特征的工作機(jī)制較為相似[7],但其全連接層神經(jīng)元在計(jì)算方式上和生物神經(jīng)元相差較大。Xu等先后提出了CSNN[8]和Deep CovDenseSNN[9],把ANN和典型SNN相結(jié)合。CSNN使用Tempotron方法訓(xùn)練模型的SNN部分,Deep CovDenseSNN結(jié)合了CNN和文獻(xiàn)[10]提出的SNN模型,使用基于脈沖時(shí)間依賴可塑性(Spike Timing-Dependent Plasticity,STDP)的無監(jiān)督訓(xùn)練方法,在MNIST數(shù)據(jù)集上取得了較好的結(jié)果,但模型受限于典型SNN的表達(dá)能力,數(shù)據(jù)噪聲較大時(shí)的識(shí)別準(zhǔn)確率有所下降。Rueckauer等[11]把完整的ANN轉(zhuǎn)換為SNN,在多個(gè)數(shù)據(jù)集上取得了較高的識(shí)別準(zhǔn)確率,但當(dāng)原ANN模型深度較深時(shí),淺層神經(jīng)元需要經(jīng)過一定的時(shí)間步才能把信號(hào)傳遞到網(wǎng)絡(luò)深處,導(dǎo)致測(cè)試初期深層的神經(jīng)元脈沖發(fā)射率過低,需要在相當(dāng)多的時(shí)間步后才能得到較高的準(zhǔn)確率。受到文獻(xiàn)[8-9,11]的啟發(fā),本文提出一種CNN和SNN混合的網(wǎng)絡(luò),結(jié)合CNN較強(qiáng)的特征提取能力和SNN更具生物可解釋性的優(yōu)點(diǎn),并使用神經(jīng)元轉(zhuǎn)換的方法獲得網(wǎng)絡(luò)權(quán)重,在縮短測(cè)試時(shí)間的同時(shí)提升了模型識(shí)別準(zhǔn)確率。

1 SNN概述

1.1 脈沖神經(jīng)元

在SNN中,神經(jīng)元和傳統(tǒng)的ANN不同,為了使神經(jīng)元能夠處理脈沖信號(hào),研究者們相繼提出了多種脈沖神經(jīng)元模型,如Hodgkin-Huxley模型、Integrate-and-Fire(IF)模型、Leaky Integrate-and-Fire(LIF)模型、Izhikevich模型等。其中,Hodgkin-Huxley模型最為精確,但計(jì)算量過大;LIF模型計(jì)算過程簡(jiǎn)單,應(yīng)用范圍最廣;IF的計(jì)算過程和傳統(tǒng)神經(jīng)元最為相似。

在典型SNN中,應(yīng)用最為廣泛的LIF模型將生物神經(jīng)元簡(jiǎn)化為一個(gè)電阻-電容電路,其膜電勢(shì)變化如下:

(1)

(2)

1.2 SNN訓(xùn)練方法

傳統(tǒng)的ANN使用反向傳播算法進(jìn)行訓(xùn)練,SNN中進(jìn)行信息表示的脈沖序列為離散序列,損失函數(shù)無法對(duì)權(quán)重進(jìn)行求導(dǎo),所以反向傳播算法無法直接應(yīng)用于SNN。主要采用2種訓(xùn)練方法,一是直接在脈沖序列的基礎(chǔ)上開發(fā)具有生物可解釋性的訓(xùn)練方法,如基于STDP規(guī)則的無監(jiān)督訓(xùn)練方法[12]、監(jiān)督訓(xùn)練方法OnMSGDB[13]、文獻(xiàn)[14]提出的方法等;二是對(duì)訓(xùn)練完成的ANN進(jìn)行轉(zhuǎn)換,使用脈沖神經(jīng)元替代原來的傳統(tǒng)神經(jīng)元,權(quán)重保持不變。

Kheradpisheh等[15]和Zhao等[16]使用第一種訓(xùn)練方法,這類模型無法突破SNN本身深度無法加深的局限,導(dǎo)致復(fù)雜數(shù)據(jù)集上的準(zhǔn)確率不高。Cao等[17]把CNN轉(zhuǎn)換為SNN,對(duì)CNN進(jìn)行部分改動(dòng),如把網(wǎng)絡(luò)中的偏置全都置為0,數(shù)據(jù)預(yù)處理后的所有神經(jīng)元激活值取絕對(duì)值等,成功轉(zhuǎn)換成了SNN,但分類準(zhǔn)確率損失較大,而且只能轉(zhuǎn)換部分類型的CNN網(wǎng)絡(luò)層。在此基礎(chǔ)上,Diehl等[18]通過標(biāo)準(zhǔn)化權(quán)重的方法調(diào)節(jié)脈沖發(fā)射率,縮小了轉(zhuǎn)換后的精度損失。Rueckauer等[11]進(jìn)一步完善了這種轉(zhuǎn)換方法,使得大部分類型的CNN網(wǎng)絡(luò)層都能夠轉(zhuǎn)換為脈沖的形式,且把精度損失控制在較小的范圍內(nèi),使得模型在更復(fù)雜的圖像數(shù)據(jù)集上也能有比較好的表現(xiàn)。

1.3 SNN編碼方式

將圖像編碼為脈沖的方法主要有基于脈沖發(fā)射時(shí)間的編碼方法和基于脈沖發(fā)射頻率的編碼方法。使用基于脈沖發(fā)射頻率的方法進(jìn)行編碼時(shí),特征圖上的神經(jīng)元激活值越大,對(duì)應(yīng)脈沖神經(jīng)元的發(fā)射頻率越高。相比于基于時(shí)間的編碼方法魯棒性更強(qiáng),對(duì)圖像中的噪聲更加不敏感?;诿}沖發(fā)射頻率的編碼方法中,最常用的是根據(jù)神經(jīng)元激活值生成泊松脈沖序列,當(dāng)特征圖上的一個(gè)神經(jīng)元被編碼為脈沖序列時(shí),序列中每個(gè)脈沖的產(chǎn)生是相互獨(dú)立的,而且概率相同,該過程和泊松過程類似,所以可以用泊松過程來模擬脈沖序列的生成。在時(shí)間窗內(nèi)生成k個(gè)脈沖的概率為:

(3)

式中,λ為和神經(jīng)元激活值成正比的參數(shù)。

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

2.1 混合卷積脈沖神經(jīng)網(wǎng)絡(luò)概述

本文提出的混合卷積脈沖神經(jīng)網(wǎng)絡(luò)模型如圖1所示?;旌暇矸e脈沖神經(jīng)網(wǎng)絡(luò)包含卷積部分和脈沖部分,其中卷積部分包含若干卷積層和池化層,模擬生物的視覺系統(tǒng),用于提取圖像特征信息;脈沖部分包含編碼模塊、2層轉(zhuǎn)換神經(jīng)元的全連接層和1個(gè)輸出單元,模擬生物大腦,用于分類圖像。首先,針對(duì)具體數(shù)據(jù)集構(gòu)建完整的CNN并訓(xùn)練,訓(xùn)練完成后,將全連接層神經(jīng)元轉(zhuǎn)換為脈沖神經(jīng)元,并在卷積部分和全連接部分之間添加適當(dāng)?shù)木幋a模塊。然后,測(cè)試過程中,卷積部分接收輸入圖像后輸出特征圖,編碼模塊在設(shè)定的時(shí)間窗內(nèi)將特征圖編碼為脈沖序列,再將脈沖序列輸入到后續(xù)的脈沖網(wǎng)絡(luò)層。最后,輸出圖像的類別。

圖1 基于混合卷積脈沖的圖像分類模型

2.2 訓(xùn)練完整CNN模型

對(duì)于不同的數(shù)據(jù)集,本文選用不同的CNN結(jié)構(gòu)進(jìn)行特征提取以達(dá)到最佳的實(shí)驗(yàn)效果。訓(xùn)練過程采用Adam和隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)相結(jié)合的方法。訓(xùn)練前期使用Adam算法使得模型快速收斂,后期使用SGD算法并設(shè)置學(xué)習(xí)率衰減系數(shù),從而提高了模型的分類準(zhǔn)確率。訓(xùn)練完成后,得到整體的連接權(quán)重及偏置等參數(shù),并把網(wǎng)絡(luò)分為卷積和全連接兩部分,其中卷積部分的結(jié)構(gòu)和參數(shù)整體保持不變,作為完整的特征提取器保留了CNN的特征提取能力;全連接部分的參數(shù)保持不變,神經(jīng)元后續(xù)轉(zhuǎn)換為脈沖神經(jīng)元。

2.3 全連接層神經(jīng)元轉(zhuǎn)換為脈沖神經(jīng)元

脈沖神經(jīng)元與傳統(tǒng)的神經(jīng)元不同,它通過事件驅(qū)動(dòng)的方式對(duì)信息進(jìn)行處理。在沒有輸入信號(hào)時(shí),脈沖神經(jīng)元處于靜息狀態(tài),不進(jìn)行運(yùn)算;當(dāng)收到前一層神經(jīng)元脈沖信號(hào)時(shí),脈沖神經(jīng)元被激活并進(jìn)行相關(guān)運(yùn)算。在處理脈沖序列的過程中,每一個(gè)輸入的脈沖信號(hào)都會(huì)使神經(jīng)元的膜電勢(shì)升高,當(dāng)膜電勢(shì)達(dá)到閾值時(shí),釋放1個(gè)脈沖信號(hào)至突觸后神經(jīng)元之后,脈沖神經(jīng)元重置膜電勢(shì)并回到靜息狀態(tài)。

膜電勢(shì)重置的方式主要有2種,一是直接把膜電勢(shì)重置為0;二是膜電勢(shì)減去神經(jīng)元激發(fā)脈沖的閾值。本文采用第2種方式,這種方式能在一定程度上保留前一層神經(jīng)元的信息,從而減少隨層數(shù)增加而造成的誤差。

本文選用IF模型作為脈沖神經(jīng)元,神經(jīng)元膜電勢(shì)變化如式(2)所示。將Cm設(shè)為1,神經(jīng)元閾值作為超參數(shù),可根據(jù)情況調(diào)整,實(shí)驗(yàn)中默認(rèn)為1,I(t)為神經(jīng)元在時(shí)間步t接收到的突觸前神經(jīng)元發(fā)出的脈沖信號(hào),根據(jù)式(2),每個(gè)脈沖信號(hào)都會(huì)使膜電勢(shì)Vm升高,神經(jīng)元在多次釋放脈沖的過程中向突觸后神經(jīng)元傳遞新的脈沖序列。IF模型與傳統(tǒng)神經(jīng)元在運(yùn)算過程上更為相似,可以最大程度保留轉(zhuǎn)換前網(wǎng)絡(luò)的性能。

2.4 特征圖編碼為脈沖序列

卷積神經(jīng)網(wǎng)絡(luò)部分輸出圖像的特征圖后,由編碼模塊根據(jù)特征圖上神經(jīng)元的激活值將神經(jīng)元編碼為脈沖序列。本文采用基于頻率的編碼方法,因?yàn)椴此擅}沖序列容易引入不必要的變化,影響網(wǎng)絡(luò)的識(shí)別準(zhǔn)確率。本文采用的編碼方法如下:對(duì)于1個(gè)特征圖上的神經(jīng)元,記其激活值為a,每個(gè)時(shí)間步都向突觸后神經(jīng)元施加1個(gè)大小為ka的膜電勢(shì),其中k為比例系數(shù),可根據(jù)神經(jīng)元的脈沖激發(fā)閾值來調(diào)整。整個(gè)編碼階段經(jīng)過的總時(shí)間步數(shù)為時(shí)間窗。IF神經(jīng)元在設(shè)定的時(shí)間窗內(nèi)接收膜電勢(shì)進(jìn)行運(yùn)算并輸出相應(yīng)的脈沖序列。

模型卷積部分得到的特征圖示例如圖2所示,圖3為該特征圖對(duì)應(yīng)的脈沖序列。圖2中的每個(gè)方塊代表1個(gè)神經(jīng)元,方塊顏色的深淺程度代表該神經(jīng)元激活值的大小。編碼為脈沖序列后,圖2中的1個(gè)神經(jīng)元對(duì)應(yīng)圖3中的1行脈沖序列。圖3中,共有50個(gè)時(shí)間步,512個(gè)神經(jīng)元。

圖2 特征圖

圖3 特征圖對(duì)應(yīng)的脈沖序列

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

實(shí)驗(yàn)在MNIST,cifar10及cifar100數(shù)據(jù)集上進(jìn)行,通過識(shí)別準(zhǔn)確率和測(cè)試耗時(shí)這2個(gè)性能指標(biāo)來對(duì)比各類方法的性能。取10次測(cè)試結(jié)果的平均值,標(biāo)準(zhǔn)差代表實(shí)驗(yàn)結(jié)果的穩(wěn)定性。

在MNSIT數(shù)據(jù)集上,采用7層卷積層和2層全連接層的網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在cifar10數(shù)據(jù)集和cifar100數(shù)據(jù)集上,分別采用13層卷積層和2層全連接層的網(wǎng)絡(luò)、ResNet50進(jìn)行訓(xùn)練。分別采用本文方法、Deep CovDenseSNN[9]、文獻(xiàn)[11]及文獻(xiàn)[19]中的方法進(jìn)行識(shí)別準(zhǔn)確率和測(cè)試耗時(shí)的對(duì)比,得到的結(jié)果如表1所示。

表1 不同方法的準(zhǔn)確率和測(cè)試耗時(shí)對(duì)比

從表1可以看出,在MNIST數(shù)據(jù)集上,本文方法與文獻(xiàn)[11]方法相比,識(shí)別準(zhǔn)確率下降了0.03%,測(cè)試耗時(shí)減少了約19.90%;與文獻(xiàn)[9]方法相比,識(shí)別準(zhǔn)確率提升了7.21%。在cifar10數(shù)據(jù)集上,本文方法與文獻(xiàn)[11]方法相比,識(shí)別準(zhǔn)確率提升了1.32%,測(cè)試耗時(shí)減少了98.87%。在cifar100數(shù)據(jù)集上,本文方法的識(shí)別準(zhǔn)確率比文獻(xiàn)[19]方法提升了3.97%。

在cifar10數(shù)據(jù)集上,分別采用本文方法和文獻(xiàn)[11]方法進(jìn)行對(duì)比,結(jié)果如圖所示。圖4中,SNN top-1表示模型預(yù)測(cè)結(jié)果向量中可能性最高的種類即為標(biāo)簽種類的概率,SNN top-5表示預(yù)測(cè)結(jié)果向量中可能性前5的種類中有標(biāo)簽種類的概率。ANN top-1,ANN top-5同理。從圖4可以看出,文獻(xiàn)[11]方法需要較多時(shí)間步才能達(dá)到模型的最高準(zhǔn)確率,而本文方法只轉(zhuǎn)換了ANN中的全連接層,SNN部分深度較淺,所以在較少時(shí)間步內(nèi)就能達(dá)到模型的最高識(shí)別準(zhǔn)確率。

圖4 不同算法在cifar10上的測(cè)試結(jié)果

4 結(jié)束語

受人類視覺系統(tǒng)特征提取過程和大腦計(jì)算方式的啟發(fā),本文提出一種CNN和SNN混合的模型,結(jié)合了CNN的特征提取能力和SNN的生物可解釋性,并使用神經(jīng)元轉(zhuǎn)換的方法對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在一定程度上避免了SNN在網(wǎng)絡(luò)較深時(shí)測(cè)試耗時(shí)過長(zhǎng)的缺陷,使模型能夠適應(yīng)更復(fù)雜的視覺任務(wù),取得了較好的效果。本文模型的不足之處在于轉(zhuǎn)換方法只能用于全連接層,無法適用于分類器中較為普遍的1×1卷積層,后期將對(duì)如何轉(zhuǎn)換更多的神經(jīng)網(wǎng)絡(luò)層類型展開深入研究。

猜你喜歡
電勢(shì)集上脈沖
基于雙空間模糊鄰域相似關(guān)系的多標(biāo)記特征選擇
基于非因果濾波和零點(diǎn)法的近斷層脈沖型地震動(dòng)識(shí)別方法
關(guān)于短文本匹配的泛化性和遷移性的研究分析
第五節(jié):《電勢(shì)差》學(xué)案設(shè)計(jì)
電場(chǎng)中能量問題的處理方法
大射電
師如明燈,清涼溫潤(rùn)
基于脈沖反射法電纜故障定位脈沖源的設(shè)計(jì)
用電勢(shì)分析法解含容電路問題
幾道導(dǎo)數(shù)題引發(fā)的解題思考
扬中市| 乃东县| 青冈县| 三门县| 牡丹江市| 宝坻区| 甘孜| 黎平县| 当阳市| 农安县| 伊金霍洛旗| 建平县| 滁州市| 稻城县| 互助| 乐亭县| 夏邑县| 渭南市| 太白县| 山阳县| 修文县| 贞丰县| 石泉县| 宜兰市| 镇远县| 休宁县| 吴忠市| 松潘县| 衢州市| 隆化县| 梁河县| 南陵县| 都兰县| 雷州市| 江陵县| 西宁市| 青州市| 岚皋县| 安康市| 剑阁县| 昆明市|