本發(fā)明涉及智能優(yōu)化領(lǐng)域,尤其涉及一種面向功耗的混合粒子群脈沖神經(jīng)網(wǎng)絡(luò)映射方法。
背景技術(shù):
脈沖神經(jīng)網(wǎng)絡(luò)(spikingneuronnetworks,snn)的研究日益成為計(jì)算智能領(lǐng)域中的一個(gè)研究熱點(diǎn)。脈沖神經(jīng)網(wǎng)絡(luò)采用基于時(shí)間脈沖序列的編碼方式,更接近于腦科學(xué)對(duì)生物神經(jīng)系統(tǒng)的認(rèn)識(shí)。相對(duì)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),脈沖神經(jīng)網(wǎng)絡(luò)表現(xiàn)出了更強(qiáng)的仿生特性和計(jì)算能力。
作為迄今最具生物真實(shí)性的人工神經(jīng)網(wǎng)絡(luò)模型,脈沖神經(jīng)網(wǎng)絡(luò)的全部神經(jīng)元具有和生物神經(jīng)元類(lèi)似的電位脈沖觸發(fā)機(jī)制,這種機(jī)制使得脈沖神經(jīng)網(wǎng)絡(luò)與基于脈沖頻率編碼信息的傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)相比,具有更強(qiáng)的計(jì)算能力,同時(shí)可以對(duì)各種神經(jīng)信號(hào)和連續(xù)函數(shù)進(jìn)行模擬,十分適合對(duì)復(fù)雜時(shí)空信息及大腦神經(jīng)信號(hào)進(jìn)行處理,如模式識(shí)別、數(shù)據(jù)預(yù)測(cè)等。
基于其良好的生物學(xué)特性和強(qiáng)大的計(jì)算能力,希望能夠建立模擬哺乳動(dòng)物大腦關(guān)鍵信息處理機(jī)制的類(lèi)腦硬件系統(tǒng)。但是哺乳類(lèi)動(dòng)物的大腦神經(jīng)元數(shù)量超過(guò)1010個(gè),脈沖神經(jīng)網(wǎng)絡(luò)規(guī)模必然十分巨大,而現(xiàn)有的方法并不能有效地提供百萬(wàn)數(shù)量級(jí)的神經(jīng)元/突觸之間的相互連接。采用常規(guī)軟件計(jì)算的方式來(lái)模擬脈沖神經(jīng)網(wǎng)絡(luò),例如基于傳統(tǒng)計(jì)算機(jī)的純軟件模擬,并不能充分體現(xiàn)發(fā)揮脈沖神經(jīng)網(wǎng)絡(luò)的并行性?xún)?yōu)勢(shì),而且其執(zhí)行速度過(guò)慢,以至于無(wú)法實(shí)時(shí)不能模擬對(duì)大規(guī)模脈沖神經(jīng)網(wǎng)絡(luò)進(jìn)行運(yùn)算,并且系統(tǒng)的可擴(kuò)展性較差。但是常見(jiàn)硬件實(shí)現(xiàn)方式,例如并行g(shù)pu,則存在功耗高等缺點(diǎn)。因此,為了克服現(xiàn)有軟件或硬件方式在實(shí)現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)過(guò)程中出現(xiàn)的問(wèn)題,需要研究一種新的全定制硬件架構(gòu)是非常必要的。
片上網(wǎng)絡(luò)(network-on-chip,noc)技術(shù)上的研究成果,為實(shí)現(xiàn)大規(guī)模脈沖神經(jīng)網(wǎng)絡(luò)硬件互聯(lián)提供了較好的思路和機(jī)制。片上網(wǎng)絡(luò)作為一種獨(dú)特的片上通信方式,在多個(gè)領(lǐng)域有著廣泛的應(yīng)用,得到了較好的發(fā)展。其包括計(jì)算和通信子系統(tǒng)。計(jì)算子系統(tǒng)由大量的計(jì)算單元(processingelement,pe)組成,負(fù)責(zé)完成廣義的計(jì)算任務(wù)。通信子系統(tǒng)由路由器及其連接的通信鏈路組成,負(fù)責(zé)計(jì)算單元的通信互連,能夠?qū)崿F(xiàn)數(shù)據(jù)資源的高速交互。近年來(lái),片上網(wǎng)絡(luò)技術(shù)用于實(shí)現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)的大規(guī)?;ミB,其中神經(jīng)元和突觸映射到片上網(wǎng)絡(luò)的計(jì)算單元模塊、脈沖神經(jīng)元的軸突由片上網(wǎng)絡(luò)的通信路徑來(lái)構(gòu)成,而神經(jīng)元間的連接結(jié)構(gòu)則由片上網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)來(lái)模擬。基于這一方法,使得大規(guī)模脈沖神經(jīng)網(wǎng)絡(luò)的硬件互連成為可能。
采用noc架構(gòu)的硬件系統(tǒng)實(shí)現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)的過(guò)程中,功耗是影響系統(tǒng)性能的重要因素,高溫將使系統(tǒng)性能受到影響,甚至使系統(tǒng)功能受損,所以脈沖神經(jīng)網(wǎng)絡(luò)硬件系統(tǒng)功耗問(wèn)題成為系統(tǒng)設(shè)計(jì)的焦點(diǎn)之一。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明解決的技術(shù)問(wèn)題是在采用noc架構(gòu)的硬件系統(tǒng)實(shí)現(xiàn)脈沖神經(jīng)網(wǎng)絡(luò)的過(guò)程中,有效地對(duì)脈沖神經(jīng)網(wǎng)絡(luò)硬件系統(tǒng)的功耗進(jìn)行優(yōu)化,降低因映射問(wèn)題帶來(lái)的硬件系統(tǒng)功耗,提高系統(tǒng)性能。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供的技術(shù)方案是一種面向功耗的混合粒子群脈沖神經(jīng)網(wǎng)絡(luò)映射方法,通過(guò)將粒子群算法與遺傳算法的結(jié)合的神經(jīng)元節(jié)點(diǎn)映射方式,得到神經(jīng)元節(jié)點(diǎn)映射到硬件系統(tǒng)中的最佳映射結(jié)果,映射方法主體采用粒子群算法,在粒子群算法運(yùn)行的過(guò)程中結(jié)合遺傳算法的突變操作,對(duì)基本粒子群算法進(jìn)行改進(jìn),循環(huán)算法至滿(mǎn)足終止條件,包含以下步驟:
第1步:初始化:設(shè)置粒子群中粒子數(shù)量np、最大迭代次數(shù)i、突變閾值tm,按照粒子表示方式隨機(jī)生成初始粒子群、當(dāng)神經(jīng)元的數(shù)量小于noc系統(tǒng)中pe的數(shù)量時(shí),對(duì)神經(jīng)元數(shù)量進(jìn)行修正;
突變閾值的范圍tm∈(0,1);
每一個(gè)粒子的表示方式及含義如下:
x=(x1,x2,x3,…,xd)
x1,x2,x3,…,xd表示神經(jīng)元的編號(hào)1,2,…,d的一種全排列,而d表示神經(jīng)元的數(shù)量。每個(gè)神經(jīng)元編號(hào)的位置代表神經(jīng)元在noc系統(tǒng)中放置的位置。例如,粒子(2,3,4,5,1)表示編號(hào)為2的神經(jīng)元被放置在noc系統(tǒng)中編號(hào)為1的pe上,編號(hào)為3的神經(jīng)元被放置在noc系統(tǒng)中編號(hào)為2的pe上,以此類(lèi)推;
當(dāng)神經(jīng)元的數(shù)量小于noc系統(tǒng)中pe的數(shù)量時(shí),對(duì)神經(jīng)元數(shù)量進(jìn)行修正的方法是:采用插入虛擬神經(jīng)元的方法使神經(jīng)元的數(shù)量與noc系統(tǒng)中pe的數(shù)量相等,而虛擬神經(jīng)元與虛擬神經(jīng)元之間、虛擬神經(jīng)元與真實(shí)神經(jīng)元之間無(wú)通信。
第2步:根據(jù)適應(yīng)度函數(shù)計(jì)算粒子群中各個(gè)粒子的適應(yīng)度值;適應(yīng)度函數(shù)如下:
這里wij為計(jì)算單元vi到計(jì)算單元vj之間的通訊數(shù)據(jù)量,hij計(jì)算單元vi到計(jì)算單元vj之間的跳距;
第3步:根據(jù)粒子群中各個(gè)粒子的適應(yīng)度值及目標(biāo)函數(shù)找出當(dāng)前粒子群中全局最佳粒子;目標(biāo)函數(shù)如下:
第4步:根據(jù)當(dāng)前粒子群中全局最佳粒子,采取“跳變”的方式對(duì)粒子群中全局最佳粒子除外的每一個(gè)粒子進(jìn)行更新;每個(gè)粒子的更新并未為采用標(biāo)準(zhǔn)粒子群的更新公式:
而是采用“跳變”的方式對(duì)粒子進(jìn)行更新,“跳變”的含義為:對(duì)于一個(gè)多維粒子,在每次粒子更新時(shí),使得粒子自身的至少其中一維的值與全局最佳粒子其中一維的值相同;
第5步:粒子群更新完成后,計(jì)算粒子群的群體相似度;粒子群的群體相似度根據(jù)如下公式計(jì)算:
其中
第6步:將粒子群的群體相似度與設(shè)定的突變閾值進(jìn)行比較,如果群體相似度大于突變閾值,則進(jìn)行第7步;否則,進(jìn)行第8步;
第7步:對(duì)粒子群中全局最佳粒子除外的每一個(gè)粒子進(jìn)行突變操作,然后進(jìn)行第6步;突變操作是指在一個(gè)粒子中隨機(jī)挑選出兩維,進(jìn)行對(duì)調(diào)操作,生成新粒子的過(guò)程。
第8步:判斷當(dāng)前迭代次數(shù)是否達(dá)到設(shè)定的最大迭代次數(shù),如果達(dá)到則進(jìn)行第9步;否則,進(jìn)行第2步;
第9步:輸出全局最佳粒子即最佳映射方案及全局最佳粒子的適應(yīng)度值。
采用本發(fā)明的技術(shù)方案具有以下有益效果:
1、通過(guò)遺傳算法的突變操作對(duì)基本粒子群算法進(jìn)行改進(jìn),克服了基本粒子群算法性能的缺陷,既能夠發(fā)揮粒子群算法原有的搜索能力,也能夠克服基本粒子群算法過(guò)早收斂,容易陷入局部最優(yōu)節(jié)的缺點(diǎn),使算法能夠搜索到全局最優(yōu)解。
2、通過(guò)分析功耗與硬件系統(tǒng)之間的關(guān)系,建立的基于noc系統(tǒng)的功耗模型,建立了本發(fā)明的目標(biāo)函數(shù),有效地降低了系統(tǒng)功耗,增強(qiáng)了映射方案的應(yīng)用性。
附圖說(shuō)明
圖1為脈沖神經(jīng)網(wǎng)絡(luò)映射過(guò)程;
圖2為脈沖神經(jīng)網(wǎng)絡(luò)映射方法流程圖;
圖3為粒子跳變示意圖;
圖4為粒子突變示意圖;
圖5為脈沖神經(jīng)網(wǎng)絡(luò)實(shí)例;
圖6為noc系統(tǒng)實(shí)例;
圖7為noc系統(tǒng)中node路由器路由偽碼;
圖8為noc系統(tǒng)中tile路由器路由偽碼;
圖9為適應(yīng)度值變化情況;
圖10為群體相似度變化情況。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明實(shí)施方式做進(jìn)一步的闡述,但不是對(duì)本發(fā)明的限定。
圖1示出了脈沖神經(jīng)網(wǎng)絡(luò)映射過(guò)程,脈沖神經(jīng)網(wǎng)絡(luò)映射是根據(jù)某些優(yōu)化規(guī)則將神經(jīng)元一一對(duì)應(yīng)地分配給noc系統(tǒng)中的pe即每個(gè)神經(jīng)元的功能只能由一個(gè)pe完成,以實(shí)現(xiàn)特定應(yīng)用,并將目標(biāo)成本(如能耗或延遲)降至最低。圖中snn的映射問(wèn)題被抽象為snn通信任務(wù)圖(snncommunicationgraph,snncg)和noc結(jié)構(gòu)圖(nocarchitecturegraph,nocag)之間的映射問(wèn)題。
實(shí)施例:
如圖2至圖4所示,一種面向功耗的混合粒子群脈沖神經(jīng)網(wǎng)絡(luò)映射方法,通過(guò)將粒子群算法與遺傳算法的結(jié)合的神經(jīng)元節(jié)點(diǎn)映射方式,得到神經(jīng)元節(jié)點(diǎn)映射到硬件系統(tǒng)中的最佳映射結(jié)果,映射方法主體采用粒子群算法,在粒子群算法運(yùn)行的過(guò)程中結(jié)合遺傳算法的突變操作,對(duì)基本粒子群算法進(jìn)行改進(jìn),循環(huán)算法至滿(mǎn)足終止條件,包含以下步驟:
第一步:初始化:設(shè)置粒子群中粒子數(shù)量np、最大迭代次數(shù)i、突變閾值tm,按照粒子表示方式隨機(jī)生成初始粒子群,每一個(gè)粒子的表示方式為x=(x1,x2,x3,…,xd),其中,x1,x2,x3,…,xd表示神經(jīng)元的編號(hào)1,2,…,d的一種全排列,而d表示神經(jīng)元的數(shù)量。每個(gè)神經(jīng)元編號(hào)的位置代表神經(jīng)元在noc系統(tǒng)中放置的位置。同時(shí),當(dāng)神經(jīng)元的數(shù)量小于noc系統(tǒng)中pe的數(shù)量時(shí),對(duì)神經(jīng)元數(shù)量進(jìn)行修正的方法是:采用插入虛擬神經(jīng)元的方法使神經(jīng)元的數(shù)量與noc系統(tǒng)中pe的數(shù)量相等。
第二步:根據(jù)適應(yīng)度函數(shù)計(jì)算粒子群中各個(gè)粒子的適應(yīng)度值。
適應(yīng)度函數(shù)如下:
這里wij為計(jì)算單元vi到計(jì)算單元vj之間的通訊數(shù)據(jù)量,hij計(jì)算單元vi到計(jì)算單元vj之間的跳距。
第三步:根據(jù)第二步中結(jié)果及目標(biāo)函數(shù)找出當(dāng)前粒子群中全局最佳粒子。目標(biāo)函數(shù)如下:
第四步:根據(jù)第三步中找出的全局的最佳粒子,采取“跳變”的方式對(duì)粒子群中每一個(gè)粒子(不包括全局最佳粒子本身)進(jìn)行更新。如圖3所示,跳變的含義為:對(duì)于一個(gè)多維粒子,在每次粒子更新時(shí),使得粒子自身的至少其中一維的值與全局最佳粒子其中一維的值相同。
第五步:粒子群更新完成后,計(jì)算粒子群的群體相似度。
群體相似度計(jì)算公式為:
其中
第六步:將第五步中的群體相似度與第一步中設(shè)定的突變閾值進(jìn)行比較,如果群體相似度大于突變閾值,則進(jìn)行第七步;否則,進(jìn)行第八步;
第七步:對(duì)粒子群中的每一個(gè)粒子(不包括全局最佳粒子本身)進(jìn)行突變操作,然后進(jìn)行第六步;如圖4所示,突變操作的含義為:在一個(gè)粒子中隨機(jī)挑選出兩維,進(jìn)行對(duì)調(diào)操作,生成新粒子的過(guò)程。
第八步:判斷當(dāng)前迭代次數(shù)是否達(dá)到第一步中設(shè)定的最大迭代次數(shù),如果達(dá)到則進(jìn)行第九步;否則,進(jìn)行第二步。
第九步:輸出全局最佳粒子即最佳映射方案及全局最佳粒子的適應(yīng)度值。
圖5至圖10示出了本發(fā)明的有益效果,可通過(guò)以下仿真說(shuō)明:
(一)仿真條件與內(nèi)容:
分別采用本發(fā)明的面向功耗的脈沖神經(jīng)網(wǎng)絡(luò)映射方法與基本粒子群算法及隨機(jī)映射方法進(jìn)行驗(yàn)證比較。
在仿真中,脈沖神經(jīng)網(wǎng)絡(luò)屬于前饋神經(jīng)網(wǎng)絡(luò)。如圖5所示,在前饋神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元從輸入層接收上一級(jí)輸入數(shù)據(jù),并將數(shù)據(jù)輸入到中間層,直到從輸出層輸出數(shù)據(jù),整個(gè)網(wǎng)絡(luò)無(wú)反饋。并且脈沖神經(jīng)網(wǎng)絡(luò)采用全連接的方式,即第i層中的每一個(gè)神經(jīng)元都連接到前一層即i+1層中的所有神經(jīng)元(層編號(hào)為從輸出層開(kāi)始編號(hào))。同時(shí),在snn中以組播的形式發(fā)送數(shù)據(jù),即,第k層中的神經(jīng)元將數(shù)據(jù)發(fā)送到第k+1層中的所有神經(jīng)元(層編號(hào)為從輸入層開(kāi)始編號(hào))。
在仿真中,采用如圖6所示的基于二維網(wǎng)格的星形子網(wǎng)noc系統(tǒng)(thestar-subnet-based-2dmesh,2d-ssbm)及其編號(hào)方式。2d-ssbmnoc系統(tǒng)分為兩個(gè)層次。2d-ssbmnoc系統(tǒng)底層是星形子網(wǎng),由pe及node路由器組成,通過(guò)星形拓?fù)鋵?shí)現(xiàn)互連。星型子網(wǎng)中的pe通過(guò)node路由器直接相互通信。2d-ssbmnoc系統(tǒng)頂層是二維網(wǎng)格結(jié)構(gòu),由tile路由器組成,負(fù)責(zé)不同星形子網(wǎng)之間的通信。
每個(gè)node路由器與相對(duì)應(yīng)的tile路由器都直接相連。pe的編號(hào)方式為在從開(kāi)始,編號(hào)在星形子網(wǎng)內(nèi)部按照逆時(shí)針?lè)绞揭来卧龃?,編?hào)在星形子網(wǎng)之間按照先從左到右,再?gòu)南碌缴系姆绞皆龃蟆?/p>
如圖7所示,node路由器負(fù)責(zé)將數(shù)據(jù)在星形子網(wǎng)內(nèi)部之間傳遞,或者當(dāng)數(shù)據(jù)目的地址在星形子網(wǎng)外部時(shí),node路由器負(fù)責(zé)將數(shù)據(jù)傳遞給相對(duì)應(yīng)的tile路由器。如圖8所示,當(dāng)tile路由器接到node路由器傳遞的數(shù)據(jù)時(shí),首先將數(shù)據(jù)傳遞給目的tile路由器,然后由目的tile路由器發(fā)送到相對(duì)應(yīng)的node路由器,最后傳遞給目的pe。
在本實(shí)施例中,按照表1所示的映射方案信息設(shè)置各種參數(shù),并隨機(jī)生成初始粒子群。如表1所示,脈沖神經(jīng)元數(shù)量為20,noc系統(tǒng)中pe數(shù)量為36,設(shè)定粒子數(shù)量np為30、最大迭代次數(shù)i為200、突變閾值tm為0.5,脈沖神經(jīng)網(wǎng)絡(luò)中共有100條通信路徑,其中,由輸入層神經(jīng)元到中間層神經(jīng)元的每條通信路徑的通信量設(shè)定為1,由中間層神經(jīng)元到輸出層神經(jīng)元的每條通信路徑的通信量設(shè)定為9,最大迭代次數(shù)為200次。
表1映射方案信息
(二)仿真結(jié)果:
具體實(shí)驗(yàn)結(jié)果如表2所示:相比基本粒子群算法、隨機(jī)映射,本發(fā)明本發(fā)明的面向功耗的脈沖神經(jīng)網(wǎng)絡(luò)映射方法具有最低的適應(yīng)度值,說(shuō)明根據(jù)本發(fā)明得到的映射方案的系統(tǒng)功耗更低。同時(shí)根據(jù)表2中群體相似度數(shù)據(jù)可以看出:基本粒子群算法收斂速度明顯快于本發(fā)明的混合粒子群映射方法。
三種映射方法的適應(yīng)度值、群體相似度具體變化情況如圖9、圖10所示。
表2實(shí)驗(yàn)結(jié)果
以上結(jié)合附圖和實(shí)例對(duì)本發(fā)明的實(shí)施方式進(jìn)行了詳細(xì)說(shuō)明,但本發(fā)明不限于所描述的實(shí)施方式,對(duì)本領(lǐng)域的技術(shù)人員而言,不脫離本發(fā)明的原理和精神情況下,對(duì)這些實(shí)施方式進(jìn)行各種變化、修改、替換和變型仍落入本發(fā)明的保護(hù)范圍內(nèi)。