于航,王子謙,雷振宇,高尚策
(1.泰州學(xué)院計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇泰州225300;2.富山大學(xué)工學(xué)部,日本富山9308555)
近年來,隨機(jī)搜索算法已經(jīng)被應(yīng)用于全局優(yōu)化問題。由于這些算法中隨機(jī)算子的存在,相比確定性搜索算法而言,這些算法在運行時間和準(zhǔn)確性方面展現(xiàn)出了極大的優(yōu)越性。進(jìn)化算法(EA)[1]是這些隨機(jī)搜索算法中的一種。進(jìn)化算法在求解目標(biāo)函數(shù)的全局最優(yōu)解時,采用隨機(jī)算子來隨機(jī)生成新的子代。進(jìn)化算法由于在避免陷入局部最小的方面展現(xiàn)出了良好的性能,因此已逐漸成為研究人員所關(guān)注的熱點,并被廣泛地應(yīng)用于各個領(lǐng)域。
一些已經(jīng)被廣泛使用的進(jìn)化算法如下:粒子群優(yōu)化算法(PSO)[2]是模擬鳥集群飛行覓食的行為,通過集體的協(xié)作使群體達(dá)到最優(yōu)目的的算法;蟻群優(yōu)化算法(ACO)[3]是一種模擬螞蟻尋找食物來源的隨機(jī)搜索算法;人工蜂群算法(ABC)[4]是一種模擬蜜蜂覓食行為的優(yōu)化算法;遺傳算法(GA)[5]借鑒了進(jìn)化生物學(xué)中的遺傳、突變和自然選擇現(xiàn)象。當(dāng)然,差分進(jìn)化(DE)[6]和鯨魚優(yōu)化算法(WOA)[7]也屬于其中。
在設(shè)計和使用這些元啟發(fā)式算法時,對于搜索空間的探索能力和對于最優(yōu)解的開發(fā)能力是一對既矛盾又需要被綜合考慮的方面。近年來,研究人員發(fā)現(xiàn)采用混合元啟發(fā)式算法可以有效地改善原算法這兩方面的能力,并且混合算法展現(xiàn)出了良好的解決實際問題的能力。例如,文獻(xiàn)[8]混合了粒子群算法(PSO)和人工蜂群算法(ABC)來訓(xùn)練前饋神經(jīng)網(wǎng)絡(luò);文獻(xiàn)[9]混合了鯨魚優(yōu)化算法(WOA)和模擬退火算法(SA)并應(yīng)用于特征選擇問題。
在數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)[10]中,實際問題中通常會涉及大量的特征。然而,并非所有特征都是必不可少的,許多特征是多余的甚至是不相關(guān)的,這些特征夾雜在其中可能會降低分類算法的準(zhǔn)確性。而特征選擇旨在通過僅選擇特征集的一小部分子集來解決實際問題。通過刪除不相關(guān)和冗余的特征,加快分類器的分類速度,簡化學(xué)習(xí)的模型。
特征選擇[11]是一項非常困難的任務(wù),主要原因在于其搜索空間的維數(shù)十分龐大。假設(shè)一個數(shù)據(jù)集合具有n個特征,則其可能的解決方案總數(shù)為2n。隨著數(shù)據(jù)收集技術(shù)的進(jìn)步,這些問題越來越復(fù)雜,實際問題的特征數(shù)量n也會越來越大,遍歷所有子集,從而選擇一個合適的子集的難度更會越來越大。所以從實際上來說,搜索給定數(shù)據(jù)集的所有特征子集在大多數(shù)情況下是不可能實現(xiàn)的。于是,研究人員嘗試?yán)枚喾N搜索技術(shù)應(yīng)用于特征選擇,例如元啟發(fā)式搜索和隨機(jī)搜索。但是研究人員發(fā)現(xiàn),大多數(shù)現(xiàn)有特征選擇方法仍然遭受局部最小和停滯的困擾,且計算成本尤為高昂。因此,高效的全局搜索技術(shù)才能更好地解決特征選擇問題。進(jìn)化算法由于其強大的全局搜索能力,在特征選擇領(lǐng)域中獲得了研究人員的關(guān)注。文中同樣嘗試著用混合進(jìn)化算法的方式來解決特征選擇問題。
鯨魚優(yōu)化算法(WOA)是一種模仿座頭鯨捕食獵物行為的算法。為了捕捉獵物,首先需要將獵物包圍。其數(shù)學(xué)模型可用以下公式描述:
其中,t表示當(dāng)前迭代,(t)表示到目前為止獲得的最佳解決方案,X是位置矢量。另外,A和C是等式中的系數(shù)向量,計算方法如下:
其中,a在迭代過程中從2 線性減少到0,r是在[0,1]間隔內(nèi)以均勻分布生成的隨機(jī)向量。根據(jù)式(2),搜索單元(鯨魚)根據(jù)最優(yōu)解(獵物)的位置來更新其位置。調(diào)整A和C向量的值可以控制鯨魚在獵物附近的區(qū)域。
算法通過式(3)中a值的減小實現(xiàn)了鯨魚的收縮包圍行為,其計算方法如下:
式中,t為迭代次數(shù),M為允許迭代的最大次數(shù)。為了模擬螺旋形路徑,計算了搜索單元(X)與迄今為止的最優(yōu)解(X*)之間的距離,然后使用式(6)的螺旋方程式來獲取臨近搜索單元的位置:
為了對這兩種機(jī)制建模,即收縮并環(huán)繞獵物和螺旋狀的路徑,在優(yōu)化過程中,假設(shè)各有50%的概率選擇其中的任意一種方式,如式(7)所示:
其中,p是在[-1,1]范圍中的隨機(jī)數(shù)。
差分進(jìn)化(DE)算法是眾多進(jìn)化算法的其中之一。近年來,結(jié)構(gòu)簡單的差分進(jìn)化算法已展現(xiàn)出其快速解決優(yōu)化問題的能力。受到遺傳算法的啟發(fā),差分進(jìn)化算法主要包括初始化、差分變異、交叉、選擇。在初始化部分,假設(shè)有一個隨機(jī)的NP維參數(shù)向量作為每一代的種群,定義如下:
在變異的環(huán)節(jié),采用差分的方式來變異向量,定義如下:
其中,r1,r2,r3 ∈[1,2,3,…,NP]是3 個隨機(jī)數(shù)。F是差分因子且是一個常數(shù),一般可以取0.5。G是指迭代次數(shù)。
為了增加種群向量的多樣性,差分進(jìn)化中設(shè)置了交叉的環(huán)節(jié),對交叉的定義可以用如下的公式描述:
式中,rand是在[0,1]范圍中的隨機(jī)數(shù)。CR是交叉概率,一般取值為0.9。
最后一個選擇的環(huán)節(jié),顧名思義,就是去確定哪一個個體會被選擇進(jìn)入下一個種群。在差分進(jìn)化中,采用了貪婪選擇的方式,即代價函數(shù)值越小的個體,越需要被保留在種群中。于是,比較新獲得的個體uji,G+1與過去的個體xji,G,若uji,G+1的代價函數(shù)值小于xji,G的代價函數(shù)值,則新個體uji,G+1取代舊個體xji,G保留在種群中。反之,則舍棄新個體uji,G+1。
上述介紹的鯨魚優(yōu)化算法(WOA)是近期提出的模仿座頭鯨捕食獵物行為的優(yōu)化算法,它展現(xiàn)出了解決優(yōu)化問題的能力,并且已經(jīng)被廣泛地應(yīng)用于各個領(lǐng)域。但是,鯨魚優(yōu)化算法的開發(fā)能力(如在式(2)和(6)中提到的一樣)主要取決于到目前為止搜索單元與最優(yōu)解之間的距離,所以首先需要有一個足夠好的當(dāng)前最優(yōu)解,才能更好地利用鯨魚優(yōu)化算法的開發(fā)性能。于是設(shè)想采用一種有效的具有較強探索能力的算法來大致確定最優(yōu)解的方位,再利用鯨魚優(yōu)化算法的開發(fā)能力找到最優(yōu)解,從而提升搜索算法的能力。差分進(jìn)化(DE)是眾多進(jìn)化算法的其中之一,它以其簡單的結(jié)構(gòu)和快速解決問題的能力,深受研究人員的關(guān)注。然而,差分進(jìn)化算法具有較強探索能力的同時,開發(fā)能力卻略顯不足,因此,文中考慮結(jié)合鯨魚優(yōu)化算法和差分進(jìn)化算法的優(yōu)點,設(shè)計出了一種基于鯨魚優(yōu)化的差分進(jìn)化混合算法?;旌纤惴ǖ牧鞒虉D如圖1所示。
圖1 混合算法流程圖
從本質(zhì)上來說,特征選擇問題是一個二進(jìn)制優(yōu)化問題,因為問題解決方案僅限于二進(jìn)制{0,1}兩個值。要將WODE 算法應(yīng)用于特征選擇問題,就需要設(shè)計一個二進(jìn)制編碼的版本。在這項工作中,解決的方案用一維向量來表示,向量的長度與原始數(shù)據(jù)集的特征數(shù)量相同。向量中的每個值都由“1”或者“0”來表示。用數(shù)值“1”表示選擇相應(yīng)的特征;而數(shù)值“0”表示不選擇相應(yīng)的特征。
特征選擇問題可以看作是一個多目標(biāo)優(yōu)化問題,其中要實現(xiàn)如下兩個目標(biāo):最少的特征數(shù)量和更高的分類精度。解決方案中選定的特征數(shù)量越少,分類的精度越高,則可以說解決方案就越好。每個解決方案的評價都需要使用代價函數(shù),而代價函數(shù)主要利用KNN 分類器來獲取解決方案中選定特征的分類精度。為了在解決方案中選定特征的數(shù)量(最?。┖头诸惥龋ㄗ畲螅┲g取得平衡,可使用如下方程式來定義代價函數(shù):
其中,γR(D)表示給定分類器的分類誤差,文中采用了K 鄰近分類器。R表示所選子集的特征數(shù)量,N是數(shù)據(jù)集中特征的總數(shù),α和β是與分類精度和選定子集長度有關(guān)的兩個參數(shù),α∈[0,1],β=1-α。
下面將對提出的WODE 算法在CEC2017 函數(shù)集上進(jìn)行測試。種群規(guī)模已設(shè)定為100,維度設(shè)置為30,最大迭代次數(shù)在算法中設(shè)置為3 000。此外,為了減小隨機(jī)性帶來的誤差,算法在每一個函數(shù)上都會測試30 次,然后計算這30 次結(jié)果的平均值和標(biāo)準(zhǔn)偏差,得出最終結(jié)果。此外,將提出的WODE 算法與其他一些已經(jīng)被廣泛應(yīng)用的進(jìn)化算法進(jìn)行比較,例如差分進(jìn)化(DE)、鯨魚優(yōu)化算法(WOA)、粒子群優(yōu)化算法(PSO),以顯示提出算法的優(yōu)越性。
上述提到的算法測試結(jié)果已經(jīng)在表1中列了出來, 30 次獨立運行結(jié)果的平均值表示算法的平均性能,而標(biāo)準(zhǔn)偏差(Std)反映了算法的魯棒性,4 種算法對每個函數(shù)求解的最優(yōu)解的最小值已經(jīng)被加粗,如表1~表4所示。
表1 CEC2017中單峰函數(shù)測試結(jié)果
表2 CEC2017中多峰函數(shù)測試結(jié)果
表3 CEC2017中混合函數(shù)測試結(jié)果
表4 CEC2017中組合函數(shù)測試結(jié)果
通過4 個表可以很明顯看出,在5 個多峰測試函數(shù)和11 個組合測試函數(shù)中,WODE 比其余3 種算法的解更優(yōu)。在4 個單峰測試函數(shù)中,WODE 有一半是最優(yōu)。在10 個混合測試函數(shù)中,WODE 有8 個是最優(yōu)。
圖2是從30 個測試函數(shù)中隨機(jī)抽取的4 個測試函數(shù)的數(shù)據(jù)所畫的收斂圖,從圖2可以看出,WODE測試結(jié)果的最優(yōu)值優(yōu)于其余3 種算法。
圖2 收斂圖
圖3是隨機(jī)選取的4 個測試函數(shù)數(shù)據(jù)的箱線圖,從圖3可以看出,WODE 的測試結(jié)果分布要優(yōu)于其余3 個算法。
圖3 箱線圖
同時,Wilcoxon 檢驗[13]被用來精確比較WODE和其他測試算法之間的性能。Wilcoxon 檢驗是一種非參數(shù)檢驗,主要涉及兩個樣本的假設(shè)檢驗。實驗中的置信區(qū)間設(shè)置為95%,即當(dāng)Wilcoxon 檢驗之后得出的P值小于0.05 時,表示前者測試解的結(jié)果相比后者有顯著性優(yōu)勢。表5列出了WODE 與DE、WOA、PSO 4 種算法的Wilcoxon 檢驗結(jié)果。從表5可以看出,WODE 的測試結(jié)果要優(yōu)于其他3 種算法。
表5 Wilcoxon檢驗
文中還將所提出的混合算法WODE 應(yīng)用于特征選擇問題。同時,與DE、WOA 兩種算法進(jìn)行了比較,測試了算法的分類準(zhǔn)確性和特征的數(shù)量。分類準(zhǔn)確性取數(shù)據(jù)集運行30 次中的最優(yōu)一次分類準(zhǔn)確性,特征數(shù)量則為這30 次運行的平均特征數(shù)量。測試過程中,α取0.9。表6中列出了所采用的數(shù)據(jù)集基本信息,包括特征數(shù)量和數(shù)據(jù)集維度,測試用的3 個數(shù)據(jù)集均來自于UCI。
表7中羅列了算法的測試結(jié)果,其中,3 種算法中最優(yōu)的分類準(zhǔn)確性和最小的特征數(shù)量已經(jīng)被加粗。從表7中可以明顯看出,對于特征選擇而言,WODE 的效果更好。
表7 分類準(zhǔn)確率和特征的平均數(shù)量
文中提出了一種基于鯨魚優(yōu)化的差分進(jìn)化算法,以提高進(jìn)化算法的搜索能力。實驗結(jié)果表明,提出的WODE 可以有效地提高DE 對于最優(yōu)解的挖掘能力。此外,WODE 在處理特征選擇問題時表現(xiàn)出了一定的優(yōu)越性。在將來,將提出的WODE 應(yīng)用于多目標(biāo)優(yōu)化問題[14]、組合優(yōu)化問題[15]以及神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)[16]。