張濤 張軒雄
摘要:模糊規(guī)則提取和隸屬度函數(shù)學(xué)習(xí)是模糊推理系統(tǒng)設(shè)計(jì)過(guò)程中重要而困難的問(wèn)題。針對(duì)該問(wèn)題,提出一種基于人工蜂群算法(ABC算法)訓(xùn)練自適應(yīng)神經(jīng)模糊推理系統(tǒng)(ANFIS)的新方法。神經(jīng)網(wǎng)絡(luò)采用5層ANFIS網(wǎng)絡(luò)結(jié)構(gòu),并且描述了基本思想和算法實(shí)現(xiàn)過(guò)程。在ANFIS中引入ABC算法進(jìn)行參數(shù)訓(xùn)練和優(yōu)化,該方法適用于非線(xiàn)性系統(tǒng)辨識(shí)。實(shí)驗(yàn)結(jié)果表明,加入ABC算法之后,ANFIS訓(xùn)練和參數(shù)優(yōu)化等取得了良好效果。
關(guān)鍵詞:人工蜂群算法;群體智能;自適應(yīng)神經(jīng)模糊推理系統(tǒng);均方根誤差
Research on ANFIS Based on Artificial Bee Colony Algorithm
ZHANG Tao, ZHANG Xuan?xiong
(School of Optical?Electrical and Computer Engineering,
University of Shanghai for Science and Technology, Shanghai 200093,China)
Abstract:The extraction of fuzzy rules and the study of membership function are important and difficult problems in the design process of fuzzy inference system. To solve this problem, a new method of training adaptive neural fuzzy inference system (ANFIS) is introduced, which is a branch of swarm intelligence: artificial bee colony algorithm. The neural network adopts five layers of ANFIS network structure, and explains the basic idea and the realization process of the algorithm. In the adaptive neural fuzzy inference system, artificial bee colony algorithm is introduced to carry out parameter training and optimization. The proposed method is suitable for nonlinear system identification. The experimental results show that after the ABC algorithm is added, good results are obtained for ANFIS training and parameter optimization.
Key Words:artificial bee colony; swarm intelligence; ANFIS; RMSE
0?引言
自適應(yīng)神經(jīng)模糊推理系統(tǒng)(Adaptive Network Fuzzy Inference System,ANFIS)是一種將模糊系統(tǒng)與神經(jīng)網(wǎng)絡(luò)結(jié)合起來(lái)的新型模糊推理系統(tǒng)結(jié)構(gòu)。它建立在模糊推理系統(tǒng)基本模型基礎(chǔ)上,混合最小二乘法以及反向傳播算法進(jìn)行參數(shù)調(diào)整,并且能夠自動(dòng)產(chǎn)生if-then規(guī)則。一直以來(lái),ANFIS參數(shù)的更新和訓(xùn)練都是重要難題之一。
近年來(lái),許多新方法被用于優(yōu)化隸屬度函數(shù)。Shoorehdeli等[1]提出用于ANFIS訓(xùn)練的不同混合方法,結(jié)合粒子群算法、遞歸最小二乘法和擴(kuò)展卡爾曼濾波用于其訓(xùn)練。Chatterjee等[2]描述了Takagi-Sugeno型模糊神經(jīng)系統(tǒng)的發(fā)展過(guò)程,并將其用粒子群優(yōu)化之后用于機(jī)器人動(dòng)態(tài)建模。Chen[3]介紹了一種用于商業(yè)問(wèn)題預(yù)測(cè)的混合ANFIS模型,結(jié)合粒子群算法與減法聚類(lèi)。Turki等[4]提出一種用粒子群算法優(yōu)化模糊神經(jīng)系統(tǒng)的參數(shù),通過(guò)使用粒子群算法調(diào)整與優(yōu)化前提參數(shù)以及結(jié)論參數(shù)。Zangench等[5]提出一種用差分進(jìn)化算法訓(xùn)練ANFIS的新方法。Catalao等[6]介紹了一種混合小波、粒子群優(yōu)化以及ANFIS的方法用于短期電費(fèi)預(yù)測(cè)。Gunesekaran 等[7]整合人工免疫算法和ANFIS,預(yù)測(cè)了印度國(guó)家證券交易所的預(yù)期指標(biāo)值。Lin等[8]提出一種基于模糊熵聚類(lèi)、改進(jìn)粒子群算法以及遞歸奇異值分解的新的混合學(xué)習(xí)算法。
粒子群算法的局部尋優(yōu)能力較差,需要較長(zhǎng)的計(jì)算時(shí)間,而且容易陷入局部最優(yōu),不能絕對(duì)保證搜索到全局最優(yōu)解,容易陷入局部最優(yōu)解,穩(wěn)定性較差。DE算法對(duì)參數(shù)設(shè)置的依賴(lài)性過(guò)強(qiáng),設(shè)置不當(dāng)會(huì)加長(zhǎng)尋優(yōu)時(shí)間,并容易陷入局部最優(yōu)解。而人工蜂群算法參數(shù)較少,對(duì)于初始值的設(shè)置無(wú)特殊要求,算法適應(yīng)性更強(qiáng),可以采用串行和并行等多種方式實(shí)現(xiàn),能夠更好地與實(shí)際問(wèn)題相結(jié)合。因此,本文提出一種利用人工蜂群算法訓(xùn)練ANFIS的新方法。該方法可以將ANFIS的參數(shù)訓(xùn)練過(guò)程近似轉(zhuǎn)換為人工蜂群算法尋找最優(yōu)解過(guò)程,通過(guò)人工蜂群算法調(diào)整訓(xùn)練參數(shù),使ANFIS訓(xùn)練達(dá)到更好效果。該方法被應(yīng)用于非線(xiàn)性系統(tǒng)辨識(shí)中,并且使ANFIS訓(xùn)練取得了良好效果。
1?自適應(yīng)神經(jīng)模糊推理系統(tǒng)
自適應(yīng)神經(jīng)模糊推理系統(tǒng)(ANFIS)是Jang[9]在1993年提出的。在復(fù)雜系統(tǒng)建模和控制方面,ANFIS效果相當(dāng)不錯(cuò),目前在許多方面已經(jīng)有了成功應(yīng)用,如函數(shù)擬合、控制系統(tǒng)辨識(shí)、模式識(shí)別、自適應(yīng)噪聲消除等。如謝苗等[10]介紹了一種基于改進(jìn)型ANFIS的礦用空壓機(jī)故障診斷系統(tǒng),蔣磊磊等[11]介紹了一種基于Sugeno模糊模型的ANFIS應(yīng)用于手勢(shì)識(shí)別中。
1.1?表示形式
在模糊系統(tǒng)中,模糊模型的表示主要有兩種:①模糊規(guī)則的后件是輸出量的某一模糊集合,稱(chēng)為模糊系統(tǒng)的標(biāo)準(zhǔn)模型,即Mamdani模型;②模糊規(guī)則的后件是輸入語(yǔ)言變量函數(shù),典型情況是輸入變量的線(xiàn)性組合,稱(chēng)為模糊系統(tǒng)的Takagi?Sugeno模型。與Mamdani型相比,Takagi?Sugeno型模糊推理具有利于分析、計(jì)算簡(jiǎn)單的優(yōu)點(diǎn),且容易與PID控制方法以及自適應(yīng)方法結(jié)合,從而實(shí)現(xiàn)具有優(yōu)化與自適應(yīng)能力的控制器或模糊建模工具。Takagi?Sugeno模糊模型主要由兩部分組成:前提部分和結(jié)論部分,兩部分彼此之間通過(guò)模糊規(guī)則相互聯(lián)系。ANFIS的訓(xùn)練和更新主要針對(duì)該兩部分。ANFIS結(jié)構(gòu)由5部分組成,假設(shè)所考慮的模糊推理系統(tǒng)有2個(gè)輸入和1個(gè)輸出,則模糊規(guī)則形式為:
規(guī)則1:如?果x是A?1并且y是A?2,那么f?1=p?ix+q?1y+r?1。
規(guī)則2:如果x是A?2并且y是B?2,那么f?2=p?2x+q?2y+r?2?。
1.2?模型結(jié)構(gòu)
該模型的等效結(jié)構(gòu)如圖1所示。
第一層為模糊化層,它為每一個(gè)輸入產(chǎn)生隸屬度函數(shù)。隸屬度函數(shù)可以是高斯函數(shù)或三角形函數(shù)等類(lèi)型,如果為高斯函數(shù),隸屬度函數(shù)的兩個(gè)可調(diào)參數(shù)分別為MF的中心c和寬度σ。該層的可調(diào)參數(shù)被稱(chēng)為前提參數(shù)。高斯函數(shù)公式如式(1)所示。
第二層為規(guī)則層,可以取任意的模糊T范式函數(shù),一般情況下取所有輸入信號(hào)的乘積。具體如式(2)所示。
第三層為歸一化層。具體如式(3)所示。
第四層為去模糊化層,每一個(gè)節(jié)點(diǎn)是一個(gè)有節(jié)點(diǎn)函數(shù)的自適應(yīng)節(jié)點(diǎn),參數(shù)被稱(chēng)為結(jié)論參數(shù)。具體如式(4)所示。
第五層為輸出層,計(jì)算所有輸入信號(hào)的和。具體如式(5)所示。
總輸出=∑w?if?i(5)
2?人工蜂群算法
2.1?算法簡(jiǎn)介
近年來(lái),隨著群體智能的發(fā)展,遺傳算法、粒子群算法等相關(guān)算法被廣泛用于解決各類(lèi)問(wèn)題,并進(jìn)入許多學(xué)者的研究領(lǐng)域。人工蜂群算法(Artificial Bee Colony Algorithm,ABC算法)是Karaboga[12]在2005年根據(jù)蜜蜂覓食行為提出的優(yōu)化算法,具有自適應(yīng)、自組織、自學(xué)習(xí)等特征,并且被應(yīng)用于函數(shù)優(yōu)化[13-16]、組合優(yōu)化、神經(jīng)網(wǎng)絡(luò)訓(xùn)練等多個(gè)領(lǐng)域。人工蜂群算法的提出和改進(jìn),為其進(jìn)一步發(fā)展和使用發(fā)揮了十分關(guān)鍵的作用。寧愛(ài)平等[17]利用隨機(jī)過(guò)程理論,給出ABC算法的Markov鏈模型定義等相關(guān)理論,并根據(jù)隨機(jī)算法的收斂準(zhǔn)則,驗(yàn)證了人工蜂群算法的全局收斂性。很多群體智能算法開(kāi)始提出時(shí),理論基礎(chǔ)薄弱,因此從理論上分析和證明群體智能算法的收斂性是至關(guān)重要的,也有利于更好地推進(jìn)算法改進(jìn)和后續(xù)進(jìn)一步提高性能。
自然界中的蜂群有雇傭蜂和非雇傭蜂兩種,雇傭蜂也被稱(chēng)為采蜜蜂,而非雇傭蜂可以分為偵察蜂和跟隨蜂。雇傭蜂和跟隨蜂的主要任務(wù)是開(kāi)采食物源,而偵察蜂的主要任務(wù)是尋找新的食物源。人工蜂群算法是根據(jù)自然界中不同蜂群的功能及其相互轉(zhuǎn)換關(guān)系設(shè)計(jì)的一種新型群體智能迭代算法。在蜂群算法中,采蜜蜂數(shù)量是群體總量的一半,另一半是觀察蜂。每一處食物源對(duì)應(yīng)一個(gè)采蜜蜂,即采蜜蜂與食物源的數(shù)量相等。
ABC算法中的每一個(gè)循環(huán)搜索過(guò)程都有以下3個(gè)步驟:①將采蜜蜂、觀察蜂和蜜源一一對(duì)應(yīng),并計(jì)算蜜源的豐富程度;②確定偵察蜂;③蜜蜂根據(jù)自身或者外界信息搜索蜜源。
種群參數(shù)有以下3個(gè):①蜜蜂總數(shù)N(一般定義采蜜蜂和觀察蜂的數(shù)量相等,即都為N/2);②最大迭代次數(shù)maxCycle(每次迭代中都有一次全局搜索和局部搜索);③蜜源停留最大限制搜索次數(shù)Limit(局部搜索Limit次,蜜源未更新,則采蜜蜂、觀察蜂轉(zhuǎn)化為偵察蜂)。
2.2?算法流程
(1)初始化。
(2)重復(fù)以下過(guò)程:①將采蜜蜂與蜜源一一對(duì)應(yīng),并且確定蜜源的花蜜量;②觀察蜂根據(jù)采蜜蜂所提供的信息選擇蜜源,同時(shí)確定蜜源的花蜜量;③確定偵察蜂,然后搜索新的蜜源;④記憶到目前為止最好的蜜源。
(3)判斷條件是否成立。
在初始化階段,食物源是根據(jù)每個(gè)給定邊界范圍的參數(shù)隨機(jī)產(chǎn)生的。偵察蜂搜索新蜜源的操作如式(6)所示。
其中,?k為不同于i的蜜源,j為隨機(jī)選擇的下標(biāo),?ij為[-1,1]之間的隨機(jī)數(shù),它控制著x?ij鄰域內(nèi)蜜源的隨機(jī)位置,稱(chēng)之為人工蜂群算法的搜索方程。在算法的每一次迭代過(guò)程中,每一個(gè)采蜜蜂通過(guò)式(6)選?出與目前食物源位置最近的食物源,并且從原蜜源位置產(chǎn)生一個(gè)新的候選位置。
在某只采蜜蜂的位置周?chē)?,?dāng)搜索次數(shù)達(dá)到一定閾值Limit且還沒(méi)找到更好的位置時(shí),就會(huì)重新隨機(jī)初始化采蜜蜂位置。隨機(jī)初始化公式如式(7)所示。
式(7)中,?i=1…SN,j=1…PN。SN是食物源的數(shù)量,PN是優(yōu)?化參數(shù)的數(shù)量。
觀察蜂主要根據(jù)適應(yīng)度函數(shù)值的大小選擇蜜源,適應(yīng)度函數(shù)如式(8)所示。
當(dāng)前蜜源位置經(jīng)過(guò)采蜜蜂和觀察蜂多次循環(huán)搜索之后,若沒(méi)有提高效率,就會(huì)被蜜蜂放棄。此時(shí),采蜜蜂就會(huì)轉(zhuǎn)換為偵察蜂,然后隨機(jī)搜索一個(gè)新的蜜源替換原來(lái)的蜜源。ABC算法主要包含4個(gè)過(guò)程:①觀察蜂根據(jù)一定的選擇概率選擇蜜源,稱(chēng)為全局選擇過(guò)程;②采蜜蜂與觀察蜂結(jié)合局部信息在鄰域搜索并產(chǎn)生候選位置,稱(chēng)為局部選擇過(guò)程;③所有人工蜂對(duì)于新舊兩種蜜源進(jìn)行對(duì)比,保存優(yōu)質(zhì)蜜源;④偵察蜂搜索新蜜源,稱(chēng)為隨機(jī)選擇過(guò)程。
3?基于ABC算法的ANFIS
ANFIS有兩種類(lèi)型參數(shù):前提參數(shù)和結(jié)論參數(shù)。其中,前提參數(shù)屬于隸屬度函數(shù)參數(shù),其總參數(shù)是所有隸屬度函數(shù)的參數(shù)總和;結(jié)論參數(shù)用的是ANFIS的解模糊化層參數(shù)。
在ABC算法中,蜜源位置就是優(yōu)化問(wèn)題的一個(gè)可能解,每個(gè)解是一個(gè)D維向量,D是優(yōu)化問(wèn)題參數(shù)的個(gè)數(shù)。也就是說(shuō),每一個(gè)食物源的變量個(gè)數(shù)依賴(lài)于每一個(gè)輸入輸出的隸屬度函數(shù)參數(shù)個(gè)數(shù)。其中,雙邊高斯型隸屬度函數(shù)用于輸入層,線(xiàn)性隸屬度函數(shù)用于輸出層。當(dāng)使用ABC算法對(duì)這些參數(shù)進(jìn)行訓(xùn)練時(shí),采用均方根誤差作為訓(xùn)練效果的評(píng)價(jià)指標(biāo)?;贏BC算法的ANFIS要求其結(jié)構(gòu)的均方根誤差最小。均方根誤差計(jì)算如式(9)所示。
其中,?y?1i是模糊模型的預(yù)測(cè)值,y?2i是觀測(cè)值,s是輸?入訓(xùn)練數(shù)據(jù)對(duì)數(shù)?;贏BC算法的ANFIS模型如圖2所示。
4?實(shí)驗(yàn)仿真及結(jié)果
在ABC算法控制參數(shù)的選取上:種群規(guī)模大小為20,食物源數(shù)量等于種群規(guī)模大小的一半,也就是10。Limit設(shè)置為100,也就是說(shuō),若某個(gè)雇傭蜂采蜜的食物源位置經(jīng)過(guò)100次迭代后都沒(méi)有進(jìn)行更新獲得改進(jìn),即該花蜜處的食物源花蜜數(shù)量都未獲得改善,此時(shí)雇傭蜂放棄當(dāng)前食物源,并且變成偵察蜂重新搜索新的食物源。將最大循環(huán)迭代次數(shù)設(shè)置為2 000。在本文中,采用單輸入單輸出訓(xùn)練數(shù)據(jù)集進(jìn)行ANFIS?ABC算法的數(shù)據(jù)處理及仿真,并且驗(yàn)證算法的可行性。訓(xùn)練數(shù)據(jù)集由式(10)定義,定義輸入變量?x?的取值范圍為[-1,1],并且隨機(jī)產(chǎn)生50組訓(xùn)練數(shù)據(jù)集和50組檢驗(yàn)數(shù)據(jù)集。
ABC算法應(yīng)用于5個(gè)隸屬度函數(shù),5個(gè)隸屬度函數(shù)都采用雙邊高斯型隸屬度函數(shù)。經(jīng)過(guò)ANFIS?ABC算法進(jìn)行2 000次迭代訓(xùn)練之后,均方根誤差(RMSE)的變化趨勢(shì)如圖3所示,訓(xùn)練數(shù)據(jù)和檢驗(yàn)數(shù)據(jù)在輸入空間上進(jìn)行均勻采樣的輸出曲線(xiàn)如圖4所示。
本文利用ANFIS?ABC算法對(duì)輸入輸出數(shù)據(jù)集進(jìn)行訓(xùn)練,以RMSE作為評(píng)價(jià)標(biāo)準(zhǔn),ANFIS?ABC把訓(xùn)練過(guò)程轉(zhuǎn)化為尋找最優(yōu)解的過(guò)程。使用ANFIS?ABC的RMSE訓(xùn)練結(jié)果為0.000 879,而使用ANFIS的RMSE訓(xùn)練結(jié)果為0.001 786。使用ANFIS?ABC的RMSE預(yù)測(cè)結(jié)果為0.000 853,而ANFIS的RMSE預(yù)測(cè)結(jié)果為0.001 705。均方根誤差顯著減小,表明ABC算法在對(duì)ANFIS優(yōu)化中的擬合能力和預(yù)測(cè)能力有顯著提高,而加入ABC算法之后ANFIS在時(shí)間效率上低于ANFIS,如何提高效率是算法改進(jìn)的重點(diǎn)。
5?結(jié)語(yǔ)
本文將人工蜂群算法用于自適應(yīng)神經(jīng)模糊推理系統(tǒng)參數(shù)的訓(xùn)練和更新。結(jié)合模糊推理系統(tǒng)及神經(jīng)網(wǎng)絡(luò)各自屬性的自適應(yīng)神經(jīng)模糊推理系統(tǒng)在智能預(yù)測(cè)以及參數(shù)優(yōu)化等方面有著廣泛應(yīng)用。為了解決模糊規(guī)則提取和隸屬函數(shù)學(xué)習(xí)難題,引入人工蜂群算法在優(yōu)化以及訓(xùn)練方面的優(yōu)點(diǎn)。通過(guò)基礎(chǔ)理論分析以及仿真實(shí)現(xiàn)驗(yàn)證,成功地將人工蜂群算法用于自適應(yīng)神經(jīng)模糊推理系統(tǒng),并且取得了良好效果,充分證明了ANFIS?ABC算法的可行性及有效性。
參考文獻(xiàn):
[1]
SHOOREHDELI M A, TESHNEHLABM,SEDIGH AK. Training ANFIS as an identifier with intelligent hybrid stable learning algorithm based on particle swarm optimization and extended Kalman filter [J]. Fuzzy Sets and Systems, 2009,160:922?948.
[2]?CHATTERJEE A,WATANABE K. An optimized Takagi?Sugeno type neuro?fuzzy system for modeling robot manipulators [J]. Neural Computing & Applications, 2006,15(1):55?61.
[3]?CHEN M Y. A hybrid ANFIS model for business failure predictionutilizing particle swarm optimization and subtractive clustering [J]. Information Sciences, 2013(220):180?195.
[4]?TURKI M, BOUZAIDA S, SAKLY A, et al. Adaptive control of nonlinear system using neuro?fuzzy learning by PSO algorithm[C]. 2012 16th IEEE Mediterranean, 2012:519?523.
[5]?ZANGENCH A Z, MANSOURI M, TESHNEHLAB M, et al. Training ANFIS system with DE algorithm [C]. IEEE 2011 Fourth International Workshop, 2011:308?314.
[6]?CATALAO J P S, POUSINHO H M I, MENDES V M F. Hybrid wavelet?PSO?ANFIS approach for short?term electricity prices forecasting [J]. IEEE Transactions on Power Systems, 2011,26(1):137?144.
[7]?GUNASEKARAN M, RAMASWAMI K S. A fusion model integrating ANFIS and artificial immune algorithm for forecasting indian stock market [J]. Journal of Applied Sciences, 2011,11:3028?3033.
[8]?LIN C J, HONG S J. The design of neuro?fuzzy networks using particle swarm optimization and recursive singular value decomposition[J]. Neurocomputing, 2007,71(1):297?310.
[9]?JANG JSR. ANFIS adaptive?network?based fuzzy inference system[J]. IEEE Trans on Smc, 1993,23(3):665?685.
[10]?謝苗,劉治翔,毛君.基本改進(jìn)型ANFIS的礦用空壓機(jī)故障診斷系統(tǒng)[J].電子測(cè)量與儀器學(xué)報(bào),2015(4):500?507.
[11]?蔣磊磊,秦麗娟,李武舉.基于Sugeno模糊模型的ANFIS在手勢(shì)識(shí)別中的應(yīng)用[J].微型機(jī)與應(yīng)用,2016(24):50?53.
[12]?KARABOGA D. An idea based on honey bee swarm for numerical optimization [R]. Kayseri, Turkey: Erciyes University, 2005.
[13]?KARABOGA D, BASTURK B. A powerful and efficient algorithm for numerical function optimization: artificial bee colony (ABC) algorithm [J]. Journal of Global Optimization, 2007,39(3):459?471.
[14]?KARABOGA D, BASTURK B. A comparative study of artificial bee colony algorithm [J]. Applied Mathematics and Computation, 2009,214(1):108?132.
[15]?KARABOGA D, AKAY B. Artificial bee colony (ABC), harmony search and bees algorithms on numerical optimization [C]. Proc of Innovative Production Machines and System Virtual Conference,2009.
[16]?KARABOGA D, BASTURK B. On the performance of artificial bee colony (ABC) algorithm [J]. Applied Soft Computing, 2010,8(1):687?697.
[17]?寧愛(ài)平,張雪英.人工蜂群算法的收斂性分析[J].控制與決策,2013(10):1554?1558.