本發(fā)明屬于脈沖神經(jīng)網(wǎng)絡(luò)技術(shù),具體涉及一種基于stdp非監(jiān)督學(xué)習(xí)算法的硬件友好型脈沖神經(jīng)網(wǎng)絡(luò)模型。
背景技術(shù):
在生物大腦中,數(shù)以億計(jì)的神經(jīng)元通過突觸相互連接進(jìn)行信息傳遞,從而操控個體進(jìn)行各種復(fù)雜而又縝密的生物活動,這種神經(jīng)系統(tǒng)一直被人們研究模仿,人工神經(jīng)網(wǎng)絡(luò)也一直在世界范圍內(nèi)被人關(guān)注。近些年來,脈沖神經(jīng)網(wǎng)絡(luò)作為第三代人工神經(jīng)網(wǎng)絡(luò),由于其在模式識別、圖像處理、計(jì)算機(jī)視覺等方面展現(xiàn)出來的驚人的生物相似性和強(qiáng)大的計(jì)算能力,越來越被人們廣泛研究。目前為止,許多學(xué)者集中研究了各種各樣的脈沖神經(jīng)網(wǎng)絡(luò)模型以及學(xué)習(xí)機(jī)制,這些計(jì)算模型也在圖像分類、決策及預(yù)測方面取得不錯的效果。但是,目前的工作大都集中在計(jì)算機(jī)軟件平臺,一方面由于前人的工作總結(jié)使得軟件平臺關(guān)于脈沖神經(jīng)網(wǎng)絡(luò)的計(jì)算模型比較成熟,另一方面軟件平臺從學(xué)習(xí)算法到整個神經(jīng)網(wǎng)絡(luò)系統(tǒng)的開發(fā)難度與硬件平臺相比簡單不少,但是軟件平臺串行執(zhí)行的特點(diǎn)從根本上不符合生物大腦神經(jīng)元并行處理的特點(diǎn),而且模擬時間長,拓展性差等問題也比較突出。
人們普遍認(rèn)為神經(jīng)元以脈沖序列形式進(jìn)行信息傳播,stdp學(xué)習(xí)機(jī)制由hebbian規(guī)則的發(fā)展而來,被認(rèn)為是大腦學(xué)習(xí)與信息存儲的重要機(jī)制,屬于一種非監(jiān)督的學(xué)習(xí)機(jī)制。stdp通過調(diào)節(jié)前后突觸的脈沖時間差來實(shí)現(xiàn)網(wǎng)絡(luò)平衡,這樣極大的保證了神經(jīng)網(wǎng)絡(luò)的穩(wěn)定性;不依賴梯度下降算法,這樣在硬件平臺的實(shí)現(xiàn)操作上又降低了難度。
現(xiàn)場可編程門陣列(fpga)是在專用集成電路(asic)的基礎(chǔ)上發(fā)展出來的一種半定制邏輯器件,它具有集成度高,體積小,高速并行計(jì)算,可重復(fù)編程,低功耗等特點(diǎn),因此被廣泛應(yīng)用于數(shù)字電路設(shè)計(jì)中。近年來,由于其并行處理的特點(diǎn)符合神經(jīng)系統(tǒng)的計(jì)算機(jī)制,加上脈沖序列和數(shù)字系統(tǒng)的契合,使得fpga也越來越受到脈沖神經(jīng)網(wǎng)絡(luò)領(lǐng)域的青睞。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的不足之處和局限性,本發(fā)明提供了一種基于stdp非監(jiān)督學(xué)習(xí)算法的硬件友好型脈沖神經(jīng)網(wǎng)絡(luò)模型。
本發(fā)明所采用的技術(shù)方案是:一種基于stdp非監(jiān)督學(xué)習(xí)算法的硬件友好型脈沖神經(jīng)網(wǎng)絡(luò)模型,其特征在于:所述脈沖神經(jīng)網(wǎng)絡(luò)模型是一種多突觸延時的前向反饋神經(jīng)網(wǎng)絡(luò)模型,每層神經(jīng)元分別通過若干條突觸與其它層神經(jīng)元互連,而每層內(nèi)部神經(jīng)元相互獨(dú)立。
本發(fā)明實(shí)現(xiàn)了硬件平臺關(guān)于脈沖神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì),采用了一種基于神經(jīng)元前后脈沖時間差的stdp非監(jiān)督學(xué)習(xí)算法對網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)訓(xùn)練,使網(wǎng)絡(luò)在精準(zhǔn)時間開火。一方面,stdp非監(jiān)督學(xué)習(xí)算法使得網(wǎng)絡(luò)的簡潔性和穩(wěn)定性有了極大提高,對于生物相似性的模仿有了進(jìn)一步的發(fā)展;另一方面,該算法十分適合于fpga平臺的開發(fā)設(shè)計(jì),對比軟件平臺的各種脈沖神經(jīng)網(wǎng)絡(luò)模型,其優(yōu)勢在于,由于fpga并行計(jì)算的特點(diǎn)十分契合脈沖神經(jīng)網(wǎng)絡(luò)并行聯(lián)接結(jié)構(gòu),在保證高速計(jì)算的情況下具有很高的可復(fù)制性與拓展性,對于超大規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)的研究具有非凡意義。
附圖說明
圖1本發(fā)明實(shí)施例的脈沖神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖;
圖2發(fā)明實(shí)施例的脈沖編碼及stdp非監(jiān)督學(xué)習(xí)算法特性曲線示意圖;
圖3發(fā)明實(shí)施例的stdp非監(jiān)督學(xué)習(xí)算法訓(xùn)練流程圖;
圖4發(fā)明實(shí)施例的基于stdp非監(jiān)督學(xué)習(xí)算法的脈沖神經(jīng)網(wǎng)絡(luò)硬件電路圖。
具體實(shí)施方式
為了便于本領(lǐng)域普通技術(shù)人員理解和實(shí)施本發(fā)明,下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)描述,應(yīng)當(dāng)理解,此處所描述的實(shí)施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
參見圖1,本發(fā)明提供的一種基于stdp非監(jiān)督學(xué)習(xí)算法的硬件友好型脈沖神經(jīng)網(wǎng)絡(luò)模型,是一種多突觸延時的前向反饋神經(jīng)網(wǎng)絡(luò),每層神經(jīng)元分別通過若干條突觸與其它層神經(jīng)元互連,而每層內(nèi)部神經(jīng)元相互獨(dú)立。神經(jīng)元采用的是脈沖響應(yīng)模型srm,外界輸入信號將引起細(xì)胞膜電位的變化,當(dāng)膜電勢超過閾值,神經(jīng)元將會發(fā)放脈沖,然后進(jìn)入耐火期,并且不對任何外界刺激做出反應(yīng);相反則不會發(fā)放脈沖。
該脈沖神經(jīng)網(wǎng)絡(luò)模型是基于數(shù)字硬件電路平臺進(jìn)行設(shè)計(jì),采用硬件描述語言進(jìn)行編寫的模型。
參見圖2,輸入到脈沖神經(jīng)網(wǎng)絡(luò)的圖像信息,每個像素點(diǎn)都按照規(guī)律的時鐘頻率進(jìn)行脈沖編碼,每個脈沖信號帶有時間信息編碼,每層神經(jīng)元都會分別接收和發(fā)放帶有精準(zhǔn)時間信息的脈沖信號,因此,前后脈沖時間差是該脈沖神經(jīng)網(wǎng)絡(luò)的主要特征,也是stdp非監(jiān)督學(xué)習(xí)算法的重要參數(shù)。
參見圖3,利用stdp非監(jiān)督學(xué)習(xí)算法對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。stdp非監(jiān)督學(xué)習(xí)算法不依賴突觸連接的實(shí)時誤差數(shù)據(jù)和教師信號,僅僅根據(jù)前后脈沖發(fā)放時間差即可實(shí)現(xiàn)訓(xùn)練過程,避免了梯度下降算法的復(fù)雜性無疑為硬件設(shè)計(jì)降低了難度。所有輸出神經(jīng)元能夠在準(zhǔn)確的時間開火,即完成整個脈沖神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,產(chǎn)生鎖定信號。整個網(wǎng)絡(luò)訓(xùn)練過程屬于無監(jiān)督的學(xué)習(xí)行為。
輸入層神經(jīng)元只參與圖像信息編碼,向下一層神經(jīng)元發(fā)放脈沖,并不參與計(jì)算;其它層神經(jīng)元在接收到輸入信號,細(xì)胞膜電位將會發(fā)生變化,其大小由后突觸興奮強(qiáng)度和權(quán)值大小共同決定,srm神經(jīng)元數(shù)學(xué)模型為:
其中,uj(t)表示后神經(jīng)元j的細(xì)胞膜電勢,n表示連接到后神經(jīng)元j的輸入脈沖數(shù),wij是前神經(jīng)元i和后神經(jīng)元j的連接突觸,fpsp(t)是輸入脈沖所引起的后突觸電位興奮強(qiáng)度,
參見圖4,硬件平臺的神經(jīng)元結(jié)構(gòu)主要由加法器、乘法器、memory、fifo以及寄存器組等組成,數(shù)據(jù)格式為8位無符號整數(shù);stdp非監(jiān)督學(xué)習(xí)算法,包括以下步驟:
步驟1:輸入圖像信息進(jìn)行脈沖編碼。對于二值圖像黑色像素點(diǎn),輸入層神經(jīng)元根據(jù)時鐘頻率產(chǎn)生有規(guī)律的脈沖序列,二白色像素點(diǎn)則不會引起輸入層神經(jīng)元電位狀態(tài)變化。經(jīng)過編碼產(chǎn)生的脈沖信號都會帶有時間信息,通過突觸進(jìn)入到隱藏層。
步驟2:主要進(jìn)行突觸權(quán)值的讀取、更新及存儲,包括讀\寫使能信號端口、數(shù)據(jù)輸入\輸出端口、時鐘信號及復(fù)位信號,突觸權(quán)值存儲在fifo。當(dāng)神經(jīng)元沒有開火,讀使能置位,突觸權(quán)值大小不斷被讀取出來,流向神經(jīng)元中;當(dāng)神經(jīng)元開火,網(wǎng)絡(luò)進(jìn)入學(xué)習(xí)模式,寫使能置位,更新后的突觸權(quán)值被寫入fifo。突觸權(quán)值的更新是整個神經(jīng)網(wǎng)絡(luò)訓(xùn)練的目的。
步驟3:神經(jīng)元模型采用了脈沖響應(yīng)模型srm,包括脈沖輸入\輸出端口、突觸權(quán)值輸入端口、配置信息輸入端口、乘法器、加法器、比較器、時鐘信號及復(fù)位信號。輸入脈沖引起的后突觸電位興奮強(qiáng)度存儲在一塊memory中,輸入脈沖所編碼的時間信息作為讀取地址。根據(jù)神經(jīng)元數(shù)學(xué)模型,突觸權(quán)值和后突觸電位興奮將會送入到乘法器,然后經(jīng)過加法器、移位寄存器計(jì)算出細(xì)胞膜電勢與閾值θ比較。一旦超過了閾值θ,神經(jīng)元會發(fā)放脈沖,進(jìn)入到耐火期。
步驟4:stdp非監(jiān)督學(xué)習(xí)算法對本脈沖神經(jīng)網(wǎng)絡(luò)訓(xùn)練的主要作用即更新突觸權(quán)值;在神經(jīng)元耐火期,網(wǎng)絡(luò)將進(jìn)行基于stdp非監(jiān)督學(xué)習(xí)算法的學(xué)習(xí)以更新突觸權(quán)值,包括突觸權(quán)值輸入\輸出端口、使能信號、時間信息輸入端口、時鐘信號及復(fù)位信號。更新的突觸權(quán)值δw預(yù)先存儲在一塊memory中,前后脈沖時間δt差作為地址讀取數(shù)據(jù),然后與原突觸權(quán)值相加即完成了一次網(wǎng)絡(luò)訓(xùn)練。根據(jù)前后脈沖時間差的特點(diǎn)對突觸權(quán)值訓(xùn)練,輸出數(shù)據(jù)流向突觸,是本發(fā)明的關(guān)鍵技術(shù)。
步驟5:輸出層神經(jīng)元的分類結(jié)果未達(dá)到預(yù)期,重復(fù)步驟1-步驟4,直至其能夠?qū)崿F(xiàn)精時間開火,網(wǎng)絡(luò)訓(xùn)練結(jié)束。
本發(fā)明完全依賴數(shù)字硬件電路平臺進(jìn)行脈沖神經(jīng)網(wǎng)絡(luò)的模型設(shè)計(jì),并且創(chuàng)新性的將stdp非監(jiān)督學(xué)習(xí)算法用于該脈沖神經(jīng)網(wǎng)絡(luò)模型的學(xué)習(xí)訓(xùn)練中,能夠?qū)崿F(xiàn)特定功能。該硬件平臺脈沖神經(jīng)網(wǎng)絡(luò)模型具有較高的穩(wěn)定性,能夠在占用較少硬件資源的條件下?lián)碛休^快的速度,加上網(wǎng)絡(luò)結(jié)構(gòu)并行連接的特點(diǎn),其拓展性也大大提高,對于實(shí)現(xiàn)超大規(guī)模的脈沖神經(jīng)網(wǎng)絡(luò)也提供了新的思路。
本發(fā)明利用stdp非監(jiān)督學(xué)習(xí)算法很好地實(shí)現(xiàn)了脈沖神經(jīng)網(wǎng)絡(luò)在數(shù)字硬件電路平臺的設(shè)計(jì),具有較高拓展性和較快的處理速度,同時也為脈沖神經(jīng)網(wǎng)絡(luò)與數(shù)字硬件電路平臺的結(jié)合提供了新的思路與嘗試。
應(yīng)當(dāng)理解的是,本說明書未詳細(xì)闡述的部分均屬于現(xiàn)有技術(shù)。
應(yīng)當(dāng)理解的是,上述針對較佳實(shí)施例的描述較為詳細(xì),并不能因此而認(rèn)為是對本發(fā)明專利保護(hù)范圍的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的啟示下,在不脫離本發(fā)明權(quán)利要求所保護(hù)的范圍情況下,還可以做出替換或變形,均落入本發(fā)明的保護(hù)范圍之內(nèi),本發(fā)明的請求保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。