?

混沌自適應非洲禿鷲優化算法訓練多層感知器

2024-02-22 08:00申晉祥鮑美英張景安周建慧
計算機工程與設計 2024年2期
關鍵詞:禿鷲集上勘探

申晉祥,鮑美英,張景安,周建慧

(1.山西大同大學 計算機與網絡工程學院,山西 大同 037009;2.山西大同大學 網絡信息中心,山西 大同 037009)

0 引 言

神經網絡是目前的研究熱點,可以處理科學和工程領域的許多問題。多層感知器(multi-layer perceptron,MLP)是前饋神經網絡的一種,目前應用廣泛,在許多實際問題,如數據分類、預測和函數近似等方面都有應用。早期訓練MLP參數的算法具有收斂速度慢和局部極值停滯的缺陷,研究發現啟發式算法在訓練MLP的參數時,不易陷入局部極小值且收斂速度快。目前,已經有許多啟發式算法[1-13]用于訓練MLP。

本文將混沌映射和自適應權重系數引入非洲禿鷲優化算法,提出改進算法IAVOA并用于對MLP的連接權重和偏差進行訓練,訓練好的MLP用于4個數據集XOR、Baloon、Cancer和Heart的分類。為驗證IAVOA算法的有效性,與其它6種元啟發算法訓練MLP進行了比較。

1 非洲禿鷲優化算法

非洲禿鷲優化算法(African vultures optimization algorithm,AVOA)[14]是2021年提出的群智能優化算法,AVOA的數學模型如下:

(1)禿鷲種群分組

(1)

(2)

(2)禿鷲的飽食率

AVOA算法根據禿鷲的飽食率F進行勘探和開發的轉化,數學公式如式(3)和式(4)

gt=ht×(sinω(πt/2T)+cos(πt/2T)-1)

(3)

(4)

其中,rd1、z和h分別是隨機數,ω是開發概率,設置為2.5。T是最大迭代次數,t是當前迭代次數。

(3)禿鷲的勘探階段

當 |F| 大于等于1時,禿鷲進行勘探,如式(5),勘探階段有兩種勘探方式

(5)

(6)

其中,P是禿鷲的位置,C是隨機移動位置,C∈[0,2] 區間,c1是勘探概率隨機數,范圍[0,1],rd2、rd3、rdc1是隨機數,ub和lb分別是搜索空間的上下界。

(4)禿鷲的開發階段

當 |F| 小于1,禿鷲進行開發,分為兩個階段,每個階段使用兩種不同的策略。開發中期,由c2確定禿鷲執行攻擊策略或盤旋飛行策略,公式如式(7)。開發后期,由c3確定禿鷲執行攻擊策略或聚集策略,公式如式(10)

(7)

(8)

(9)

(10)

(11)

AVOA算法開發階段增加了勘探功能,勘探階段也具有開發功能,收斂速度快且不易陷入局部最優[15]。

2 改進的禿鷲優化算法

AVOA算法具有優點,該算法引入的隨機數較多,根據不同的隨機數區分勘探方式,以及選擇不同的開發階段。但AVOA也具有缺點,算法隨機初始化種群,導致種群多樣性不足,對收斂速度和全局最優解產生不利影響。AVOA有明確的勘探和開發階段,開發階段分為開發中期和開發后期兩個階段,通過隨機數劃分禿鷲的兩種行為,聚集行為和攻擊行為。聚集行為中認為最優禿鷲和次優禿鷲對其它禿鷲的引導作用是一樣的,但這樣無法平衡算法的勘探和開發能力。

針對AVOA的缺陷,本文提出改進的禿鷲優化算法(improved African vultures optimization algorithm,IAVOA),從兩個方面對AVOA算法進行改進:①為了使IAVOA在優化階段有更強的全局勘探能力,種群初始化階段引入Logistic混沌映射;②設計了自適應系數,調整最優禿鷲和次優禿鷲對普通禿鷲的影響,保證勘探和開發的平衡。

2.1 Logistic混沌映射初始化種群

AVOA隨機初始化種群,混沌映射生成的種群比隨機生成的種群多樣性更好,解均勻分布在空間中的各個位置,可以提升勘探能力,避免陷入局部最優解且收斂精度高。Logistic混沌映射產生的混沌序列位于[0,1]區間內,該混沌序列更均勻,公式如式(12)

xn+1=4xn(1-xn)xn∈(0,1),n=1,2,…

(12)

把上式生成的混沌序列轉化到種群解空間,禿鷲的初始位置由式(13)計算

Xi=lb+(ub-lb)xn

(13)

其中,ub和lb是種群解空間的上下界。

Logistic混沌映射和隨機初始化種群分布如圖1所示。

圖1 隨機初始化和混沌初始化對比

對比圖1(a)和圖1(b),可以發現在[0,1]區間,Logistic混沌映射生成的數比隨機生成的數分布更均勻,遍歷性更好。

2.2 自適應權重系數

禿鷲的位置更新主要受到最優禿鷲和次優禿鷲的位置、禿鷲飽食率的影響。 |F| 的值越大,越有利于算法的勘探,值越小,越有利于算法的開發。 |F|≥1時,禿鷲處于勘探階段,|F|<1時,處于開發階段,開發以0.5為界限分為開發中期和后期兩個階段,[0.5,1)之間是開發中期階段,開發中期根據隨機數分為聚集行為和盤旋飛行行為,式(7)描述這兩種行為;[0,0.5)是開發后期,根據概率隨機數分為聚集行為和攻擊行為,禿鷲位置更新采用式(10),在開發后期的聚集行為中,認為最優禿鷲和次優禿鷲對其它禿鷲的影響是一樣的,然而,在開發后期,為了快速并準確收斂到最優解,最優禿鷲和次優禿鷲對普通禿鷲位置的影響效果是不一樣的,應該區別對待,這里,對開發后期禿鷲位置的更新進行改進,設置兩個自適應權重系數,分別控制最優禿鷲和次優禿鷲,隨著迭代的增加,最優禿鷲的引導作用逐漸增強,而次優禿鷲的引導作用逐漸減弱,禿鷲盡快向最優解收斂,提高算法收斂速度,增強算法局部開發的能力,改進公式如式(14)

(14)

ω1=2×e-[2×(T-t)/T]

(15)

ω2=2×e-[2×t/T]

(16)

其中,ω1和ω2分別是最優禿鷲和次優禿鷲的自適應權重系數,變化情況如圖2所示,t是當前迭代次數,T是最大迭代次數。

圖2 自適應權重系數曲線

2.3 IAVOA算法實現

增加Logistic混沌映射和自適應權重系數,IAVOA算法步驟如下:

步驟1 初始化操作。設置算法初始參數,種群規模N, 搜索空間維度D, 最大迭代次數T, 搜索空間上界ub和下界lb等;使用Logistic混沌映射初始化每只禿鷲的位置Pi(i=1,2,…,N)。

步驟8 根據搜索空間的上下界ub和lb修正越界的禿鷲的位置。

步驟9 若迭代終止條件不滿足,則跳轉到步驟2。

步驟10 輸出最優禿鷲。

3 IAVOA訓練MLP

通過元啟發式算法訓練MLP有3種方法:①MLP的結構固定,通過訓練算法尋找MLP的最優權重和偏差的組合,使用最優參數組合的MLP的總體誤差最??;②使用啟發式算法調整梯度學習算法的參數,如動量和學習速度;③尋找MLP的最優結構??梢愿淖兩窠浽g的連接、隱藏層的數量和隱藏層中的節點數,最優結構通過訓練算法找出。

本文采用第一種方法訓練MLP,結構固定,通過IAVOA算法訓練MLP的權重和偏差,找出參數的最優值,提高MLP的精度。首先要對權重和偏差進行編碼,采用向量編碼,種群個體是一個向量,表示MLP的所有權重和偏差。向量編碼方式編碼比較容易,但解碼復雜。以圖3為例,MLP的結構為4-9-3,其中輸入層節點為4個,隱藏層節點為9個,輸出層節點為3個,該MLP的向量編碼方案如下。

圖3 多層感知器(4-9-3)

式(17)是權重和偏差的向量編碼

ω13,16,θ1,θ2,…,θ12}

(17)

ωij表示第i個節點到第j個節點的連接權重,θj是節點的偏差。

同樣以結構為4-9-3的MLP為例,給出向量編碼方式的解碼過程,偽代碼如下。

//初始化設置。初始化隱藏層和輸出層的向量h和o

//隱藏層節點數Hn,輸出層節點數On,k←On

//激活函數S(x)

(1)fori←1toHndo

(2)h(i)←S(x1*ω(i)+x2*ω(Hn+i)+x3*ω(2*Hn+i)+x4*ω(3*Hn+i)+θ(i));

(3)fori←1toOndo

(4)k←k+1;

(5)forj←1toOndo

(6)o(i)←o(i)+(h(j)*ω(k*Hn+j));

(7)fori←1toOndo

(8)o(i)←S(o(i)+θ(Hn+i));

其中,xi是輸入節點,θ(i) 是節點的偏差,ω(i) 是節點之間的連接權重。

IAVOA訓練MLP的適應度函數如式(18)所示

最小值:

F(Vul)=Average(MSE)

(18)

(19)

IAVOA訓練MLP的流程如圖4所示。

圖4 IAVOA算法訓練多層感知器

4 結果和討論

為了研究IAVOA算法的性能,本文采用UCI數據集合中的4個分類數據集異或(XOR)、氣球(Baloon)、心臟(Heart)和癌癥(Cancer)數據集來測試IAVOA算法的改進效果。

4.1 實驗設置和數據集

IAVOA算法與6種啟發式算法進行比較,其中包括GSA、BBO、DE、ACO、SSA和AVOA。比較算法所采用的參數均采用原算法的默認值。GSA中精英檢查為1,代理之間的距離指數為1;ACO中初始信息素為1E-06,探索常數是1,信息素更新常數是20,局部信息素衰減率0.5,全局信息素衰減率0.9,信息素敏感度是1;DE中縮放因子下界0.2,上界0.8,交叉概率0.8;BBO中突變概率0.005,遷移概率0~1,步長是2,最大遷出率和遷入率均為1。所有算法種群大小設置為50,最大迭代次數設置為500。

表1中給出采用的分類數據集的信息,包含數據名稱、屬性(屬性個數作為MLP的輸入個數),訓練樣本和測試樣本,數據集均為二分類數據,表中也給出了MLP的結構,輸入層-隱藏層-輸出層。MLP結構中隱藏節點h的數量通過式(20)計算得出,n是輸入節點的數量隨著MLP的規模越來越大,它的權重和偏差也會越來越多,MLP的訓練過程會變得復雜,訓練時間增加,并且可能找不到合適的權重和偏差。

表1 用于分類的UCI存儲庫數據集

h=2×n+1

(20)

所有算法在數據集上分別獨立運行10次,取結果的最大值、最小值、平均值、標準偏差和分類準確率進行比較。分類率表示各個算法訓練的MLP對數據分類的準確率,從運行結果中選擇參數最優的MLP,對測試樣本分類。

4.2 分類問題

分類數據集選擇不同的復雜度,數據集的特征由少到多,如果特征太多,啟發式算法對數據集分類的難度相應增加,對于太復雜的MLP,啟發式算法很難找到正確的權重和偏差值。表1是本文選擇的分類數據集的詳細情況,XOR數據集是最簡單的分類數據集,它的訓練樣本和測試樣本最少,都是8個。Baloon數據集也相對簡單,訓練樣本和測試樣本都為16個。Heart數據集最復雜,包含屬性22個,測試樣本187個,該數據集在進行分類時難度較大。Cancer數據集的訓練樣本和測試樣本較多。不同算法在不同數據集上的運行結果見表2~表5。不同算法在數據集上的均方誤差收斂曲線如圖5所示。

表2 算法在XOR數據集上的仿真結果

圖5 不同算法在4個分類數據集上的MSE收斂曲線

N位異或問題是著名的非線性測試問題,識別輸入向量中“1”的個數,若包含奇數個“1”,則輸出“1”,否則輸出“0”。XOR問題的MLP結構是3-7-1,7個算法在XOR數據集上的運行結果見表2,從表中可以看出,IAVOA算法的平均值最小,其次是BBO、AVOA、DE、SSA、GSA和ACO,說明IAVOA可以解決MLP中局部極小值停滯問題,并且效果較優。在標準差上可以看出ACO算法是最好的,其次是IAVOA算法,但ACO算法的收斂精度不如IAVOA算法。比較分類準確率發現,IAVOA、AVOA、BBO、SSA的分類準確率均為100%,GSA的分類準確率為67.3%,DE和ACO的分類準確率較低,分別是51.1%和50%。從圖5(a)可以看出IAVOA的收斂速度比其它算法快且均方誤差更小。

Baloon數據集有4個屬性,MLP結構是4-9-1,7個算法在在Baloon數據集上運行的結果見表3,IAVOA的平均均方誤差值最小,說明IAVOA可以解決局部極小值問題,其次是BBO、AVOA、DE、SSA、GSA和ACO。對比分類準確率,IAVOA、AVOA、SSA、BBO和GSA的分類準確率都是100%,ACO的分類準確率最差,僅為40%。IAVOA的標準差是7個算法中最小的,說明IAVOA具有很強的魯棒性。比較均方誤差的收斂曲線,圖5(b)顯示,IAVOA的曲線最陡,遠遠超越其它算法,收斂速度最快,說明IAVOA在尋找全局最小值方面的性能最好。

表3 算法在Baloon數據集上的仿真結果

Cancer數據集是對乳腺癌良性和惡性的分類,該數據集的MLP結構采用9-19-1。該數據集的復雜性和難度更高,如果算法對該數據集分類效果好,說明算法的性能較優。表4是各算法的運行結果,其中IAVOA的分類準確率為99%,BBO和SSA算法的分類準確率均為97.7%,AVOA的分類準確率是97%,GSA的分類準確率為67.33%,DE的分類率為4%,ACO的分類率為0。說明IAVOA對高維數據的處理效果較好。IAVOA的標準差比BBO略差,但收斂速度更快,收斂精度遠高于其它算法。從圖5(c)可以看出,IAVOA與AVOA、BBO的收斂曲線貼近,幅度雖然不大,但也可以看出有所改進。充分驗證了IAVOA的魯棒性強、效率高和分類準確性高。

表4 算法在Cancer數據集上的仿真結果

Heart數據集是診斷心臟的計算機掃描圖像。心臟數據集有22個屬性,難度最大,該數據集的MLP結構是22-45-1。算法運行結果見表5,IAVOA、AVOA、BBO的平均均方誤差值最好。比較分類準確率,SSA的分類準確率最高80.8%。其次是BBO,分類準確率為79.6%,DE的分類準確率是75.4%,IAVOA的分類準確率為74.2%,優于AVOA、ACO和GSA算法。這充分說明在處理節點較多的MLP問題時,IAVOA穩定性更高,同時MLP的測試樣本的分類準確率也表現良好。從圖5(d)可以看出,IAVOA算法的收斂速度最快,說明在處理復雜的Heart數據集時,IAVOA算法所用的時間最少。

表5 算法在Heart數據集上的仿真結果

從圖5(a)、圖5(b)、圖5(c)、圖5(d)可以看出,ACO在所有圖中,收斂速度和收斂精度都是最差的。IAVOA不管是在簡單的數據集還是復雜的數據集上,都比其它算法的效果更好,收斂速度更快,具有較高的開發率,表明IAVOA可以為MLP提供最優的連接權重和偏差,算法的訓練速度和尋優能力也大大提高。

5 結束語

本文將最近提出的AVOA算法改進后用于訓練MLP,為了驗證IAVOA算法的性能,選用6個啟發式算法,在4個分類數據集上進行測試,評估IAVOA訓練MLP的有效性。仿真結果顯示,與GSA、BBO、ACO、DE、SSA、AVOA相比,IAVOA對XOR和Baloon兩個分類數據集給出了最優結果。在Cancer和Heart數據集中也表現良好,IAVOA能更好地避免局部極小值,在分類準確率和收斂速度方面具有優越性。

在未來研究中,可以將IAVOA應用于訓練其它類型的神經網絡,如卷積神經網絡、徑向基函數神經網絡、模塊化神經網絡和長/短期記憶網絡。

猜你喜歡
禿鷲集上勘探
油氣勘探開發三年滾動計劃編制的思考
禿鷲、蝙蝠和大黃蜂
為什么禿鷲的頭上沒有毛
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
勘探石油
歡迎光臨禿鷲餐廳
毛遂自薦的禿鷲
復扇形指標集上的分布混沌
春曉油氣田勘探開發的歷史
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合