平良川,孫自強(qiáng)
(華東理工大學(xué) 化工過(guò)程先進(jìn)控制和優(yōu)化技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,上海 200237)
教學(xué)優(yōu)化算法(teaching and learning based optimization,TLBO)存在易陷入局部最優(yōu)、后期搜索停滯等不足[1-5]。為此,許多學(xué)者對(duì)其進(jìn)行了研究與改進(jìn)。Anouar等[6]將混沌理論引入到TLBO算法中,利用混沌優(yōu)化來(lái)加強(qiáng)算法跳出局部最優(yōu)的能力;于坤杰等[7]提出一種基于反饋的精英教學(xué)優(yōu)化算法(FETLBO),算法在“學(xué)”階段后加入反饋階段,增加了學(xué)員的學(xué)習(xí)方式;高立群等[8]將差分進(jìn)化算法的交叉操作引入到TLBO算法的“學(xué)”階段,提出了帶交叉操作的教學(xué)優(yōu)化算法(C-TLBO)。
本文從TLBO算法的基本迭代公式出發(fā),對(duì)算法的收斂過(guò)程進(jìn)行分析,論證了TLBO算法在收斂后期存在的“原點(diǎn)偏好”缺陷,并提出改進(jìn)方案。針對(duì)TLBO算法存在的“早熟”收斂現(xiàn)象,采用分科學(xué)習(xí)和學(xué)習(xí)閾值的方法來(lái)提高迭代前中期學(xué)員的多樣性。由此提出一種改進(jìn)教學(xué)優(yōu)化算法(modified TLBO,MTLBO),并通過(guò)4個(gè)測(cè)試函數(shù)來(lái)驗(yàn)證改進(jìn)算法的有效性。最后,應(yīng)用MTLBO算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)參數(shù),建立基于MTLBO算法的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型(MTLBO-BP),對(duì)比分析結(jié)果表明,本文提出的改進(jìn)預(yù)測(cè)模型具有更好的預(yù)測(cè)效果。
在TLBO算法中,每個(gè)學(xué)員相當(dāng)于優(yōu)化問(wèn)題的一個(gè)解,學(xué)員的某門(mén)功課看作為優(yōu)化問(wèn)題的一個(gè)變量。適應(yīng)度最好的學(xué)員選為教師。基本TLBO算法分為“教”階段和“學(xué)”階段。
(1)“教”階段
(1)
difference=rk×(Xteacher-TFk×Xmean)
(2)
(2)“學(xué)”階段
“學(xué)”的過(guò)程如下(取較小函數(shù)值為更好適應(yīng)度)
(3)
圖1 算法收斂階段的“教”過(guò)程
當(dāng)TFk=2時(shí),算法具有了全局搜索能力,可以在學(xué)員收斂區(qū)域S之外的空間Snew探索,此時(shí)學(xué)員的更新公式如下
(4)
difference=rk×(Xteacher-2×Xmean)
(5)
difference≈-rk×Xmean
(6)
(7)
2.1.1 消除“教”階段的“原點(diǎn)偏好”特性
對(duì)算法的“教”階段進(jìn)行改進(jìn),提出自適應(yīng)基準(zhǔn)。學(xué)員學(xué)習(xí)的新知識(shí)為
difference=rk×(Xteacher-(TFk×
(Xmean-Xdatum)+Xdatum))
(8)
其中,Xdatum=Xj,表示隨機(jī)選取一名學(xué)員代替原點(diǎn)作為基準(zhǔn)。由式(8)可見(jiàn),在“教”階段,TFk=1時(shí),式(8)和式(2)相同,學(xué)員向教師學(xué)習(xí);TFk=2時(shí),學(xué)員探索的基準(zhǔn)由原來(lái)固定的原點(diǎn)變?yōu)殡S機(jī)選取的學(xué)員。在算法的前中期,學(xué)員的多樣性有所提高。隨著算法收斂,difference→0,學(xué)員能夠從全局探索逐漸轉(zhuǎn)為局部開(kāi)發(fā),提高了算法后期的收斂性,從而提高算法的求解精度。
2.1.2 “學(xué)”階段的改進(jìn)
(9)
(10)
其中,r為(0,1)上的隨機(jī)數(shù)??梢?jiàn),“學(xué)”階段有兩點(diǎn)改進(jìn):
(1)學(xué)習(xí)步長(zhǎng)α=(r1,r2,…,rD),即針對(duì)不同的科目采用不同的學(xué)習(xí)步長(zhǎng),增加了學(xué)員學(xué)習(xí)方向的多樣性。
(2)當(dāng)rand<θ時(shí),學(xué)員根據(jù)自身的經(jīng)驗(yàn)進(jìn)行學(xué)習(xí);當(dāng)rand>θ時(shí),學(xué)員向適應(yīng)度更好的學(xué)員學(xué)習(xí)。θ為(0,1)范圍內(nèi)隨迭代次數(shù)遞減的函數(shù)。隨著迭代次數(shù)的增大,學(xué)員逐漸由根據(jù)自己的經(jīng)驗(yàn)學(xué)習(xí)轉(zhuǎn)為向適應(yīng)度更好的學(xué)員學(xué)習(xí),算法逐步由全局探索轉(zhuǎn)為局部開(kāi)發(fā)。
改進(jìn)教學(xué)優(yōu)化算法具體算法步驟如下:
(1)根據(jù)具體優(yōu)化問(wèn)題設(shè)定學(xué)員個(gè)數(shù),學(xué)習(xí)維度,學(xué)員屬性范圍和學(xué)習(xí)經(jīng)驗(yàn),并初始化學(xué)員。
(2)計(jì)算各學(xué)員的適應(yīng)度,選取適應(yīng)度最好的學(xué)員作為教師。
(3)隨機(jī)選取一名學(xué)員作為“教”階段的基準(zhǔn)。
(4)“教”階段,教師根據(jù)式(1)、式(8)進(jìn)行教學(xué),提高班級(jí)學(xué)員的平均水平,并采用基本教學(xué)優(yōu)化算法的方式更新學(xué)員。
(5)根據(jù)迭代次數(shù)計(jì)算學(xué)習(xí)閾值。
(6)“學(xué)”階段,如式(9)所示,學(xué)員之間相互學(xué)習(xí),或者根據(jù)自身的經(jīng)驗(yàn)學(xué)習(xí)。
(7)如果學(xué)員取得更好的適應(yīng)度,則更新自身位置,并根據(jù)式(10)更新自身的學(xué)習(xí)經(jīng)驗(yàn)。
(8)重復(fù)步驟(2)至步驟(7),直到滿(mǎn)足終止條件。
算法流程圖如圖2所示。
圖2 MTLBO算法流程
選取4個(gè)存在眾多局部最優(yōu)的測(cè)試函數(shù)來(lái)驗(yàn)證本文提出的MTLBO算法的有效性。為了驗(yàn)證基本TLBO算法的“原點(diǎn)偏好”特性,本文對(duì)標(biāo)準(zhǔn)測(cè)試函數(shù)進(jìn)行改進(jìn),在標(biāo)準(zhǔn)測(cè)試函數(shù)中引入?yún)⒆兞縉,函數(shù)中的變量xi改為xi-N,變量范圍也做相應(yīng)的調(diào)整。改進(jìn)測(cè)試函數(shù)見(jiàn)表1。
與經(jīng)典測(cè)試函數(shù)相比,改進(jìn)測(cè)試函數(shù)的搜索空間及最值點(diǎn)沿坐標(biāo)軸正方向平移N個(gè)單位,搜索空間的形狀則保持不變。
將TLBO算法、FETLBO算法[7]、C-TLBO算法[8]以及MTLBO算法進(jìn)行比較。4種算法使用相同的測(cè)試參數(shù),設(shè)置如下:班級(jí)學(xué)員數(shù)NP=20,測(cè)試函數(shù)維數(shù)D=20,最大迭代次數(shù)kmax=1000,參變量N分別取0、 0.2xbound、 0.4xbound、 0.6xbound、 0.8xbound及xbound,其中xbound為標(biāo)準(zhǔn)測(cè)試函數(shù)的變量邊界。每種情況獨(dú)立運(yùn)行30次,測(cè)試結(jié)果見(jiàn)表2至表5。
從表2至表5可知,當(dāng)N=0時(shí),4種測(cè)試函數(shù)的最值點(diǎn)都位于原點(diǎn)。由于存在“原點(diǎn)偏好”特性,TLBO、FETLBO、C-TLBO都達(dá)到了全局最優(yōu)。當(dāng)參變量N增大時(shí),測(cè)試函數(shù)的最優(yōu)點(diǎn)逐漸遠(yuǎn)離原點(diǎn),上述3種算法求解的平均值和標(biāo)準(zhǔn)差都有所增大,尋優(yōu)效果及穩(wěn)定性出現(xiàn)了下降。MTLBO算法通過(guò)改進(jìn),消除了“原點(diǎn)偏好”特性,同時(shí)在迭代前中期保留了學(xué)員的多樣性,算法的求解精度與參變量N無(wú)相關(guān)性。當(dāng)測(cè)試函數(shù)的最值點(diǎn)偏離原點(diǎn)時(shí),MTLBO算法仍然具有較高的求解精度和穩(wěn)定性。由于實(shí)際優(yōu)化問(wèn)題的最值點(diǎn)往往在一定范圍內(nèi)隨機(jī)分布,本文提出的MTLBO算法更具實(shí)際應(yīng)用價(jià)值。
表1 改進(jìn)測(cè)試函數(shù)
表2 Schwefel*函數(shù)測(cè)試結(jié)果對(duì)比
表3 Rastrigin*函數(shù)測(cè)試結(jié)果對(duì)比
表4 Ackley*函數(shù)測(cè)試結(jié)果對(duì)比
表5 Griewank*函數(shù)測(cè)試結(jié)果對(duì)比
當(dāng)N=0.5xbound時(shí),4種算法的收斂曲線(xiàn)如圖3所示。
當(dāng)N=0.5xbound時(shí),4種測(cè)試函數(shù)的最值點(diǎn)均不在原點(diǎn)。由圖3可見(jiàn),TLBO算法存在迭代前期搜索停滯、算法求解精度低的缺陷。FETLBO、C-TLBO算法通過(guò)改進(jìn),算法的全局搜索能力有所增強(qiáng),但在迭代第600步左右,算法陷入局部最優(yōu)。MTLBO算法消除了“原點(diǎn)偏好”特性,算法在迭代期間一直具有尋優(yōu)能力,且在收斂速度和求解精度方面明顯優(yōu)于其它3種算法。
圖3 TLBO、FETLBO、C-TLBO和MTLBO的收斂曲線(xiàn)
針對(duì)三層BP神經(jīng)網(wǎng)絡(luò)模型對(duì)MTLBO算法中的學(xué)員進(jìn)行編碼。學(xué)員Xi=(ω1,B1,ω2,B2),其中ω1為輸入層至隱含層的權(quán)值向量,B1為隱含層的閾值向量,ω2為隱含層至輸出層的權(quán)值向量,B2為輸出層的閾值向量。MTLBO算法的優(yōu)化目標(biāo)函數(shù)為網(wǎng)絡(luò)輸出的均方誤差,均方誤差較小為更好適應(yīng)度。算法尋優(yōu)完成后,取適應(yīng)度最好的學(xué)員,對(duì)其進(jìn)行解碼,并用所得的最優(yōu)權(quán)值、閾值建立BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型。
為了對(duì)比分析MTLBO-BP預(yù)測(cè)模型的有效性,本文分別建立標(biāo)準(zhǔn)BP模型以及PSO、TLBO、FETLBO、 MTLBO優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)模型。選取UCI數(shù)據(jù)集中4組典型真實(shí)測(cè)試數(shù)據(jù)對(duì)上述5種預(yù)測(cè)模型進(jìn)行測(cè)試,數(shù)據(jù)集選取見(jiàn)表6。
表6 UCI測(cè)試數(shù)據(jù)集
網(wǎng)絡(luò)的隱含層神經(jīng)元傳遞函數(shù)采用Tansig函數(shù),輸出層神經(jīng)元傳遞函數(shù)為Purelin函數(shù)。PSO、TLBO、FETLBO和MTLBO設(shè)置相同的參數(shù),最大迭代次數(shù)為500,種群初始化范圍為[-1,1]。隱含層節(jié)點(diǎn)數(shù)m,個(gè)體維度D以及種群數(shù)量NP的設(shè)置見(jiàn)表7。
表7 參數(shù)設(shè)置
針對(duì)每個(gè)數(shù)據(jù)集,5種預(yù)測(cè)模型分別獨(dú)立運(yùn)行10次,預(yù)測(cè)平均相對(duì)百分比誤差和平均訓(xùn)練時(shí)間分別見(jiàn)表8、表9。
表8 預(yù)測(cè)平均相對(duì)百分比誤差/%
表9 平均訓(xùn)練時(shí)間/s
針對(duì)實(shí)際數(shù)據(jù)集時(shí),BP神經(jīng)網(wǎng)絡(luò)的最優(yōu)權(quán)值、閾值往往不在原點(diǎn)。由表8可見(jiàn),由于MTLBO消除了基本TLBO算法的“原點(diǎn)偏好”特性,相比于TLBO-BP模型,MTLBO-BP模型的預(yù)測(cè)平均相對(duì)百分比誤差在各數(shù)據(jù)集上分別下降了0.88%、2.04%、2.67%和2.89%,且在4個(gè)數(shù)據(jù)集上都取得了最高的預(yù)測(cè)準(zhǔn)確性。由表9可見(jiàn),與TLBO相比,由于FETLBO增加了反饋階段,F(xiàn)ETLBO-BP模型在各個(gè)數(shù)據(jù)集上的訓(xùn)練時(shí)間分別增加了23.7%,29.4%,25.7%,28.9%,而MTLBO-BP模型在各數(shù)據(jù)集的訓(xùn)練時(shí)間僅分別增加了1.62%,1.10%,2.49%,1.60%。對(duì)比可見(jiàn),MTLBO-BP模型具有更好的預(yù)測(cè)效果。
本文從原理分析了TLBO算法存在的“原點(diǎn)偏好”特性,并提出一種改進(jìn)的教學(xué)優(yōu)化算法。該算法在“教”階段引進(jìn)自適應(yīng)基準(zhǔn),消除了“原點(diǎn)偏好”特性,在“學(xué)”階段引進(jìn)分科學(xué)習(xí)、學(xué)習(xí)閾值,增強(qiáng)了算法的全局搜索能力。在4種改進(jìn)測(cè)試函數(shù)上的實(shí)驗(yàn)結(jié)果表明,MTLBO算法在求解最值點(diǎn)遠(yuǎn)離原點(diǎn)的問(wèn)題時(shí),仍然具有較好的尋優(yōu)能力。將MTLBO應(yīng)用到BP神經(jīng)網(wǎng)絡(luò)的權(quán)值、閾值優(yōu)化中,建立基于MTLBO的BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型,針對(duì)4組UCI經(jīng)典測(cè)試數(shù)據(jù),在預(yù)測(cè)精度和訓(xùn)練時(shí)間方面,將MTLBO-BP模型與BP、PSO-BP、TLBO-BP、FETLBO-BP模型進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果表明,MTLBO-BP模型在增加較短訓(xùn)練時(shí)間的情況下,明顯提高了預(yù)測(cè)準(zhǔn)確性??梢?jiàn)MTLBO算法在BP神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化上具有良好的效果。