一種自生成神經(jīng)網(wǎng)絡(luò)構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于神經(jīng)網(wǎng)絡(luò)計(jì)算技術(shù)領(lǐng)域,涉及面向軟件建模方法和硬件實(shí)現(xiàn)的神經(jīng)網(wǎng) 絡(luò)自生成方法,特別涉及一種自生成神經(jīng)網(wǎng)絡(luò)構(gòu)建方法。
【背景技術(shù)】
[0002] 計(jì)算機(jī)發(fā)展到今天,無(wú)論是計(jì)算能力還是功耗在性能上都得到了本質(zhì)上的提升。 但隨著人們需求的多樣化,當(dāng)下的計(jì)算機(jī)結(jié)構(gòu)暴露的問(wèn)題也越累越多。自然界提供的信息 處理問(wèn)題有結(jié)構(gòu)性和非結(jié)構(gòu)性兩種。結(jié)構(gòu)性問(wèn)題是指可用數(shù)學(xué)語(yǔ)言清楚而嚴(yán)格地描述,且 可將問(wèn)題的實(shí)現(xiàn)算法公式化,并映射到計(jì)算機(jī)程序,然后由計(jì)算機(jī)條指令處理。在求解這類 問(wèn)題時(shí),傳統(tǒng)的馮諾依曼機(jī)的能力遠(yuǎn)遠(yuǎn)超過(guò)人類。而非結(jié)構(gòu)性問(wèn)題是指無(wú)法用算法描述的 問(wèn)題,人們難以把自己的認(rèn)識(shí)翻譯成機(jī)器指令或僅能極其粗略地進(jìn)行。因此,傳統(tǒng)計(jì)算機(jī)在 進(jìn)行諸如圖象處理與景物分析、語(yǔ)言識(shí)別與理解、智能機(jī)器人控制時(shí),則與人類能力相差甚 遠(yuǎn),甚至無(wú)能為力。
[0003] 神經(jīng)網(wǎng)絡(luò)的發(fā)展大致可分為三個(gè)階段。1947~1969年為初期,在這期間科學(xué)家們 提出了許多神經(jīng)元模型和學(xué)習(xí)規(guī)則,如MP模型、HEBB學(xué)習(xí)規(guī)則和感知器等。1970~1986年為 過(guò)渡期,在此期間,Hopfield教授對(duì)網(wǎng)絡(luò)引入能量函數(shù)的概念,給出了網(wǎng)絡(luò)的穩(wěn)定性判據(jù), 提出了用于聯(lián)想記憶和優(yōu)化計(jì)算的途徑。1987年至今為發(fā)展期,形成神經(jīng)網(wǎng)絡(luò)發(fā)展的一個(gè) 高潮。代表性的有CNN(卷積神經(jīng)網(wǎng)絡(luò))和RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))。當(dāng)下人工神經(jīng)網(wǎng)絡(luò)在圖像識(shí) 另IJ、語(yǔ)音識(shí)別等方向取得了很大的成功。但其結(jié)構(gòu)決定了它無(wú)法實(shí)現(xiàn)生物體一樣的智能。
[0004] 現(xiàn)代人工神經(jīng)網(wǎng)或者脈沖神經(jīng)網(wǎng)設(shè)計(jì)中一個(gè)最大缺陷就是神經(jīng)網(wǎng)不能自組織,自 生長(zhǎng)。而是需要外部系統(tǒng)干預(yù)才能夠改變自身狀態(tài)。比如神經(jīng)元之間的連接關(guān)系,權(quán)值調(diào)整 等等。這就注定了這種方式不能像生物神經(jīng)元一樣根據(jù)外部的刺激自我生長(zhǎng),修復(fù),也就無(wú) 法實(shí)現(xiàn)自學(xué)習(xí)功能。因此要徹底改變?nèi)斯ど窠?jīng)網(wǎng)的局限性,就必須讓人工神經(jīng)網(wǎng)具備自組 織,自生長(zhǎng)功能。
[0005] 現(xiàn)已知的生物神經(jīng)網(wǎng)絡(luò)模型有:Kohonen神經(jīng)網(wǎng)絡(luò)模型,每個(gè)神經(jīng)元結(jié)構(gòu)相同,但 受刺激后,產(chǎn)生連接權(quán)值不同,在外界刺激下,不斷接收信號(hào),不斷執(zhí)行聚類過(guò)程,形成經(jīng) 驗(yàn);Hebb學(xué)習(xí)規(guī)則,神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過(guò)程最終是發(fā)生在神經(jīng)元之間的突觸部位,突觸的聯(lián)結(jié) 強(qiáng)度隨著突觸前后神經(jīng)元的活動(dòng)而變化,變化的量與兩個(gè)神經(jīng)元的活性之和成正比。神經(jīng) 網(wǎng)絡(luò)生成規(guī)則可分為兩個(gè)階段,生長(zhǎng)階段:未成熟神經(jīng)細(xì)胞柔弱的軸突在刺激信號(hào)的引導(dǎo) 下,試探地穿行于正處于發(fā)育階段的大腦之中。一旦軸突的末端找到了其正確的棲息地,它 就開(kāi)始與周?chē)窠?jīng)元細(xì)胞建立盡可能廣泛的突觸聯(lián)系,以便傳導(dǎo)信息。成熟階段:脊椎動(dòng)物 出生后早期發(fā)育中的一個(gè)特征是,神經(jīng)連接的消除。由于生長(zhǎng)階段建立的廣泛連接,并不是 所有連接都是高效的。在外部信號(hào)的長(zhǎng)期刺激下,正確的信息傳遞會(huì)使鏈接會(huì)變的更加穩(wěn) 固,反之則萎縮分離。
【發(fā)明內(nèi)容】
[0006] 為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種自生成神經(jīng)網(wǎng)絡(luò)構(gòu)建 方法,將生物神經(jīng)模型的特點(diǎn)和適當(dāng)?shù)膯l(fā)式算法映射到硅基電路上,使神經(jīng)網(wǎng)絡(luò)可以通 過(guò)該模型自生成和自組織,避免了人工神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)。
[0007] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
[0008] -種自生成神經(jīng)網(wǎng)絡(luò)構(gòu)建方法,包括如下步驟:
[0009] 步驟1,加入刺激信號(hào);
[0010] 步驟2,評(píng)估神經(jīng)元輸出強(qiáng)度,確定該神經(jīng)元的連接方向,不斷形成網(wǎng)絡(luò)連接,最終 生成初始網(wǎng)絡(luò);
[0011] 步驟3,計(jì)算連向目標(biāo)神經(jīng)元的位置與概率;
[0012] 步驟4,判斷當(dāng)前網(wǎng)絡(luò)生成過(guò)程是否停止,如果是,則轉(zhuǎn)入步驟5,否則轉(zhuǎn)入步驟2繼 續(xù);
[0013] 步驟5,通過(guò)尋優(yōu)算法,優(yōu)化網(wǎng)絡(luò)連接;
[0014] 步驟6,判斷是否還需要加入刺激,如果否,則結(jié)束,否則轉(zhuǎn)入步驟1。
[0015] 所述神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元具備對(duì)輸入進(jìn)行運(yùn)算然后輸出的功能,神經(jīng)元和神經(jīng)元 之間能夠通過(guò)連接進(jìn)行信號(hào)傳遞,神經(jīng)元在接收到輸入信號(hào)時(shí),對(duì)輸入信號(hào)進(jìn)行運(yùn)算并存 儲(chǔ)相關(guān)信息;所述神經(jīng)元位置在空間布局上呈規(guī)則的二維排列,同時(shí)給每個(gè)神經(jīng)元一個(gè)確 定的坐標(biāo)值。
[0016] 通過(guò)修改代碼,使得神經(jīng)元具備閾值判斷和發(fā)射脈沖的功能,即具備輸入運(yùn)算然 后輸出的功能,該部分代碼是一個(gè)可以改變計(jì)算模式的黑盒子;
[0017] 所述輸入信號(hào)指當(dāng)前神經(jīng)元接收到的來(lái)自其他神經(jīng)元的輸出信號(hào),所述運(yùn)算為閾 值判斷,即輸出值超出某個(gè)范圍,則輸出為1;存儲(chǔ)的相關(guān)信息指每個(gè)神經(jīng)元的輸入輸出信 號(hào)和閾值判斷值,即將每個(gè)神經(jīng)元看作一個(gè)可計(jì)算、可存儲(chǔ)的單元。
[0018] 本發(fā)明中,網(wǎng)絡(luò)初始神經(jīng)元數(shù)量可設(shè)定為49,最終大小設(shè)定為10000。
[0019]刺激信號(hào)為靜態(tài)的0,1信息,通過(guò)輸入轉(zhuǎn)換模塊,將靜態(tài)的0,1信息輸入轉(zhuǎn)變?yōu)閯?dòng) 態(tài)脈沖信號(hào),即輸入為1時(shí),不斷發(fā)射脈沖,為〇時(shí),不產(chǎn)生脈沖,從而使整個(gè)網(wǎng)絡(luò)的生成過(guò)程 由靜態(tài)過(guò)程轉(zhuǎn)化為動(dòng)態(tài)過(guò)程。
[0020] 所述步驟2中,根據(jù)神經(jīng)元輸出強(qiáng)度,確定該神經(jīng)元的連接方向的規(guī)則如下:
[0021] 每20個(gè)時(shí)鐘周期統(tǒng)計(jì)一次該神經(jīng)元輸出的變化,則該神經(jīng)元的輸出在該20個(gè)時(shí)鐘 周期內(nèi)變化了Μ次,0 < Μ < 20,如果Μ為0,則不產(chǎn)生連線;若Μ為1到5,則連向該神經(jīng)元周邊距 離為1范圍內(nèi)的神經(jīng)元;如果Μ為6到10,則連向該神經(jīng)元周邊距離為2范圍內(nèi)的神經(jīng)元;如果 Μ為11到15,則連向該神經(jīng)元周邊距離為3范圍內(nèi)的神經(jīng)元;如果Μ為16到20,則連向該神經(jīng) 元周邊距離為4范圍內(nèi)的神經(jīng)元。
[0022] 在連接范圍內(nèi),該神經(jīng)元連向被連接神經(jīng)元的概率如下:
[0024]其中i和j表示被連接神經(jīng)元的橫坐標(biāo)和縱坐標(biāo),kij為連向被連接神經(jīng)元的連線數(shù) 量,求和是指對(duì)連接范圍內(nèi)所有被連接神經(jīng)元的連線數(shù)量或者橫坐標(biāo)值相加。
[0025] 所述步驟4中,通過(guò)如下任一方式判斷信號(hào)是否到達(dá)輸出:
[0026] 方式一,判斷輸出神經(jīng)元的輸出在20個(gè)時(shí)鐘周期內(nèi)是否發(fā)生變化,變化則說(shuō)明到 達(dá)輸出;
[0027] 方式二,觀察輸出神經(jīng)元,看是否有連線連向它,如有,則說(shuō)明信號(hào)已到達(dá)輸出;
[0028] 當(dāng)所有的輸出神經(jīng)元中,超過(guò)設(shè)定個(gè)數(shù)的輸出神經(jīng)元有脈沖輸出,則說(shuō)明網(wǎng)絡(luò)生 成完成。
[0029] 所述步驟5中,尋優(yōu)算法為遺傳算法、遍歷算法或退火算法,以其中任意設(shè)定的神 經(jīng)元的輸出作為參考量,通過(guò)算法,去除網(wǎng)絡(luò)中冗余部分。具體地,設(shè)定A個(gè)神經(jīng)元的輸出作 為參考量,當(dāng)檢測(cè)到有B個(gè)神經(jīng)元的輸出在變化,則停止網(wǎng)絡(luò)的生成,進(jìn)入減線階段;從頭開(kāi) 始遍歷每一條連接線,每刪除一條,觀察該A個(gè)神經(jīng)元的輸出是否發(fā)生變化,如果發(fā)生變化, 則不刪除該條連線,如果不變,則認(rèn)為該線段對(duì)系統(tǒng)不產(chǎn)生影響,為冗余部分,將其刪除,一 直進(jìn)行該過(guò)程,直到遍歷完所有連線,則計(jì)算完成。
[0030] 所述步驟6中,判斷是否還需要加入刺激的具體依據(jù)是:輸出神經(jīng)元中的變化的神 經(jīng)元數(shù)量達(dá)到設(shè)定值。
[0031] 相比于傳統(tǒng)的只可改變神經(jīng)元的權(quán)值的神經(jīng)網(wǎng)絡(luò),本發(fā)明提出了一種網(wǎng)絡(luò)整體可 變的方式,即連接方式、神經(jīng)元的計(jì)算單元、連接權(quán)重均是可變的,本發(fā)明提出的網(wǎng)絡(luò)為自 生成的網(wǎng)絡(luò),與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)全部為人為設(shè)定的實(shí)現(xiàn)方式完全不同,可有效減小人為主 觀因素影響。此外本網(wǎng)絡(luò)的生成過(guò)程與生物神經(jīng)理論為基礎(chǔ),為進(jìn)一步探索神經(jīng)腦,從而實(shí) 現(xiàn)真正的智能帶來(lái)可能。
【附圖說(shuō)明】
[0032] 圖1是當(dāng)處于中心處的神經(jīng)元輸出值為8~11時(shí),其可能連向的周?chē)窠?jīng)元的位 置,如圖所示有25個(gè)神經(jīng)元。
[0033]圖2是網(wǎng)絡(luò)構(gòu)建的流程圖。
【具體實(shí)施方式】
[0034]下面結(jié)合附圖和實(shí)施例詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式。
[0035]生物神經(jīng)網(wǎng)經(jīng)過(guò)了漫長(zhǎng)的進(jìn)化過(guò)程,才形成了異常復(fù)雜、規(guī)模龐大的神經(jīng)網(wǎng)絡(luò)系 統(tǒng)。生物學(xué)家對(duì)生物神經(jīng)網(wǎng)的研究工作已經(jīng)進(jìn)行了上百年,至今還對(duì)生物神經(jīng)網(wǎng)的工作原 理知之甚少。更不用說(shuō)對(duì)腦神經(jīng)這種具備認(rèn)知、學(xué)習(xí)、創(chuàng)新方式的神經(jīng)網(wǎng)原理的理解。面對(duì) 這樣復(fù)雜的神經(jīng)網(wǎng)絡(luò),需要調(diào)整研究的方法。不能繼續(xù)按照人工神經(jīng)網(wǎng)的研究思路進(jìn)行,而 應(yīng)該從仿生學(xué)角度研究自組織、自生長(zhǎng)硅基神經(jīng)網(wǎng)的研究工作。這里需要明確說(shuō)明的是不 要試圖復(fù)制一個(gè)和生物神經(jīng)網(wǎng)相同或者類似的硅基神經(jīng)網(wǎng)。而是應(yīng)該研究如何讓硅基神經(jīng) 網(wǎng)可以像生物神經(jīng)網(wǎng)一樣在接收外部刺激的情況下實(shí)現(xiàn)自組織,自生長(zhǎng)和自學(xué)習(xí)。
[0036] 硅基神經(jīng)網(wǎng)的特點(diǎn)是已經(jīng)具有足夠多的神經(jīng)元數(shù)量,但是問(wèn)題是無(wú)法有效地組織 起來(lái)并能夠自生長(zhǎng)最終實(shí)現(xiàn)自學(xué)習(xí)功能。因此本申請(qǐng)?jiān)O(shè)計(jì)一種機(jī)制可以解決這個(gè)問(wèn)題。首 先設(shè)計(jì)神經(jīng)元網(wǎng)絡(luò)的自生成規(guī)則:
[0037] 1.單個(gè)神經(jīng)元有輸入輸出能力,并且能夠?qū)斎胄盘?hào)進(jìn)行一定的加工,然后進(jìn)行 輸出。即神經(jīng)元內(nèi)部計(jì)算單元可以根據(jù)需求改定。
[0038]在本次驗(yàn)證中采用Integrate-and-fire模型作為神經(jīng)元的內(nèi)部計(jì)算方式,該模型 為一個(gè)閾值判斷模型,當(dāng)輸入大于某一閾值時(shí),輸出將變?yōu)楦唠娖健?br>[0039] 2.網(wǎng)絡(luò)能夠?qū)敵鲂盘?hào)按照時(shí)間進(jìn)行強(qiáng)度統(tǒng)計(jì)(此處的強(qiáng)度是指單位時(shí)間內(nèi)輸出 信號(hào)變化的大?。?。如果神經(jīng)元輸出強(qiáng)度超過(guò)一個(gè)閾值就和周?chē)窠?jīng)元生成一個(gè)新的連接, 并且把輸出傳遞過(guò)去。
[0040] 3.根據(jù)輸出的強(qiáng)度來(lái)決定選擇多遠(yuǎn)距離的神經(jīng)元。如果輸出強(qiáng)度高,就連接附近 的,如果輸出強(qiáng)度低,就連接遠(yuǎn)處的。
[0041] 4.神經(jīng)元發(fā)射脈沖之后,要決定脈沖傳輸通道強(qiáng)度的問(wèn)題。這個(gè)通過(guò)連線上的權(quán) 值確定。
[0042] 5.本發(fā)明設(shè)定神經(jīng)元的排列為規(guī)則的二維排列,每個(gè)神經(jīng)元有其對(duì)應(yīng)的坐標(biāo)值, 如圖1所示。輸入神經(jīng)元坐標(biāo)定在較小的位置,輸出神經(jīng)元坐標(biāo)放在較大位置。神經(jīng)元連接 輸出神經(jīng)元的時(shí)候可以設(shè)置優(yōu)先級(jí),優(yōu)先選擇坐標(biāo)大的神經(jīng)元進(jìn)行連接。即神經(jīng)元優(yōu)先向 輸出神經(jīng)元方向傳輸信號(hào)。
[0043] 6.由于輸入為靜態(tài)的高低電平輸入,通過(guò)一個(gè)轉(zhuǎn)換模塊將輸入轉(zhuǎn)換為一個(gè)隨時(shí)間 變化的脈沖信號(hào)。開(kāi)始網(wǎng)絡(luò)中只有少數(shù)的輸入神經(jīng)元被激活,其余未被激活的神經(jīng)元可以 認(rèn)為暫時(shí)不存在。對(duì)于神經(jīng)網(wǎng)的輸入神經(jīng)元,外界給予一個(gè)連續(xù)的電刺激信號(hào)。該神經(jīng)元會(huì) 按照其基本功能向相鄰神經(jīng)元生長(zhǎng)出連接,并且把電信號(hào)傳遞出去。當(dāng)電信號(hào)傳遞到指定 神經(jīng)元時(shí),停止或者減少在輸入神經(jīng)元給予電刺激信號(hào)。這樣就自生長(zhǎng),自學(xué)習(xí)出一個(gè)神經(jīng) 網(wǎng)絡(luò)。
[0044] 以上是神經(jīng)網(wǎng)絡(luò)的生成規(guī)則,其后還需要針對(duì)自學(xué)習(xí)方