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