趙吉昌 李穎
摘要:進(jìn)化神經(jīng)網(wǎng)絡(luò)將進(jìn)化算法與人工神經(jīng)網(wǎng)絡(luò)進(jìn)行了有機(jī)結(jié)合,進(jìn)化算法的參與使神經(jīng)網(wǎng)絡(luò)系統(tǒng)在進(jìn)化發(fā)育過(guò)程中可自適應(yīng)的進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)與連接權(quán)值的調(diào)整,改善了神經(jīng)網(wǎng)絡(luò)在模擬仿真過(guò)程中自主智能化不足的缺陷,提高了神經(jīng)網(wǎng)絡(luò)系統(tǒng)的生物真實(shí)性。隨著研究的深入,大量不同類(lèi)型的進(jìn)化神經(jīng)網(wǎng)絡(luò)相繼出現(xiàn),根據(jù)基因編碼方式的不同,可將進(jìn)化神經(jīng)網(wǎng)絡(luò)分為直接編碼型和間接編碼型兩類(lèi)。本文對(duì)神經(jīng)網(wǎng)絡(luò)中基因的編碼方式進(jìn)行了闡述分析,最后總結(jié)了間接編碼方法的應(yīng)用領(lǐng)域。
關(guān)鍵詞:進(jìn)化算法;神經(jīng)網(wǎng)絡(luò);網(wǎng)絡(luò)結(jié)構(gòu);間接編碼
中圖分類(lèi)號(hào):TP183 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j_issn.1003 6970.2016.05.019
本文著錄格式:趙吉昌等.進(jìn)化神經(jīng)網(wǎng)絡(luò)的編碼方法與應(yīng)用[J].軟件,2016,37(5):77-80
引言
隨著社會(huì)的發(fā)展和科技的進(jìn)步,人工智能、智能計(jì)算已成為各科研院所和公司的熱門(mén)研究對(duì)象。進(jìn)化神經(jīng)網(wǎng)絡(luò)(Evolutionary Neural Networks)結(jié)合了更具生物真實(shí)性與可解釋性的人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,ANNs)和進(jìn)化算法(Evolutionary Algorithms,EAs),在生物大腦運(yùn)作機(jī)制的研究和智能化模擬應(yīng)用方面都有廣泛的應(yīng)用。進(jìn)化算法是源自于自然界生物進(jìn)化中選擇、交叉及變異等機(jī)制的一種擁有高魯棒性和廣泛適用性的全局概率性?xún)?yōu)化算法。進(jìn)化算法根據(jù)其計(jì)算側(cè)重點(diǎn)和最終實(shí)現(xiàn)目的的不同可以分為遺傳算法、進(jìn)化規(guī)劃、進(jìn)化策略及在遺傳算法基礎(chǔ)上發(fā)展而來(lái)遺傳規(guī)劃四種。
人工神經(jīng)網(wǎng)絡(luò)從信息處理的角度對(duì)生物神經(jīng)網(wǎng)絡(luò)進(jìn)行了抽象和模擬,以神經(jīng)元為基本組成單元,按神經(jīng)元之間不同的連接方式組成不同結(jié)構(gòu)的網(wǎng)絡(luò)。1943年由心理學(xué)家W.S.McCulloch和數(shù)理邏輯學(xué)家W.Pitts提出并建立了神經(jīng)元的第一個(gè)數(shù)學(xué)模型,即MP模型,開(kāi)創(chuàng)了人工神經(jīng)網(wǎng)絡(luò)的研究時(shí)代。隨后人工神經(jīng)網(wǎng)絡(luò)有了進(jìn)一步發(fā)展,感知器(Perceptron)等更加完善的神經(jīng)網(wǎng)絡(luò)模型相繼被提出。這一時(shí)代的神經(jīng)網(wǎng)絡(luò)模型稱(chēng)為第一代人工神經(jīng)網(wǎng)絡(luò)。經(jīng)歷了一個(gè)短暫的低潮之后,1986年Kumelhart等人提出了誤差反向傳播(Back Propagation)神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱(chēng)BP網(wǎng)絡(luò),至今依然被廣泛使用。這一時(shí)代的神經(jīng)網(wǎng)絡(luò)模型稱(chēng)為第二代人工神經(jīng)網(wǎng)絡(luò)。脈沖神經(jīng)網(wǎng)絡(luò)作為第三代人工神經(jīng)網(wǎng)絡(luò),采用了脈沖編碼信息的方式,與采用頻率編碼的第一代感知器模型和第二代BP神經(jīng)網(wǎng)絡(luò)相比,更加具有生物可解釋性。脈沖神經(jīng)網(wǎng)絡(luò)將脈沖發(fā)放的時(shí)間點(diǎn)加入到神經(jīng)網(wǎng)絡(luò)模型中,通過(guò)對(duì)神經(jīng)元突觸連接權(quán)值的調(diào)整和脈沖發(fā)放時(shí)間的精確模擬,并將網(wǎng)絡(luò)的輸出編碼成輸出脈沖。這種基于脈沖發(fā)放時(shí)間的神經(jīng)網(wǎng)絡(luò)模型,提高了信息維度和模型的計(jì)算能力,可以更好地模擬整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)中信息的動(dòng)態(tài)傳遞過(guò)程。
進(jìn)化神經(jīng)網(wǎng)絡(luò)通過(guò)加入進(jìn)化算法來(lái)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型,在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中引入選擇、交叉和變異等算子,使得神經(jīng)網(wǎng)絡(luò)的自適應(yīng)性和自主性得到了很大程度的提高,解決了全局搜索易陷入局部最優(yōu)的難題。進(jìn)化神經(jīng)網(wǎng)絡(luò)根據(jù)基因編碼方式的不同可分為直接編碼方式(Direct Encoding)和間接編碼方式(Indirect Encoding)兩類(lèi)。
1.進(jìn)化神經(jīng)網(wǎng)絡(luò)的直接編碼方法
直接編碼是將網(wǎng)絡(luò)結(jié)構(gòu)中所有互聯(lián)的信息處理單元即神經(jīng)元或節(jié)點(diǎn)進(jìn)行直接編碼,網(wǎng)絡(luò)中的每個(gè)連接由自身的二進(jìn)制表示直接指定。在遺傳算法中,通常采用二進(jìn)制字符串將連接權(quán)值進(jìn)行直接編碼,按照一定的順序,遍歷整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。在進(jìn)化神經(jīng)網(wǎng)絡(luò)中不再將權(quán)值進(jìn)行二進(jìn)制轉(zhuǎn)換,而是建立了連接矩陣,如一個(gè)N*N的矩陣W=(wii)可以表示一個(gè)含有N個(gè)神經(jīng)元的神經(jīng)網(wǎng)絡(luò),其中wii表示神經(jīng)元i與j之間的連接權(quán)值。若w=0則說(shuō)明兩個(gè)神經(jīng)元之間無(wú)連接;若w不為零則說(shuō)明兩神經(jīng)元之間有連接且連接權(quán)值w。在進(jìn)化計(jì)算下,這種構(gòu)造可以使網(wǎng)絡(luò)結(jié)構(gòu)和連接權(quán)值在程序中同步進(jìn)化。矩陣w與神經(jīng)元之間存在著一對(duì)一的映射關(guān)聯(lián),若權(quán)值w不為零,則將其賦值為l,可得新矩陣c,矩陣c就可通過(guò)二進(jìn)制字符串編碼方式來(lái)表示結(jié)構(gòu)約束。在前饋網(wǎng)絡(luò)和遞歸網(wǎng)絡(luò)中直接編碼網(wǎng)絡(luò)結(jié)構(gòu)如圖1和圖2所示。
通過(guò)圖1可以看出,在前饋網(wǎng)絡(luò)中,由于所有的神經(jīng)元之間的連接都是由前向后推進(jìn)的,因此只需考慮提取轉(zhuǎn)換矩陣c的右上三角形區(qū)域的二進(jìn)制字符串進(jìn)行直接編碼。而在其他網(wǎng)絡(luò)結(jié)構(gòu)中,由于神經(jīng)元之間存在反饋或隨機(jī)的連接,如遞歸網(wǎng)絡(luò)中的回饋連接和自回饋連接,在進(jìn)行編碼時(shí)必須提取整行(列)的二進(jìn)制字符串來(lái)編碼,之后將進(jìn)化算法應(yīng)用到神經(jīng)元染色體中來(lái)進(jìn)化其種群。為了評(píng)估每個(gè)染色體的適應(yīng)值,需要將神經(jīng)元連接權(quán)值初始化之后再進(jìn)行訓(xùn)練,訓(xùn)練誤差可以作為適應(yīng)值的權(quán)衡。
采用直接編碼方式可以在神經(jīng)網(wǎng)絡(luò)中很容易的實(shí)現(xiàn)一個(gè)連接的添加和刪除操作,促進(jìn)種群進(jìn)化的速度及適應(yīng)值的優(yōu)化。但是直接編碼存在著可擴(kuò)展性不強(qiáng)的局限性。隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,連接權(quán)值矩陣的規(guī)模和用來(lái)編碼連接信息的基因數(shù)量也會(huì)成倍增加。除了前饋連接可以將連接編碼簡(jiǎn)化外,其他連接方式采用直接編碼會(huì)將相互無(wú)連接的神經(jīng)元也進(jìn)行編碼,導(dǎo)致程序中有大量的冗余存在,這會(huì)使進(jìn)化計(jì)算的時(shí)間復(fù)雜度和存儲(chǔ)空間增加,降低搜索效率,甚至無(wú)法實(shí)現(xiàn)進(jìn)化功能。
2.進(jìn)化神經(jīng)網(wǎng)絡(luò)的間接編碼方法
為了減少網(wǎng)絡(luò)結(jié)構(gòu)中信息編碼染色體的長(zhǎng)度,研究者們提出了進(jìn)行神經(jīng)網(wǎng)絡(luò)基因編碼的間接編碼方式。在間接編碼方式下,基因型與網(wǎng)絡(luò)的表現(xiàn)型之間不再是一一映射的關(guān)系,而是模擬生物神經(jīng)系統(tǒng)的形成發(fā)育,將網(wǎng)絡(luò)結(jié)構(gòu)的一些特性編碼到染色體中,如神經(jīng)元細(xì)胞的發(fā)育分裂、突觸的形成、軸突和樹(shù)突的生長(zhǎng)等。這種以神經(jīng)元特性來(lái)編碼的基因組在重復(fù)度極高的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中可以表達(dá)大量的神經(jīng)元群,具有很高的重復(fù)利用率。網(wǎng)絡(luò)結(jié)構(gòu)中雖然不同的神經(jīng)元模塊表達(dá)的功能不同,但是構(gòu)成功能模塊的子結(jié)構(gòu)大體相似,也就是說(shuō)可以通過(guò)修改基因組少量的信息來(lái)形成不同的網(wǎng)絡(luò)模塊,從而使編碼效率得以提升。下面介紹三種常用的間接編碼方式:文法規(guī)則編碼方法、細(xì)胞指令編碼方法和基因調(diào)控網(wǎng)絡(luò)方法。2.1
文法規(guī)則編碼方法
Kitan0161運(yùn)用了“圖文生成語(yǔ)法(graph-generationgrammar)”來(lái)進(jìn)行網(wǎng)絡(luò)框架的構(gòu)建,實(shí)現(xiàn)了神經(jīng)網(wǎng)絡(luò)的進(jìn)化。首先應(yīng)用LHS(1eft-hand side)和RHS(right-hand side)方法來(lái)定義文法規(guī)則G=((S,A,B,C,D,a,b,e,h,1),(0,1),S,P)?;蚪M中可能出現(xiàn)的等位基因從象征符號(hào)A-Z和a-p中選擇。染色體的第一個(gè)基因組是固定的開(kāi)始象征符s,將開(kāi)始符s納入到一個(gè)2×2的矩陣中作為網(wǎng)絡(luò)構(gòu)建的起點(diǎn),其它象征符號(hào)由隨機(jī)選擇產(chǎn)生,通過(guò)在染色體中應(yīng)用文法規(guī)則編碼進(jìn)行一定數(shù)量的迭代來(lái)構(gòu)建網(wǎng)絡(luò)。染色體的編碼方式如圖3所示,染色體中五個(gè)基因?yàn)橐唤M,后四位基因?yàn)榈谝粋€(gè)基因的RHS編碼。
2.2細(xì)胞指令編碼方法
細(xì)胞指令編碼(Cellular Encoding)方法以類(lèi)似編程語(yǔ)言中樹(shù)形結(jié)構(gòu)的編碼原理來(lái)實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)發(fā)育時(shí)基因的復(fù)用,進(jìn)化過(guò)程由每個(gè)發(fā)育節(jié)點(diǎn)相對(duì)應(yīng)的發(fā)育指令進(jìn)行控制,如神經(jīng)元的分裂、變異和連接方式的改變等。這種編碼方式具有很高的準(zhǔn)確性與可控性,但指令設(shè)定與基因遞歸調(diào)用方式使其在進(jìn)化大規(guī)模網(wǎng)絡(luò)和求解復(fù)雜性問(wèn)題方面有較多的限制。針對(duì)這種不足,Luke等人提出了用指令修改邊發(fā)育來(lái)控制網(wǎng)絡(luò)增長(zhǎng)的邊編碼(Edge Encoding)方法,精簡(jiǎn)了編碼指令;Suchorzewski給出了以指令集合的形式來(lái)控制網(wǎng)絡(luò)發(fā)育過(guò)程的發(fā)育符號(hào)編碼(Developmental Symbolic Encoding)方法,使神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)模塊化,提高了網(wǎng)絡(luò)的擴(kuò)展性。
2.3基因調(diào)控網(wǎng)絡(luò)方法
基因調(diào)控網(wǎng)絡(luò)(Genetic Regulatory Networks)方法是以生物細(xì)胞中DNA或RNA為原型建立的動(dòng)態(tài)網(wǎng)絡(luò)模型?;蜃鳛榉肿涌刂普{(diào)節(jié)器的集合,通過(guò)其相互作用或者與細(xì)胞中其他物質(zhì)的反應(yīng)來(lái)進(jìn)行信息的轉(zhuǎn)錄與傳遞,在生物中以生成蛋白質(zhì)等有機(jī)物的形式表達(dá),而在人工神經(jīng)網(wǎng)絡(luò)中則是整個(gè)網(wǎng)絡(luò)的進(jìn)化發(fā)育過(guò)程。在人工基因組模型中構(gòu)建了類(lèi)似生物DNA中嘌呤與嘧啶堿基的線(xiàn)性序列基,值從集合{0,l,2,3}中取得。圖4給出了基于人工基因組模型的編碼方式,每個(gè)基因包括調(diào)控區(qū)域、啟動(dòng)子、基因編碼區(qū)域和接口區(qū)域四個(gè)部分,轉(zhuǎn)換后控制發(fā)育的基因調(diào)控網(wǎng)絡(luò)表示為由N個(gè)節(jié)點(diǎn)構(gòu)成的基因調(diào)控網(wǎng)絡(luò)。網(wǎng)絡(luò)可分三層,分別為由N1個(gè)節(jié)點(diǎn)構(gòu)成的輸入層,由N2個(gè)節(jié)點(diǎn)構(gòu)成的調(diào)控層和由No個(gè)節(jié)點(diǎn)構(gòu)成的輸出層,‰由基因組中的基因決定,Ⅳ,和No由相應(yīng)的發(fā)育模型決定。
3.間接編碼方法的應(yīng)用
作為進(jìn)化神經(jīng)網(wǎng)絡(luò)傳統(tǒng)的直接編碼方法的改進(jìn),間接編碼方法的主要特點(diǎn)是在基因重用機(jī)制下實(shí)現(xiàn)對(duì)大規(guī)模神經(jīng)網(wǎng)絡(luò)的快速搜索。因此,該類(lèi)方法除了在其經(jīng)典的非線(xiàn)性分類(lèi)與預(yù)測(cè)問(wèn)題得到應(yīng)用外,還推廣到了自主智能體、進(jìn)化機(jī)器人、模式識(shí)別、圖像處理、微電路進(jìn)化等應(yīng)用領(lǐng)域。
(1)非線(xiàn)性分類(lèi)與預(yù)測(cè)。文獻(xiàn)針對(duì)經(jīng)典的XOR問(wèn)題,以及奇偶和對(duì)稱(chēng)問(wèn)題,采用細(xì)胞編碼方法驗(yàn)證了對(duì)這些非線(xiàn)性問(wèn)題求解的有效性,說(shuō)明間接編碼方法適合于應(yīng)用少量的基因進(jìn)化具有大量重復(fù)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。
(2)自主智能體與機(jī)器人進(jìn)化。進(jìn)化基于神經(jīng)驅(qū)動(dòng)的自主智能體與機(jī)器人是神經(jīng)計(jì)算領(lǐng)域中的一個(gè)重要分支,由于它具有高度的自主能力,這一方面的研究正受到越來(lái)越多的重視。文獻(xiàn)進(jìn)化的自主智能體包括感覺(jué)神經(jīng)系統(tǒng)、運(yùn)動(dòng)神經(jīng)系統(tǒng)和脈沖神經(jīng)控制器三部分,感覺(jué)神經(jīng)系統(tǒng)和運(yùn)動(dòng)神經(jīng)系統(tǒng)多達(dá)64個(gè)神經(jīng)元,隱含層的脈沖神經(jīng)控制器包含1000個(gè)以上的神經(jīng)元,在虛擬的自然場(chǎng)景中凸顯出智能的食物采集行為。文獻(xiàn)利用間接編碼方法實(shí)現(xiàn)了自主智能體避障行為的進(jìn)化。文獻(xiàn)應(yīng)用基于基因調(diào)控網(wǎng)絡(luò)控制的發(fā)育模型進(jìn)化了具有容錯(cuò)特性的脈沖神經(jīng)網(wǎng)絡(luò),控制Khepera機(jī)器人實(shí)現(xiàn)了智能導(dǎo)航。Jin等人進(jìn)一步提出了形態(tài)生成機(jī)器人(Morphogenetic Robotics)的概念,應(yīng)用發(fā)育與進(jìn)化機(jī)制生成了具有自組織、自重構(gòu)與自修復(fù)特征的單機(jī)器人和多機(jī)器人系統(tǒng)。
(3)模式識(shí)別與圖像處理。Kashtan和Alon提出的視網(wǎng)膜問(wèn)題是一個(gè)典型的模式識(shí)別問(wèn)題,利用發(fā)育符號(hào)編碼方法成功地解決了視網(wǎng)膜問(wèn)題,驗(yàn)證了該方法對(duì)模塊化神經(jīng)網(wǎng)絡(luò)的進(jìn)化能力。文獻(xiàn)應(yīng)用結(jié)構(gòu)模式生成網(wǎng)絡(luò)(Compositional Pattern Producing Network,CPPN)方法進(jìn)化神經(jīng)網(wǎng)絡(luò),解決了視覺(jué)分辨問(wèn)題。實(shí)驗(yàn)中分別針對(duì)11×11、33×33、55×55三種不同分辨率的視覺(jué)圖像,CPPN最終生成的網(wǎng)絡(luò)連接數(shù)分別達(dá)到14641(121×121)、1185921(1089×1089)、9150625(3025×3025),如此大規(guī)模神經(jīng)網(wǎng)絡(luò)的進(jìn)化,直接編碼方法由于基因空間過(guò)大很難進(jìn)行有效的求解。文獻(xiàn)進(jìn)一步將CPNN方法應(yīng)用于目標(biāo)識(shí)別與跟蹤問(wèn)題中,取得了良好的效果。
(4)微電路硬件進(jìn)化。目前,應(yīng)用間接編碼方法進(jìn)化微電路硬件的研究已經(jīng)取得了諸多研究成果。文獻(xiàn)提出了模擬遺傳編碼(Analog GeneticEncoding)方法,并應(yīng)用該方法進(jìn)化了模擬電子電路,實(shí)現(xiàn)了溫度傳感器和高斯函數(shù)發(fā)生器,并進(jìn)化了神經(jīng)網(wǎng)絡(luò)的硬件電路,實(shí)現(xiàn)了XOR函數(shù)。Shayani等人進(jìn)一步應(yīng)用間接編碼方法在FPGA(FieldProgrammable Gate Array)上進(jìn)化了脈沖神經(jīng)網(wǎng)絡(luò)微電路,具有可擴(kuò)展性、魯棒性和容錯(cuò)特性。
上述應(yīng)用研究?jī)H僅是進(jìn)化神經(jīng)網(wǎng)絡(luò)間接編碼方法應(yīng)用的一部分,憑借其良好的基因重用能力和大規(guī)模神經(jīng)網(wǎng)絡(luò)的發(fā)育生成能力以及自適應(yīng)計(jì)算等特點(diǎn),間接編碼方法正在不斷地被應(yīng)用到不同的技術(shù)工程研究領(lǐng)域??梢哉J(rèn)為,不能應(yīng)用傳統(tǒng)的直接編碼方法進(jìn)行有效求解的應(yīng)用領(lǐng)域都將會(huì)成為間接編碼方法潛在的拓展空間。
4.結(jié)論
通過(guò)自然進(jìn)化形成的生物腦組織包含幾十億的神經(jīng)元和上萬(wàn)億的神經(jīng)連接,并表現(xiàn)出復(fù)雜的信息處理能力和特有的智能行為。應(yīng)用計(jì)算機(jī)技術(shù)進(jìn)行生物腦功能結(jié)構(gòu)的建模模擬研究越來(lái)越引起人工智能界的重視,在許多領(lǐng)域得到廣泛應(yīng)用。進(jìn)化神經(jīng)網(wǎng)絡(luò)模型把進(jìn)化計(jì)算的進(jìn)化自適應(yīng)機(jī)制與人工神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)機(jī)制進(jìn)行了有機(jī)結(jié)合,有效地克服了傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)的諸多限制和缺點(diǎn)。神經(jīng)元作為進(jìn)化神經(jīng)網(wǎng)絡(luò)中最基本的信息處理單元,其基因的編碼方式直接關(guān)系著整個(gè)網(wǎng)絡(luò)的構(gòu)建與執(zhí)行效率。進(jìn)化神經(jīng)網(wǎng)絡(luò)的基因編碼方式主要有直接編碼方式和間接編碼方式兩種,基于間接編碼方法的進(jìn)化神經(jīng)網(wǎng)絡(luò)已應(yīng)用到了非線(xiàn)性分類(lèi)與預(yù)測(cè)、自主智能體與機(jī)器人進(jìn)化等諸多領(lǐng)域,并取得了一定的成果。如何改進(jìn)現(xiàn)有的基因編碼機(jī)制存在的不足或找出新的編碼方式來(lái)提高進(jìn)化神經(jīng)網(wǎng)絡(luò)的進(jìn)化效率和規(guī)模將是今后研究工作的重點(diǎn)。