劉 慶,任海鵬,姚俊良,劉 龍
(西安理工大學(xué)陜西省復(fù)雜系統(tǒng)控制與智能信息處理重點(diǎn)實(shí)驗(yàn)室,陜西西安 710048)
數(shù)據(jù)是信息的載體,從數(shù)據(jù)中發(fā)掘相關(guān)事物的內(nèi)在聯(lián)系、掌握未知系統(tǒng)的運(yùn)行規(guī)律,一直是人們獲取知識(shí)的重要手段.根據(jù)觀測數(shù)據(jù)辨識(shí)和構(gòu)建多個(gè)變量間耦合關(guān)系的過程被稱為數(shù)據(jù)驅(qū)動(dòng)建模.目前,數(shù)據(jù)驅(qū)動(dòng)建模大致有3類實(shí)現(xiàn)方法:回歸分析[1–4]、神經(jīng)網(wǎng)絡(luò)[5–6],以及符號(hào)回歸[7–8].
回歸分析要求預(yù)先給出模型假設(shè)(model assumption),然后根據(jù)觀測數(shù)據(jù)確定各回歸系數(shù).給出模型假設(shè)的前提是具備與變量耦合關(guān)系相關(guān)的先驗(yàn)知識(shí).對于一個(gè)完全未知的“黑盒子(black box)”來說,難以給出恰當(dāng)?shù)哪P图僭O(shè),而不合理的模型假設(shè)往往導(dǎo)致過擬合(over-fitting),從而限制了回歸分析的應(yīng)用場景.
神經(jīng)網(wǎng)絡(luò)以調(diào)整神經(jīng)節(jié)點(diǎn)連接權(quán)值的方式擬合觀測數(shù)據(jù),因而不要求模型假設(shè),但其所建模型也是以連接權(quán)值的形式存在,因而無法以明確的代數(shù)解析表達(dá)式對變量之間的耦合關(guān)系進(jìn)行實(shí)質(zhì)刻畫.所以,神經(jīng)網(wǎng)絡(luò)本質(zhì)上是為一個(gè)“黑盒子”找到另一個(gè)等效的“黑盒子”,這對模型的理解和數(shù)據(jù)的解釋造成了困難.例如,文獻(xiàn)[9]就指出在煤礦雙電機(jī)驅(qū)動(dòng)帶式輸送機(jī)的能耗建模中前饋(back propagation,BP)神經(jīng)網(wǎng)絡(luò)得到的模型不具備外推性,而基于解析表達(dá)式的輸送機(jī)能耗模型才更為合理.此外,當(dāng)變量耦合關(guān)系比較復(fù)雜時(shí),神經(jīng)網(wǎng)絡(luò)也存在過擬合的現(xiàn)象.
符號(hào)回歸以語法樹(parse tree)對模型進(jìn)行表達(dá),例如著名的質(zhì)能方程E=M·C2可表示成圖1所示語法樹,質(zhì)量M與光速C以圖中所示語法樹的連接關(guān)系耦合,從而得出能量E.不同的語法樹對應(yīng)不同的模型,以優(yōu)化語法樹結(jié)構(gòu)的方式最小化其模型在觀測數(shù)據(jù)上的擬合誤差,就是符號(hào)回歸的過程.換言之,符號(hào)回歸是一個(gè)優(yōu)化問題.由于符號(hào)回歸得到的模型是對語法樹優(yōu)化的結(jié)果,所以不要求預(yù)先給出模型假設(shè),而語法樹對變量耦合關(guān)系的清晰刻畫也使“黑盒子”得以“白化”.因此,以符號(hào)回歸的方式構(gòu)建的模型在合理性與可解釋性兩個(gè)方面均顯著優(yōu)于回歸分析和神經(jīng)網(wǎng)絡(luò).
圖1 語法樹示例Fig.1 Diagram of a parse tree
1992年,John Koza[10]開創(chuàng)性地提出了遺傳規(guī)劃(genetic programming,GP),通過重新定義遺傳算法(genetic algorithm,GA)中的交叉和變異實(shí)現(xiàn)了語法樹的優(yōu)化,奠定了符號(hào)回歸的基礎(chǔ).針對GP易出現(xiàn)代碼膨脹(code bloat)及產(chǎn)生無效語法樹的問題[11–12],Ferrira 提出了基因表達(dá)式規(guī)劃(gene expression programming,GEP)[12].GEP同樣以語法樹表示模型,但是對語法樹以開放式閱讀框架(open reading frame,ORF)進(jìn)行編碼,使GEP對語法樹的遺傳操作靈活而安全.得益于此,GEP在解決符號(hào)回歸問題時(shí)的效率比GP高4個(gè)數(shù)量級(jí)[12].在此之后,以GEP為藍(lán)本的各種變體算法也被相繼提出[13–15].Li X等人[13]采用前綴記號(hào)法對GEP的ORF進(jìn)行存儲(chǔ),顯著提高了GEP的收斂速度.Zhong J 等人[14]提出了一種自學(xué)習(xí)GEP(selflearning GEP,SL–GEP),通過在ORF串中實(shí)行子函數(shù)嵌套機(jī)制提高了對復(fù)雜模型的構(gòu)造能力.Peng Y 等人[15]則通過引入堆棧技術(shù)進(jìn)行解碼進(jìn)一步提高了GEP的解碼效率.近年來,群智能算法在符號(hào)回歸中的應(yīng)用同樣引人關(guān)注[16–18].Qi F 等人[18]利用收斂速度更快的粒子群算法(particle swarm optimization,PSO)實(shí)現(xiàn)了對語法樹的演化,在收斂時(shí)間和平均收斂代數(shù)方面均優(yōu)于傳統(tǒng)GP.Karaboga D等人則將蜂群算法(artificial bee colony,ABC)[17]應(yīng)用于符號(hào)回歸,具有比傳統(tǒng)GP更好的靈活性與魯棒性.不過,由于Qi F和Karaboga D等人[17–18]的研究均直接沿用了GP中的語法樹作為模型表達(dá),因而仍然存在代碼膨脹及產(chǎn)生無效語法樹的問題.鑒于此,Liu Q等人[16]將GEP中的ORF 串和魚群算法(artificial fish school algorithm,AFSA)的優(yōu)化框架進(jìn)行了結(jié)合,取得了在擬合誤差與求解速度方面均優(yōu)于GEP的結(jié)果.
目前,已報(bào)道的各類符號(hào)回歸算法不少,但都忽略了一個(gè)基本問題.符號(hào)回歸的核心任務(wù)是建模,其目的在于解釋數(shù)據(jù),從而揭示規(guī)律,進(jìn)而預(yù)測趨勢.已有算法僅聚焦于模型擬合誤差的最小化,得到的模型往往十分復(fù)雜.奧卡姆剃刀(Occam’s razor)準(zhǔn)則是一個(gè)被物理學(xué)、天文學(xué)等自然科學(xué)領(lǐng)域廣為沿用的基礎(chǔ)性原則,它主張保留與經(jīng)驗(yàn)觀察一致的最簡單假設(shè).盡管在機(jī)器學(xué)習(xí)領(lǐng)域中對什么是“最簡單”尚存爭議,但這一思想在機(jī)器學(xué)習(xí)領(lǐng)域已被廣為接受和運(yùn)用.實(shí)際上,形式簡潔的模型往往更有效.一方面,簡潔的模型不會(huì)過度解釋噪聲,有利于避免過擬合;另一方面,簡潔的模型也更易理解.因此,本文將符號(hào)回歸考慮成一個(gè)同時(shí)對模型擬合誤差和模型復(fù)雜度最小化的多目標(biāo)優(yōu)化問題,并提出了一種基于二叉堆的多目標(biāo)魚群算法(multi-objective artificial fish school algorithm,MO–AFSA)對其求解.詳盡的算法描述及仿真在隨后小節(jié)給出.
符號(hào)回歸本質(zhì)上是一個(gè)組合優(yōu)化的過程,決策變量 是+,-,×,÷,sin(·),exp(·)等運(yùn)算符以及x,y,π等變量或常量,要得到的模型y=?(x)就是定義在由這些運(yùn)算符、變量或常量構(gòu)成的符號(hào)集合S上的一個(gè)最優(yōu)映射?(·).
在本文考慮的優(yōu)化框架下,評(píng)價(jià)模型y=?(x)需從擬合誤差f1與模型復(fù)雜度f2兩個(gè)方面進(jìn)行評(píng)價(jià).本節(jié)給出量化這兩個(gè)指標(biāo)的方法.
本文以平均絕對誤差對模型y=?(x)的擬合誤差進(jìn)行量化.也就是說,擬合誤差f1是關(guān)于映射?(·)的函數(shù),具體根據(jù)式(1)進(jìn)行計(jì)算:
其中:n表示訓(xùn)練樣本的個(gè)數(shù);(xi,yi)表示第i個(gè)訓(xùn)練樣本.
在回歸分析和神經(jīng)網(wǎng)絡(luò)中,正則化是實(shí)現(xiàn)模型約簡的普遍做法,有助于提高模型的泛化能力.然而,符號(hào)回歸以語法樹對模型進(jìn)行描述,正則化并不適用.實(shí)際上,語法樹上語義節(jié)點(diǎn)的多寡,與模型表達(dá)式的復(fù)雜程度直接相關(guān).因此,本文以語法樹節(jié)點(diǎn)個(gè)數(shù)對其進(jìn)行量化,即f2=Nnode.例如,圖2(a)–(b)分別給出了2個(gè)語法樹,其語義節(jié)點(diǎn)數(shù)分別為9和16,它們分別具有形如式(2)–(3)的模型表達(dá)式.顯然,式(2)具有比式(3)更為簡潔的表達(dá)式結(jié)構(gòu).
圖2 兩個(gè)具有不同節(jié)點(diǎn)數(shù)的語法樹示例Fig.2 Two parse trees with different number of nodes
利用AFSA優(yōu)化語法樹,關(guān)鍵是要將語法樹映射為一個(gè)便于算法操作的線性串.GEP中的ORF串結(jié)構(gòu)是符號(hào)回歸常采用的映射形式.本節(jié)在分析ORF的基礎(chǔ)上提出一種基于二叉堆的全新編碼.
3.1.1 ORF串的缺點(diǎn)
ORF串具有一段長度可變的非編碼區(qū),該區(qū)域不產(chǎn)生任何語法表達(dá).非編碼區(qū)是一種有益的編碼冗余,其意義在于確保操作ORF串的安全性,弱化了對ORF串的操作限制.這一點(diǎn)在文獻(xiàn)[16]報(bào)道的工作中得到了確認(rèn).但筆者也發(fā)現(xiàn),ORF串對語法樹的映射表達(dá)并不穩(wěn)定.現(xiàn)以圖3所示的3個(gè)語法樹為例進(jìn)行說明.
根據(jù)ORF編碼規(guī)則,將語法樹上的語義節(jié)點(diǎn)按自上而下、從左至右的次序逐個(gè)排列,構(gòu)成ORF的編碼區(qū),其后補(bǔ)足一定數(shù)量的非運(yùn)算節(jié)點(diǎn)作為非編碼區(qū).表1列出了圖3各語法樹對應(yīng)的ORF串,其中:s表示sin(·)算子,各ORF串的非編碼區(qū)以下劃線標(biāo)出.ORF–2僅1個(gè)符號(hào)位與ORF–1不同(以框線標(biāo)出),這解釋了二者語法樹結(jié)構(gòu)的近似,見圖3(a)–(b);但情況并非總是如此,ORF–3 也僅有1 個(gè)符號(hào)位與ORF–1 不同(以框線標(biāo)出),但二者語法樹的結(jié)構(gòu)卻差異巨大.這說明,相近的ORF串不一定表達(dá)相近的語法樹.從進(jìn)化計(jì)算的角度看,該現(xiàn)象違背了模式塊定理的前提假設(shè)[19].
分析易得,即便只對ORF 串做輕微操作,如修改ORF串的某1個(gè)符號(hào)位,作為表現(xiàn)型的語法樹也可能發(fā)生巨大變化.ORF串對語法樹映射表達(dá)時(shí)的這種不穩(wěn)定性,不利于優(yōu)良分支結(jié)構(gòu)的繼承,從而影響符號(hào)回歸的效果.此外,ORF串具有可變長的非編碼區(qū),將其解碼為語法樹時(shí)須首先確定其有效編碼長度,這需要執(zhí)行專門的算法[16,20].符號(hào)回歸是一個(gè)迭代最優(yōu)化過程,期間會(huì)對ORF頻繁解碼,確定ORF有效長度的運(yùn)算會(huì)顯著劣化符號(hào)回歸的效率.
圖3 語法樹示例Fig.3 Diagram of parse tree
表1 ORF串(下劃線部分為非編碼區(qū))Table 1 ORF-string(the underlined part is the non-coding region)
3.1.2 二叉堆編碼
針對ORF 的前述缺點(diǎn),本文設(shè)計(jì)了一種基于二叉堆(binary heap,BH)的全新編碼.具體說來,二叉堆BH中鍵值為i的節(jié)點(diǎn)BH[i]總有BH[2i+1]與BH[2i+2]兩個(gè)后繼節(jié)點(diǎn).利用這一性質(zhì),本文設(shè)計(jì)了靈活的映射規(guī)則.
現(xiàn)以圖4舉例說明,語法樹的根節(jié)點(diǎn)‘+’在二叉堆中的鍵值為0,即BH[0]=‘+’,其后繼節(jié)點(diǎn)則分別對應(yīng)二叉堆節(jié)點(diǎn)BH[1]=‘s’與BH[2]=‘×’;雖然BH[1]=‘s’具有BH[3]=‘+’和BH[4]=‘×’兩個(gè)后繼,但BH[1]=‘s’表示的sin(·)是一個(gè)單目運(yùn)算符,因而在語法樹中并不對其右子樹進(jìn)行語法表達(dá),故在圖4中以虛線表示,同理的還有BH[5]=‘s’的右子樹;更進(jìn)一步,若將BH[1]=‘s’修改為諸如‘x’或‘a(chǎn)’這樣的非運(yùn)算節(jié)點(diǎn),可將其視作0目運(yùn)算符,則BH[1]在語法樹中的左、右子樹均不進(jìn)行語法表達(dá).另外,本文規(guī)定由(2k+1)個(gè)語義節(jié)點(diǎn)構(gòu)成的二叉堆編碼中,從BH[k]至BH[2k]的(k+1)個(gè)語義節(jié)點(diǎn)只接受非運(yùn)算節(jié)點(diǎn)的賦值以確保映射的語法樹葉節(jié)點(diǎn)上不出現(xiàn)單目或雙目運(yùn)算.
圖4 二叉堆與語法樹的對應(yīng)關(guān)系Fig.4 Correspondence relationship between binary heap and parse tree
在語法表達(dá)的穩(wěn)定性方面,二叉堆編碼明顯優(yōu)于ORF串.實(shí)際上,圖4語法樹去掉虛線部分就是圖3(a)所示的ORF–1 語法樹.將表1 中的ORF–1 根節(jié)點(diǎn)從‘+’替換為‘s’即得到ORF–3,前面筆者已經(jīng)知道這一操作使得ORF–1的語法樹發(fā)生了巨大的拓?fù)渥兓?作為對比,在圖4所示的二叉堆編碼上進(jìn)行同樣操作,將根節(jié)點(diǎn)對應(yīng)的BH[0]=‘+’替換為‘s’.根據(jù)二叉堆編碼映射規(guī)則,可得圖5語法樹(實(shí)線部分).顯然,新得到的語法樹的確繼承了圖4語法樹的拓?fù)?這與表1中ORF–1被修改后發(fā)生的語法樹拓?fù)涞木薮笞兓纬闪嗣黠@對比.二叉堆編碼在表達(dá)語法樹時(shí)優(yōu)良的穩(wěn)定性符合模式定理的前提假設(shè),有利于合理語法分支的繼承.此外,由于可從二叉堆編碼的任意鍵值i處根據(jù)(2i+1)和(2i+2)直接索引后繼節(jié)點(diǎn),因而解碼可以從根節(jié)點(diǎn)出發(fā)并以遞歸方式完成,避免了采用ORF串時(shí)必須首先確定其有效編碼長度的計(jì)算負(fù)擔(dān).
圖5 修改圖4語法樹的根節(jié)點(diǎn)后得到的語法樹Fig.5 Parse tree obtained by altering the root of the original parse tree shown in Fig.4
3.1.3 蒙版
本文在二叉堆編碼的基礎(chǔ)上進(jìn)一步提出蒙版(mask)的概念,以下給出其具體定義及相關(guān)性質(zhì).
定義1蒙版(mask)是二叉堆編碼BH中各語義節(jié)點(diǎn)是否進(jìn)行語法表達(dá)的狀態(tài)刻畫,可視作對BH的一種假想覆蓋,用一段與BH等長的0–1碼串表示,且滿足:
mask[i]=0時(shí),語義節(jié)點(diǎn)BH[i]被蒙版覆蓋不表達(dá)語法;
mask[i]=1時(shí),語義節(jié)點(diǎn)BH[i]未被覆蓋進(jìn)而表達(dá)語法.
例如,圖4中二叉堆編碼與其蒙版的關(guān)系如圖6所示.
關(guān)于蒙版狀態(tài)的確定,并不需要專門的算法.根據(jù)第3.1.2節(jié)中所述的二叉堆編碼規(guī)則,在以遞歸方式將1個(gè)二叉堆解碼為一個(gè)語法樹時(shí),易將蒙版狀態(tài)同步帶回,此處不再贅述.
圖6 二叉堆編碼與其對應(yīng)蒙版關(guān)系示例Fig.6 Diagram of binary heap and its corresponding mask
根據(jù)蒙版的定義,可得到以下性質(zhì)及推論:
性質(zhì)1二叉堆編碼表達(dá)的語法樹節(jié)點(diǎn)個(gè)數(shù)等于其蒙版狀態(tài)之和.
該性質(zhì)可用式(4)表示:
性質(zhì)2對于二叉堆編碼上的任意語義節(jié)點(diǎn)BH[i]:
a)mask[i]=0時(shí),對BH[i]作任意修改,語法樹保持不變;
b)mask[i]=1時(shí),以同目運(yùn)算符替換BH[i],語法樹改變但結(jié)構(gòu)保持不變;以異目運(yùn)算符替換BH[i],語法樹結(jié)構(gòu)也改變.
性質(zhì)2的推論表達(dá)相同結(jié)構(gòu)語法樹的任意二叉堆編碼具有相同的蒙版狀態(tài).
AFSA是由國內(nèi)學(xué)者在模擬自然水域中魚群游弋過程的基礎(chǔ)上提出的一種群體智能優(yōu)化算法,人工魚(artificial fish,AF)通過執(zhí)行隨機(jī)游動(dòng)、覓食、追尾等行為算子實(shí)現(xiàn)對問題解空間的搜索[21].利用AFSA求解本文問題的關(guān)鍵是如何在二叉堆編碼上定義搜索鄰域、擁擠度并實(shí)現(xiàn)相關(guān)行為算子,本小節(jié)對此展開討論.
定義2任意人工魚AF–x的搜索鄰域可定義為與其二叉堆編碼具有相同蒙版狀態(tài)的所有AF的集合.
定義3規(guī)模為Pn的人工魚種群若以圖7所示隊(duì)列表示,則以任意人工魚AFi為中心、從AFi?r至AFi+r的(2r+1)條人工魚構(gòu)成一個(gè)小生境(niche),(2r+1)為其容量.特別地,對于下標(biāo)為s ∈[i?r,i+r](00,s取s除以Pn的余數(shù).該操作使AF0與AFP n?1在邏輯上相連,構(gòu)成一個(gè)邏輯上的環(huán)狀拓?fù)?這樣一來,人工魚種群中就有Pn個(gè)容量為(2r+1)的小生境.
圖7 人工魚小生境示例Fig.7 Diagram of AF niche
定義4人工魚AF–x所在的容量為(2r+1)的小生境中,若有n條人工魚進(jìn)入了AF–x的搜索鄰域,則δ(x)=稱為人工魚AF–x搜索鄰域的擁擠度.
一條任意人工魚AF–x通過執(zhí)行各行為算子搜索問題的解空間,其本質(zhì)是對語法樹的搜索,語法樹以二叉堆編碼的形式存在,因而各行為算子的實(shí)質(zhì)是對二叉堆編碼的操作.一條任意人工魚AF–x的各個(gè)行為算子可描述如下:
1)隨機(jī)游動(dòng)(randomly moving),人工魚AF–x在其搜索鄰域內(nèi)隨機(jī)移動(dòng)rs個(gè)海明距離的行為.
根據(jù)定義2,AF–x在隨機(jī)游動(dòng)后,其二叉堆編碼的蒙版狀態(tài)不能發(fā)生改變.否則,意味著AF–x進(jìn)入了新的搜索鄰域.因此,該行為的實(shí)現(xiàn)方式是從AF–x的二叉堆編碼BH中任選rs個(gè)滿足mask[i]=1的BH[i]以同目運(yùn)算符進(jìn)行替換,取步長rs=min{rnd,AF–x.f2},其中rnd為區(qū)間[minStep,maxStep]上的隨機(jī)整數(shù).
2)覓食(foraging),人工魚AF–x對其搜索鄰域進(jìn)行抽樣和感知,從而向更優(yōu)位置游動(dòng)的行為.
人工魚AF–x對其所在搜索鄰域進(jìn)行隨機(jī)抽樣,將得到的抽樣狀態(tài)y與AF–x進(jìn)行比較,若AF–x ?y(AF–x受y支配),則以y更新AF–x并結(jié)束覓食;否則,AF–x繼續(xù)對鄰域進(jìn)行抽樣,直到連續(xù)Tn次抽樣后均未獲得可支配AF–x的抽樣狀態(tài)y,則覓食行為結(jié)束.
需要解釋的是,AF–x對其搜索鄰域進(jìn)行抽樣得到狀態(tài)y的過程,可通過復(fù)制AF–x的副本并以調(diào)用隨機(jī)游動(dòng)的方式模擬實(shí)現(xiàn).
3)追尾(following),人工魚AF–x向其所在小生境內(nèi)的非支配解y移動(dòng)rs個(gè)海明距離的行為.
計(jì)算人工魚AF–x所在小生境內(nèi)的所有非支配解在目標(biāo)空間中的擁擠距離Cd(crowding distance)[22](與定義4中擁擠度無關(guān)).設(shè)擁擠距離最大的非支配解為AF–y,若Cd(AF–x) 4)逃脫(escaping),人工魚AF–x所在搜索鄰域過于擁擠時(shí),移動(dòng)rs個(gè)海明距離以逃脫所在鄰域的行為. 判斷人工魚AF–x所在搜索鄰域是否過于擁擠的依據(jù)是定義4給出的擁擠度δ(x)是否大于一個(gè)可容忍的擁擠程度上限Uc.若δ(x)>Uc,表明AF–x的搜索鄰域過于擁擠,則AF–x執(zhí)行逃脫行為.根據(jù)定義2,AF–x逃脫所在鄰域意味其二叉堆編碼的蒙版狀態(tài)在行為執(zhí)行后必須發(fā)生改變,否則AF–x未逃出所在鄰域.因此,該行為的實(shí)現(xiàn)方式是從AF–x的二叉堆編碼BH中任選rs個(gè)滿足mask[i]=1的語義節(jié)點(diǎn)BH[i],對其中BH[i](i ∈[0,k ?1])的語義節(jié)點(diǎn)以任意異目運(yùn)算符替換,對BH[i](i ∈[k,2k])的語義節(jié)點(diǎn)以任意0目運(yùn)算符替換,取步長rs=min{rnd,AF–x.f2},其中rnd為區(qū)間[minStep,maxStep]上的隨機(jī)整數(shù). 該行為執(zhí)行后蒙版狀態(tài)必然發(fā)生改變,因此需對蒙版狀態(tài)進(jìn)行及時(shí)更新. 5)維護(hù)外部檔案(external archive maintainance),更新與維護(hù)外部檔案的目的是確保人工魚種群在狀態(tài)更新時(shí)能得到多樣性好且分布均勻的Pareto前沿.本文采用基于格密度的維護(hù)策略[23],對目標(biāo)空間以8×8的方式分塊,則格密度取值等于各塊內(nèi)的人工魚個(gè)數(shù).每次迭代所得Pareto非劣解集與外部檔案集進(jìn)行合并,并剔除其中的被支配解. 前面小節(jié)詳細(xì)描述了各行為算子的實(shí)現(xiàn)方法及外部檔案的維護(hù)策略,本節(jié)以偽代碼的形式給出多目標(biāo)AFSA的執(zhí)行步驟. MO–AFSA算法偽代碼: 筆者以C++對所提算法MO–AFSA進(jìn)行編程,在配置為Intel Core i7–6700 CPU 3.4 GHz,8 GB RAM的計(jì)算平臺(tái)上對其進(jìn)行仿真.算例取自文獻(xiàn)[24],要求被測算法將從函數(shù)y=4.251x2+lnx2+7.243ex上隨機(jī)選取的20個(gè)點(diǎn)(見表2)作為訓(xùn)練樣本進(jìn)行函數(shù)建模.由于該函數(shù)在x=0處存在“尖點(diǎn)”(cusp),因而不易建模,現(xiàn)已成為考察數(shù)據(jù)驅(qū)動(dòng)建模方法的benchmark算例并被廣泛使用[15–16,24–25].本文算法MO–AFSA的參數(shù)按表3設(shè)定.作為對比,本文對回歸分析、神經(jīng)網(wǎng)絡(luò)、GEP[24]、SL–GEP[14]、AFSA[16]等已有數(shù)據(jù)驅(qū)動(dòng)建模方法也進(jìn)行了仿真.此外,為了考察本文算法MO–AFSA得到的Pareto前沿的質(zhì)量,本文還將符號(hào)回歸中已廣泛運(yùn)用的GP[10]與經(jīng)典的NSGA[26]的多目標(biāo)優(yōu)化框架相結(jié)合,編程實(shí)現(xiàn)了多目標(biāo)優(yōu)化版本的GP,記作NSGP,將其作為評(píng)價(jià)參考. 表2 訓(xùn)練樣本集:y=4.251x2+ln x2+7.243ex上隨機(jī)選取的20個(gè)點(diǎn)Table 2 Training set:20 points randomly chosen from the function y=4.251x2+ln x2+7.243ex 表3 本文算法MO–AFSA參數(shù)設(shè)置Table 3 Parameter setting of the proposed MO–AFSA 圖8(a)–(b)分別展示了多項(xiàng)式回歸與高斯回歸兩種回歸分析方法在仿真算例上的建模結(jié)果.作為對比,函數(shù)y=4.251x2+lnx2+7.243ex的真實(shí)曲線也在圖8(a)–(b)中進(jìn)行了顯示.可以看出,不論如何調(diào)整多項(xiàng)式的階次或高斯函數(shù)項(xiàng)數(shù),均無法獲得滿意的擬合效果,所得模型與仿真算例函數(shù)的真實(shí)曲線明顯悖離.其原因在于預(yù)先給出的模型假設(shè)(model assumption)并非算例函數(shù)中變量耦合關(guān)系的真實(shí)反映,盡管通過優(yōu)化回歸系數(shù)可以最小化擬合誤差,但模型假設(shè)的先天不足導(dǎo)致回歸模型始終處于欠擬合(under-fitting)或過擬合(over-fitting)的狀態(tài). 圖9展示了神經(jīng)網(wǎng)絡(luò)對測試算例的擬合情況.本文使用的4個(gè)神經(jīng)網(wǎng)絡(luò)均為3層網(wǎng)絡(luò),包括1個(gè)輸入層、1個(gè)輸出層、1個(gè)隱層.4個(gè)神經(jīng)網(wǎng)絡(luò)的隱層分別具有10,20,30,40個(gè)神經(jīng)元,激活函數(shù)采用Sigmoid函數(shù).為避免過擬合,本文還使用了Bayes正則化技術(shù).從圖9可以看出,較之回歸分析,神經(jīng)網(wǎng)絡(luò)的擬合效果并未見有顯著改善,擬合曲線仍明顯有悖于仿真算例函數(shù)的真實(shí)曲線,尤其在訓(xùn)練樣本分布稀疏的部分可靠性較差. 圖8(a) 基于多項(xiàng)式回歸模型的回歸分析Fig.8(a) Regression analysis based on polynomial model 圖8(b) 基于高斯回歸模型的回歸分析Fig.8(b) Regression analysis based on Gaussian model 圖9 神經(jīng)網(wǎng)絡(luò)建模Fig.9 Neural network modeling 表4列出了本文算法MO–AFSA以多目標(biāo)優(yōu)化的方式對仿真算例y=4.251x2+lnx2+7.243ex進(jìn)行符號(hào)回歸所得到的10個(gè)非支配解,這10個(gè)函數(shù)模型對訓(xùn)練樣本的擬合精度從上到下依次提高,而函數(shù)模型的復(fù)雜度則自下而上依次降低.將這10個(gè)非支配解模型以函數(shù)曲線的形式繪于圖10,通過與算例函數(shù)y=4.251x2+lnx2+7.243ex的真實(shí)曲線進(jìn)行比較,可以看出它們對算例樣本的擬合效果均顯著優(yōu)于圖8–9中回歸分析和神經(jīng)網(wǎng)絡(luò)得到的結(jié)果.圖10所示結(jié)果不僅表明了本文算法的有效性,同時(shí)印證了符號(hào)回歸相對于回歸分析和神經(jīng)網(wǎng)絡(luò)的優(yōu)越性.此外,為了將本文算法MO–AFSA與其他符號(hào)回歸算法進(jìn)行對比,本文還在表4中列出了GEP[24],SL–GEP[14],AFSA[16],NSGP等算法得到的結(jié)果,其中:GEP和AFSA所得結(jié)果分別在文獻(xiàn)[24]和文獻(xiàn)[16]中有報(bào)道,SL–GEP 和NSGP所得結(jié)果則是對算法進(jìn)行編程實(shí)現(xiàn)后的實(shí)測結(jié)果. 表4 各符號(hào)回歸算法根據(jù)表2中訓(xùn)練樣本集得到的函數(shù)模型Table 4 Functional models obtained by each compared symbolic regression algorithm based on the training set listed in Table 2 圖10 基于本文算法MO–AFSA的符號(hào)回歸建模Fig.10 Symbolic regression modeling based on the proposed MO–AFSA 由于GEP,SL–GEP,AFSA僅考慮了最小化擬合誤差而未對模型復(fù)雜度加以考慮,因而得到的模型結(jié)構(gòu)較為復(fù)雜,尤其是SL–GEP和AFSA得到的函數(shù)模型,雖然擬合誤差很小,但是復(fù)雜的模型結(jié)構(gòu)難于解釋和理解.本文算法MO–AFSA以多目標(biāo)優(yōu)化的方式進(jìn)行符號(hào)回歸,兼顧了擬合誤差和模型復(fù)雜度,有助于發(fā)現(xiàn)反映變量真實(shí)耦合關(guān)系的模型.例如表4中由本文算法MO–AFSA 獲得的兩個(gè)分別標(biāo)注了“?”和“”的函數(shù)模型,不僅具有較小的擬合誤差,同時(shí)具有較小的模型復(fù)雜度.若將這兩個(gè)函數(shù)模型中出現(xiàn)的所有常數(shù)化為數(shù)值形式,則分別得到 不難發(fā)現(xiàn),以上兩個(gè)函數(shù)已經(jīng)十分接近仿真算例的真實(shí)函數(shù)關(guān)系y=4.251x2+lnx2+7.243ex.盡管NSGP同樣以多目標(biāo)優(yōu)化的方式進(jìn)行符號(hào)回歸,但其并未得到復(fù)雜度與本文算法MO–AFSA所得模型相當(dāng)?shù)慕Y(jié)果.NSGP得到的8個(gè)非支配解中有5個(gè)在模型復(fù)雜度的指標(biāo)上甚至劣于SL–GEP和AFSA.究其原因,主要在于NSGP對語法樹的交叉和變異操作容易造成代碼膨脹(code bloat),進(jìn)而導(dǎo)致模型復(fù)雜度的大幅增加[11].這是GP系算法的固有問題,僅通過多目標(biāo)優(yōu)化無法從根本上解決,也反證了本文算法MO–AFSA在簡化模型結(jié)構(gòu)方面的優(yōu)越性能.在對算例y=4.251x2+lnx2+7.243ex的仿真測試中,GEP,SL–GEP,AFSA,NSGP等算法得到的函數(shù)模型均具有較滿意的擬合誤差,但多數(shù)模型的結(jié)構(gòu)較為復(fù)雜,雖無明確證據(jù)表明這些復(fù)雜的模型出現(xiàn)了過擬合,但與仿真算例的真實(shí)函數(shù)關(guān)系確有明顯悖離. 圖11展示了MO–AFSA得到的Pareto前沿與GEP,SL–GEP,AFSA,NSGP等對比算法得到的函數(shù)模型在由目標(biāo)函數(shù)f1和f2張成的目標(biāo)空間中的分布情況.由圖可見,在MO–AFSA得到的Pareto前沿上總能找出一個(gè)或多個(gè)函數(shù)模型分別支配GEP,AFSA,或NSGP得到的結(jié)果;盡管SL–GEP能夠得到一個(gè)不劣于MO–AFSA的結(jié)果,但僅得到一個(gè)模型顯然無法比擬MO–AFSA提供的模型多樣性及可選擇性.本質(zhì)上,MO–AFSA得到的Pareto前沿是對潛在函數(shù)模型的批量輸出,通過在Pareto前沿上進(jìn)行合理選取,能夠得到更易解釋的高質(zhì)量函數(shù)模型. 圖11 符號(hào)回歸算法對算例y=4.251x2+ln x2+7.243ex的所得模型在目標(biāo)空間的比較Fig.11 Comparison of the models obtained by the symbol regression algorithms for the example y=4.251x2+ln x2+7.243ex in the objective-space 前文仿真算例y=4.251x2+lnx2+7.243ex的建模難點(diǎn)主要在于x=0處存在“尖點(diǎn)”(cusp),而尖點(diǎn)兩側(cè)函數(shù)瓣的非線性程度并不高.為考察本文算法MO–AFSA對強(qiáng)非線性模型的逼近性能,從函數(shù)y=sin(x·cos(5x))的曲線上隨機(jī)選取15個(gè)點(diǎn)(見表5)作為訓(xùn)練樣本構(gòu)造了新的仿真算例,并且同樣與回歸分析、神經(jīng)網(wǎng)絡(luò)、GEP,SL–GEP,AFSA,NSGP等已有的數(shù)據(jù)驅(qū)動(dòng)建模方法進(jìn)行了對比. 表5 訓(xùn)練樣本集:y=sin(x·cos(5x))上隨機(jī)選取的15個(gè)點(diǎn)Table 5 Training set:15 points randomly chosen from the function y=sin(x·cos(5x)) 圖12和圖13分別展示了兩種回歸分析方法和神經(jīng)網(wǎng)絡(luò)對y=sin(x·cos(5x))的逼近結(jié)果.相較而言,高斯回歸具有更好的逼近效果.令人意外的是,盡管采用了Bayes正則化技術(shù),擁有40個(gè)隱層節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)依然出現(xiàn)了嚴(yán)重的過擬合,原因主要在于40個(gè)隱層節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò)要求更多的訓(xùn)練樣本,而測試算例中的15個(gè)訓(xùn)練樣本數(shù)量顯然太少. 圖12(a) 基于多項(xiàng)式回歸模型的回歸分析Fig.12(a) Regression analysis based on polynomial model 圖12(b) 基于高斯回歸模型的回歸分析Fig.12(b) Regression analysis based on Gaussian model 圖13 神經(jīng)網(wǎng)絡(luò)建模Fig.13 Neural network modeling 表6列出了各算法對算例y=sin(x·cos(5x))的建模結(jié)果.將表6中由本文算法MO–AFSA得到的6個(gè)非劣解模型以函數(shù)曲線的形式繪制于圖14,通過與算例函數(shù)y=sin(x·cos(5x))真實(shí)曲線的比較,可以看出本文算法MO–AFSA的擬合效果顯著優(yōu)于兩種回歸分析方法和神經(jīng)網(wǎng)絡(luò),同時(shí)也印證了MO–AFSA對強(qiáng)非線性模型良好的逼近性能.例如表6中由本文算法MO–AFSA獲得的兩個(gè)分別標(biāo)注了“?”和“”的函數(shù)模型,不僅具有較小的擬合誤差,同時(shí)具有較小的模型復(fù)雜度.若將這兩個(gè)函數(shù)模型中出現(xiàn)的所有常數(shù)化為數(shù)值形式,則分別得到: 其中:模型?→y=sin(1.05x·cos(5.06x))與算例的真實(shí)函數(shù)模型y=sin(x·cos(5x))已經(jīng)十分接近;而→y=cos(1.612?x·cos(5x))中1.612≈π/2,根據(jù)誘導(dǎo)公式cos(π/2?α)=sinα,該模型甚至在數(shù)學(xué)本質(zhì)上已經(jīng)與算例函數(shù)模型具有完全一致的形式. 圖14 基于本文算法MO–AFSA的符號(hào)回歸建模Fig.14 Symbolic regression modeling based on the proposed MO–AFSA 圖15對GEP,SL–GEP,AFSA,NSGP等符號(hào)回歸方法進(jìn)行了比較,將各算法得到的模型在由目標(biāo)函數(shù)f1和f2張成的目標(biāo)空間中進(jìn)行了展示.相較于GEP,SL–GEP,AFSA,NSGP等符號(hào)回歸算法,MO–AFSA得到的函數(shù)模型普遍具有更為簡潔的模型結(jié)構(gòu),有利于模型的理解和解釋.對算例函數(shù) 進(jìn)行的仿真表明,本文算法MO–AFSA不僅具備對強(qiáng)非線性模型的表達(dá)能力,而且在簡化模型結(jié)構(gòu)方面具有顯著優(yōu)勢. 表6 各符號(hào)回歸算法根據(jù)表5中訓(xùn)練樣本集得到的函數(shù)模型Table 6 Functional models obtained by each compared symbolic regression algorithm based on the training set listed in Table 5 為進(jìn)一步考察本文算法MO–AFSA的收斂情況,本文以表7列出的4個(gè)常用算例對算法進(jìn)行測試,并以反向世代距離(inverted generational distance,IGD)作為量化算法收斂性能的指標(biāo)對算法收斂性能進(jìn)行考察.由于表7中算例問題的真實(shí)Pareto前沿?zé)o從知曉,因而本文算法MO–AFSA對各算例分別獨(dú)立運(yùn)行30次,并以所得的30個(gè)Pareto前沿中的所有非支配解作為參考前沿(reference front),據(jù)此計(jì)算各次運(yùn)行的IGD. 圖16以盒圖的形式展示了本文算法MO–AFSA在4個(gè)算例問題上的IGD分布情況.從圖16可以看出,本文算法MO–AFSA在各算例上的IGD分布僅產(chǎn)生較少的離群點(diǎn)(outlier),特別是在對F1,F2,F4三個(gè)算例盒圖出現(xiàn)短“須”(whisker),說明IGD序列的上四分位數(shù)至上止點(diǎn)的分布也比較集中,進(jìn)一步表明本文算法MO–AFSA具有較好的收斂一致性. 圖15 符號(hào)回歸算法對算例y=sin(x·cos(5x))的所得模型在目標(biāo)空間的比較Fig.15 Comparison of the models obtained by the symbol regression algorithms for the example y=sin(x·cos(5x))in the objective-space 表7 用于收斂性測試的符號(hào)回歸標(biāo)準(zhǔn)算例Table 7 Symbolic regression benchmarks for convergence test 圖16 MO–AFSA對表7中4個(gè)benchmark問題的IGD值Fig.16 Corresponding IGD-value of MO-AFSA when solving the benchmarks listed in Table 7 本文算法MO–AFSA是以多目標(biāo)優(yōu)化的方式對能夠擬合訓(xùn)練樣本的潛在函數(shù)模型進(jìn)行批量輸出,與GEP,SL–GEP,AFSA等已有符號(hào)回歸算法相比,其顯著優(yōu)勢在于MO–AFSA能夠批量輸出高質(zhì)量的潛在函數(shù)模型以供選擇.然而,如何從獲得的Pareto前沿上選取一個(gè)折衷解仍是一個(gè)開放性的問題.本節(jié)提出一個(gè)可能的折衷解的選取方法并就此進(jìn)行討論. 在Pareto前沿上的非支配解中,一些潛在函數(shù)模型通過容忍較大的擬合誤差來簡化模型結(jié)構(gòu),另一些則通過提高模型復(fù)雜度來抑制擬合誤差.本文傾向于選擇2個(gè)目標(biāo)函數(shù)間最劃算的折衷.根據(jù)邊際效用遞減規(guī)律,任何一個(gè)目標(biāo)函數(shù)都不應(yīng)被過分偏好.由于整個(gè)目標(biāo)空間被其原點(diǎn)(0,0)支配,可將目標(biāo)空間原點(diǎn)(0,0)視作一個(gè)基準(zhǔn)點(diǎn).當(dāng)一個(gè)潛在函數(shù)模型僅傾向于最小化一個(gè)優(yōu)化目標(biāo)而不是對兩個(gè)優(yōu)化目標(biāo)進(jìn)行平衡,則該潛在函數(shù)模型一定遠(yuǎn)離基準(zhǔn)點(diǎn).基于這樣的認(rèn)知,本文建議在Pareto前沿上選取距離目標(biāo)空間原點(diǎn)(0,0)歐式距離最短的非支配解作為最終模型輸出.考慮到擬合誤差與模型復(fù)雜度在量級(jí)上的顯著差異可能會(huì)影響對兩個(gè)目標(biāo)的偏好,筆者建議在使用前述方法對非支配解進(jìn)行選取之前應(yīng)首先根據(jù)式(5)對目標(biāo)空間進(jìn)行歸一化,其中:Tright表示Pareto前沿最右側(cè)的解,Tleft表示Pareto前沿最左側(cè)的解,Ti表示要?dú)w一化的解. 需要強(qiáng)調(diào)的是,如何從Pareto前沿上選取一個(gè)合適的折衷解在很大程度上取決于具體的應(yīng)用場景.上述方法僅作為一個(gè)通用的可替換方案給出. 本文算法MO–AFSA在對語法樹進(jìn)行編碼表達(dá)時(shí)采用了二叉堆結(jié)構(gòu).該結(jié)構(gòu)在表達(dá)語法樹時(shí)具有優(yōu)良的遺傳穩(wěn)定性,有利于合理語法分支的遺傳和繼承.此外,由于從二叉堆編碼的任意鍵值i處可直接根據(jù)(2i+1)和(2i+2)訪問其后繼節(jié)點(diǎn),因而解碼可從根節(jié)點(diǎn)出發(fā)并以遞歸方式完成,避免了采用ORF串時(shí)必須首先確定有效串長的計(jì)算負(fù)擔(dān).以上優(yōu)點(diǎn)是以較大的內(nèi)存開銷為代價(jià).具體說來,要得到一個(gè)深度為h的語法樹,需要一個(gè)容量為V=(2h ?1)的二叉堆.同樣深度的語法樹,采用二叉堆編碼的內(nèi)存開銷高于ORF串編碼.針對這一問題,本文的觀點(diǎn)是:一方面,目前各種計(jì)算平臺(tái)的內(nèi)存資源已十分富余,不會(huì)造成資源瓶頸;另一方面,即使對于內(nèi)存資源稀缺的應(yīng)用場景,亦可采取多樹表達(dá)策略(multi-tree-based expression)減緩二叉堆編碼對內(nèi)存的消耗,即:利用多個(gè)語法樹以級(jí)聯(lián)耦合的方式實(shí)現(xiàn)深度語法樹的表達(dá).這一策略已在GEP[12]中廣泛應(yīng)用,因而可在本文算法MO–AFSA中直接使用,從而顯著降低算法的內(nèi)存開銷. 本文提出的MO–AFSA涉及多個(gè)參數(shù),本小節(jié)就這些參數(shù)的設(shè)置進(jìn)行簡要討論. 1)種群規(guī)模Pn. MO–AFSA對解空間的搜索依賴于人工魚個(gè)體間的協(xié)作,因而要求人工魚種群具備一定的規(guī)模.以表7中F1為算例,分別測試本文算法MO–AFSA在種群規(guī)模Pn分別取8,14,20,40,60,80,100時(shí)的收斂性能.具體做法是保持其余參數(shù)不變,對種群規(guī)模Pn的不同取值,將本文算法分別獨(dú)立運(yùn)行30次并計(jì)算本文算法在不同Pn下的IGD值.圖17以盒圖的形式對測的結(jié)果進(jìn)行了展示.可以看出,種群規(guī)模Pn小于20的情況下,收斂性能不佳,這是因?yàn)檫^小的種群規(guī)模難以有效形成群體智能;而當(dāng)種群規(guī)模Pn取值達(dá)到20以上時(shí),算法能夠保證較好的收斂性能.不過,考慮到過大的種群規(guī)模同時(shí)會(huì)增加算法耗時(shí),Pn的合理取值范圍一般在20至60之間. 圖17 MO–AFSA的參數(shù)Pn對算法收斂性能的影響Fig.17 Influence of parameter Pn of MO–AFSA on convergence performance 2)抽樣次數(shù)Tn. Tn是人工魚對其所在鄰域進(jìn)行隨機(jī)抽樣搜索的次數(shù)上限.為討論Tn對本文算法MO–AFSA收斂性能的影響,同樣以表7中F1為算例,測試算法在Tn各取值下的IGD值,如圖18所示.不難看出,當(dāng)Tn較小時(shí),人工魚對其所在鄰域的勘探并不十分充分,因而算法未能達(dá)到較好的收斂性能;而當(dāng)Tn>3000時(shí),算法收斂性能較好,這主要得益于人工魚對其所在鄰域勘探強(qiáng)度的提高.需要強(qiáng)調(diào)的是,Tn只是抽樣次數(shù)的上限,并不是實(shí)際抽樣次數(shù),種群中多數(shù)人工魚在覓食過程中進(jìn)行隨機(jī)抽樣的次數(shù)實(shí)際遠(yuǎn)小于Tn次.根據(jù)經(jīng)驗(yàn),Tn合理的取值范圍在3000至6000之間. 圖18 MO–AFSA的參數(shù)Tn對算法收斂性能的影響Fig.18 Influence of parameter Tnof MO–AFSA on convergence performance 3)隨機(jī)步長范圍[minStep,maxStep]. 隨機(jī)步長范圍本質(zhì)上是兩個(gè)參數(shù),分別限定了人工魚移動(dòng)步長的上、下限.為了驗(yàn)證隨機(jī)步長范圍對本文算法MO–AFSA收斂性能的影響,仍以表7中F1為算例,將算法在不同步長范圍下的IGD分布情況以盒圖形式繪制于圖19.可以看出,算法在隨機(jī)步長范圍取[1,2],[2,4],[3,6]時(shí)較好,這與最優(yōu)化理論的一般性結(jié)論相吻合,即:小步長的細(xì)粒度搜索有利于獲得高質(zhì)量解,而大步長的粗粒度搜索則易使算法在極值區(qū)域震蕩并停滯.不過,考慮到過小的步長可能減緩的收斂速度,本文傾向于將步長范圍設(shè)在區(qū)間[3,6],即minStep=3和maxStep=6. 圖19 MO–AFSA的隨機(jī)步長范圍[minStep,maxStep]對算法收斂性能的影響Fig.19 Influence of stepsize range[minStep,maxStep]of MO–AFSA on convergence performance 4)小生境容量(2r+1). 小生境的存在有助于提高局部種群的多樣性.圖20以盒圖形式展示了在小生境容量(2r+1)的不同取值下本文算法MO–AFSA對表7中F1算例進(jìn)行求解時(shí)的IGD分布情況.可以看出,當(dāng)取(2r+1)7時(shí),也即當(dāng)r=3時(shí),算法收斂性能較好.仿真中Pn=40,因此小生境容量約為種群規(guī)模的1/6. 圖20 MO–AFSA的小生境容量(2r+1)對算法收斂性能的影響Fig.20 Influence of niche volume(2r+1)of MO–AFSA on convergence performance 盡管本文提出的MO–AFSA在編碼方法、行為算子的實(shí)現(xiàn)方法等諸多方面已顯著區(qū)別于傳統(tǒng)AFSA[21],并且引入了蒙版、小生境等概念,但并未顛覆傳統(tǒng)AFSA的一般范式,算法仍然通過個(gè)體底層行為的執(zhí)行涌現(xiàn)群體智能,因而其參數(shù)設(shè)置原則與一般AFSA并無顯著不同.此外,提出的MO–AFSA對其參數(shù)并不十分敏感,因此可在相對寬泛的范圍內(nèi)取值. 本文聚焦于現(xiàn)有符號(hào)回歸算法僅最小化擬合誤差而忽略模型結(jié)構(gòu)簡化的問題,提出了一種基于多目標(biāo)人工魚群算法的符號(hào)回歸方法.算法將擬合誤差與模型復(fù)雜度同時(shí)作為目標(biāo)函數(shù)對模型進(jìn)行優(yōu)化.針對ORF串編碼對語法樹表達(dá)不穩(wěn)定且在解碼時(shí)需預(yù)先計(jì)算有效編碼長度等缺點(diǎn),采用二叉堆結(jié)構(gòu)對語法樹進(jìn)行存儲(chǔ)與表達(dá),不僅使語法樹的優(yōu)良分支得以穩(wěn)定地遺傳和繼承,而且方便了解碼.本文在引入蒙版、鄰域、小生境、擁擠度等概念的基礎(chǔ)上,定義了隨機(jī)游動(dòng)、覓食、追尾、逃脫等人工魚行為算子.通過詳實(shí)的算例測試及橫向?qū)Ρ?驗(yàn)證了提出算法解決符號(hào)回歸問題的有效性和優(yōu)越性.此外,本文也對從Pareto前沿上選取折衷解的方法以及降低算法內(nèi)存開銷的方法進(jìn)行了討論.本文研究適用于根據(jù)觀測數(shù)據(jù)對變量間耦合關(guān)系進(jìn)行辨識(shí)和構(gòu)建,從而發(fā)現(xiàn)系統(tǒng)運(yùn)行規(guī)律或事物內(nèi)在聯(lián)系的數(shù)據(jù)驅(qū)動(dòng)建模場景.3.3 算法步驟
4 仿真實(shí)驗(yàn)
5 討論
5.1 模型的選擇
5.2 內(nèi)存開銷的降低
5.3 參數(shù)的選擇
6 結(jié)論