張 琳,汪廷華,周慧穎
贛南師范大學 數學與計算機科學學院,江西 贛州341000
支持向量機(Support Vector Machine,SVM)是Vapnik等人[1]于20世紀90年代中期提出的一種有監督的機器學習方法,它是以統計學習理論[2]為基礎發展而來的。支持向量回歸機(Support Vector Regression,SVR)作為標準SVM模型的一種拓展,主要用來解決函數擬合和回歸估計問題[3-4]。該模型的核心在于通過核函數將樣本數據從輸入空間映射到高維特征空間,進而在高維特征空間尋找到一個能準確反映樣本數據分布的決策函數,使得樣本數據盡量都在超平面上。通過最小化結構風險,SVR能夠有效避免過學習、維數災難的問題,在處理小樣本、非線性、高維度等問題中展現出優越的性能,因此被廣泛應用在金融預測[5]、數據挖掘[6]、生物醫學[7]等各個領域。
雖然SVR算法在理論和應用上都有一定的優勢,但合適的參數是實現SVR算法優勢的前提。參數選擇對SVR模型的學習效果和泛化性能有直接的影響,因此如何選取到合適的參數一直是SVR算法的一個研究熱點和難點。傳統的SVR參數優化方法主要有交叉驗證技術[8]、梯度下降法[9]、網格搜索法[10]等。交叉驗證技術是通過保持某參數值不變的條件下測試非訓練樣本的預測誤差,不斷地修正參數值,從而使測試誤差最小[8]。該方法存在極大的計算量且難于實現兩個以上的參數選取。梯度下降法的基本原理是對一般錯誤的分解上界最小化來實現SVR參數的尋優求解,該方法在計算時間方面有優勢,收斂速度較快,但是對初始值敏感,并且要求目標函數對參數可微[9]。網格搜索法的基本原理是驗證網格范圍內的所有點,最終選擇誤差最小的網格點為SVR的參數。但當參數較多或參數取值范圍較大時,該方法存在極大的計算量,非常耗時[10]。因此,設計高效的非線性參數尋優方法是現階段的研究重點。
群智能算法源于對生物種群行為規律的模仿研究,主要是模仿生物種群個體的覓食過程:種群個體按照某種合作方式尋找食物,不斷地進行信息交流,以便更快地找到更多食物[11]。鑒于生物種群的覓食過程,抽象出來成為某種群智能算法。自遺傳算法(Genetic Algorithm,GA)和蟻群算法(Ant Colony Optimization,ACO)提出以后,國內外研究者先后提出粒子群算法(Particle Swarm Optimization,PSO)、人工魚群算法(Artificial Fish Swarm Algorithm,AFSA)、螢火蟲算法(Firefly Algorithm,FA)等群智能算法[12]。因具有實現簡單,可擴充性、通用性、魯棒性強等特點,群智能算法被廣泛應用于圖像處理、電容器分配、數據挖掘、模式識別等領域。
群智能算法自提出以來備受青睞,作為一類新型的隨機搜索算法,在非線性參數優化問題中表現出良好的性能。使用群智能算法優化支持向量回歸機參數是現階段的研究熱點。
SVR的基本原理是在特征空間計算出給定的訓練樣本集的決策函數,然后通過決策函數進行回歸預測。對于線性不可分的問題,通過核函數將樣本數據映射至高維特征空間,進而在高維特征空間找到線性決策函數。假定訓練樣本集T為:

其中,xi是樣本實例,yi是xi相對應的輸出。設樣本集在高維特征空間中的決策函數為:

其中,w為超平面的權向量,b為閾值。通過最小化結構風險原則和具備稀疏性的ε不敏感損失函數,ε-SVR模型在高維空間的目標函數可表示為如下的最優化問題:

其中,ξi、ξ?i是松弛變量,C是懲罰系數,保持決策平面和誤差之間的平衡。為了解決上述最優化問題,引入拉格朗日函數,并通過拉格朗日對偶可轉化為對偶優化問題:

其中,αi,α?i≥0是拉格朗日乘子。通過求解對偶優化問題,得到相應的決策函數:

式(5)中k(xi,xj)=φ(xi)Tφ(xj)為核函數。
常用的核函數主要有:
(1)多項式核函數

(2)高斯核函數

(3)Sigmoid核函數

SVR是一種有監督的機器學習方法,具有完備的理論基礎,但其參數選取的不同對模型的預測精度和泛化能力有直接的影響。ε-SVR模型的參數包括不敏感損失系數ε、懲罰參數C以及核函數參數:不敏感損失系數ε與支持向量的數目相關;懲罰參數C影響模型的復雜度和穩定性;核函數參數反映樣本在特征空間分布情況。三者之間相互影響,共同決定SVR模型的復雜度和泛化性能。因此,精準、高效地選取到SVR參數,使得SVR模型具備更好的預測精度和泛化性能是SVR研究的一個重要課題。
群智能算法是迭代尋優搜索算法,具有靈活性、全局尋優、自組織性及并行處理能力較強等特點,因此成為最具代表性的支持向量回歸參數優化方法,并且在許多領域上得到成功的應用。下面論述了幾種經典的群智能算法在SVR參數優化領域的研究成果。
粒子群算法源于自然界鳥類群體協作的覓食行為,Eberhart和Kennedy通過對這種社會行為的研究于1995年首先提出粒子群算法[13]。該算法的主要原理是模仿鳥類種群在合作覓食中不斷地交流共享信息,進而讓整個覓食行動從無序變有序的過程,從而更快地獲得更好食物的位置,即問題的最優解。
在粒子群算法中,為了確定全局最優解,每個粒子都以適當的速度在搜索空間飛行,且粒子速度受到粒子自身飛行經驗和整個種群最佳飛行經驗的共同影響,粒子速度和位置更新如下所示:

粒子群算法是一種全局并行搜索的啟發式算法,具有簡單易實現、快速收斂、尋優精度高、參數較少等優點。自提出至今,粒子群算法已經在物流管理[14]、求解旅行商問題[15]、圖像處理[16]、選址問題[17]等領域得到廣泛的應用。作為經典的迭代尋優算法,粒子群算法蘊藏巨大潛力,在參數優化領域中展現出優越的性能,其在SVR參數優化領域的研究應用大致可分為兩類,概述如下:
(1)采用標準粒子群算法對SVR模型參數進行優化選取。文獻[18]將標準粒子群算法優化的SVR模型應用到預測人群密度變化中,實驗結果表明該模型的預測精度和泛化性能都有所提升。Li等人[19]采用粒子群算法優化SVR模型參數,創建了水質參數的預測模型。數值表明,相比于SVR模型,粒子群算法優化SVR模型在懸浮物和葉綠素濃度實驗中取得較好的效果。李紫蕊等人[20]先用主成分分析法提取的特征構建定性分析混合氣體的隨機森林模型,再通過粒子群算法和SVR建模實現對各類氣體濃度定量分析,實驗結果驗證了該算法的有效性。文獻[21]提出先基于遞歸特征消除法剔除與回歸無關的噪聲和冗余特征,然后采用粒子群算法對SVR模型參數進行優化選擇并應用于電量需求的預測中,實驗結果表明了該算法的有效性。標準粒子群算法緩解了SVR參數選取困難的問題,在一定程度上提升了模型的性能,然而因其不完備的數學理論支撐,導致在參數尋優過程中存在易陷入局部最優值、后期收斂速度緩慢、后期粒子趨同性嚴重等局限性。
(2)利用粒子群算法的改進算法實現對SVR參數尋優求解。針對標準粒子群算法存在的缺陷,目前粒子群算法的改進算法主要有以下四種:
①改進參數的粒子群算法
粒子群算法的參數控制著算法的搜索能力和收斂速度,改進參數來提升算法的尋參效率。文獻[22]為提高粒子群算法的搜索能力,將當前最優適應度值與全局最佳適應度相對偏差引入線性遞減函數中動態調整慣性權重值,實驗證明該模型可以提供更好的預測性能。為使算法具有更好的性能,文獻[23]提出迭代后粒子適應度變化決定慣性權重,同時引入線性遞減函數動態調整慣性權重來控制算法的全局和局部搜索能力,并構建預測礦壩位移數據,實驗結果表明改進后的模型在預測精度上有明顯的提升。夏爾冬等人[24]對慣性權重利用非線性函數進行動態調整,同時采用線性函數修正學習因子,以達到兼顧算法的全局尋優和局部搜索能力的目的。實驗結果證實了改進后的算法是一種有效的參數尋優方法,使得SVR模型具有良好的預測精度和泛化能力,同時具備魯棒性強、可行性高的特點。改進算法的參數可以提高算法后期的收斂速度,提升算法的尋參性能,但是增加了算法的訓練時間及計算成本。
②改進搜索機制的粒子群算法
粒子群算法存在一種有效的機制對算法的全局和局部搜索能力進行折衷,降低算法陷入局部最優值的可能性。文獻[25]提出設定最佳適應度變化率閾值,當其大于當前全局最佳適應度變化率時,以一定的變異概率對除全局最優粒子外的所有粒子重新初始化,從而增加粒子的多樣性,避免粒子過早收斂。文獻[26]提出引入反向預測因子,對粒子的多樣化和集中化進行折衷,降低早熟收斂的可能性;引入斥力因子動態更新粒子位置,使得搜索空間中的粒子分布均勻化,避免因粒子群過分聚集而造成的搜索空間受限;同時利用非線性函數對慣性權重系數進行更新,以期達到統籌全局尋優和局部精細搜索性能,提高收斂速度的目的。實驗結果表明所提出的策略具有更高的預測率和泛化性能。改進算法提高了算法尋參效率,提升了模型的性能,但不可避免帶來了算法運行時間成本增加且普適性不高的問題。
③設計多種群機制的粒子群算法
多種群機制是利用種群之間相互交流信息機制和大規模的特點,設計高效的種群之間的信息交流機制和合適的子群數量來提升算法的效率和精度。Duan等人[27]提出把粒子群劃分成三個獨立子群的多種群粒子群算法以改進算法跳出局部最優值的能力,提高算法的尋優精度和魯棒性。此種改進算法提升了算法跳出局部最優值的能力,提高了算法的尋參精度,然而也帶來了算法時間復雜度更高的問題。
④設計混合粒子群算法
混合粒子群算法是針對粒子群算法的局限性,融合其他算法的優點來彌補缺陷,使得混合粒子群算法具備多種算法的優點,可以提高混合粒子群算法的尋參效率和收斂速度。Xie等人[28]提出了融合粒子群算法和分散搜索的混合算法,對SVR參數進行優化。通過分散搜索的多樣化生成方法來初始化粒子種群,避免粒子種群過分聚攏導致搜索空間受限;同時添加多樣性信息來改進粒子的速度更新公式,減少粒子陷入局部最優的可能性。實驗結果表明該方法提高了SVR模型的效率及性能。文獻[29]提出了融合模擬退火算法和粒子群算法的混合算法優化SVR模型參數,并應用于對柳江徑流的預測估計。文獻[30]提出先用帝國競爭算法選擇不同的特征因素,用粒子群算法對SVR模型參數優化求解,評估杏產量及影響其產量的因素。結果表明該混合算法具有較高的預測精度和效率。Lu等人[31]提出了一種遺傳算法用于全局搜索和粒子群算法用于更精確的局部搜索的混合算法來對SVR參數進行優化,并將模型應用到電動汽車充電站負荷預測中。結果顯示這種融合算法是有效的,具有可信性高。文獻[32]提出螢火蟲算法和粒子算法結合的混合算法優化SVR參數,構建制糖工業澄清劑的預測模型。文獻[33]提出一種融合入侵雜草算法的混合粒子群算法優化SVR參數,應用于實現檢測甲烷氣體濃度。實驗證明該模型具有預測精度高、穩定性好的特點?;旌狭W尤核惴ň邆涠喾N算法的優點,在SVR參數尋優方面取得顯著的效果,提高模型的泛化性能和精度,與此同時無法避免地增加了算法參數個數,從而帶來了算法復雜度變高、系統開銷增大、算法不具備普適性等問題。
粒子群算法是一種迭代尋優驗證的算法,雖然在組合優化中仍然存在各種問題,但通過不斷地探索與完善,仍是一種有效的非線性參數尋優求解方法。
蝙蝠算法(Bat Algorithm,BA)源于蝙蝠利用聲吶搜索獵物和躲避天敵的行為,Yang受蝙蝠行為規律的啟發于2010年提出了蝙蝠算法[34]。該算法主要是模仿蝙蝠利用回聲定位來測量物體的距離和大小,從而避免障礙物和探測獵物的行為。
在搜索空間中,蝙蝠發出聲波探索食物,經過對比后,確定最優蝙蝠個體,進而得到全局最優解。蝙蝠算法中蝙蝠的發射脈沖頻率、速度及位置的公式為:

其中,fi為蝙蝠i發出的脈沖頻率,fmax、fmin為蝙蝠發出脈沖頻率的上限和下限分別表示蝙蝠i在第t次迭代過程中的位置和速度,x?為當前迭代過程中蝙蝠群體中最優個體的位置,β為[0,1]之間的隨機數。
在蝙蝠種群中隨意選擇一只蝙蝠隨機游走對周圍區域進行探索,其搜索位置的更新如下所示:

其中,xnew、xold分別為蝙蝠的新位置和當前所處的位置,At表示第t代所有蝙蝠的平均響度,ε是[-1,1]范圍內的隨機數。
在搜索獵物過程中,蝙蝠會根據與獵物的距離不斷地調整聲波響度和頻率來提高捕食的效率,其發出的聲波響度和頻率更新公式如下所示:

其中,a是[0,1]上的聲波衰減系數為蝙蝠i的初始脈沖頻率,γ是脈沖頻率增加系數。
蝙蝠算法是一種全局隨機搜索的啟發式算法,具有結構簡單、搜索能力強、可調參數較少等特點,在數據挖掘[35]、工程優化問題[36]、電力系統[37]以及圖像分割[38]等領域展現出良好的性能。當然作為新型的群智能算法,蝙蝠算法在參數優化方面也取得了不錯的研究成果,其在優化SVR模型參數的應用大致可分為兩類,概述如下:
(1)采用標準蝙蝠算法對SVR模型參數進行優化選取。文獻[39]用標準蝙蝠算法優化SVR懲罰參數和核函數參數,并用于對太陽輻照進行預測。與粒子群算法進行對比,實驗結果表明該模型找到的參數組合更好,有效地降低不合理參數對預測結果的影響。Xu等人[40]引入蝙蝠算法優化SVR模型的三個參數,可以提高SVR的預測精度和泛化能力。唐曉斌等人[41]通過蝙蝠算法對SVR參數進行優化,構建對二手房同比價格指數的預測模型。文獻[42]利用蝙蝠算法優化SVR模型參數,用于對鄉村景點短期客流量進行預測。實驗結果證實蝙蝠算法具有更好的全局搜索能力及較少的計算時間。文獻[43]將蝙蝠算法和SVR模型結合構建對印刷電路板的銷量預測,結果顯示該模型具有更高的預測精度和穩定性。標準蝙蝠算法緩解了SVR參數選取困難的問題,在一定程度上提升了模型的性能,然而在參數尋優過程中存在易陷入局部最優、搜索精度較低及易早熟收斂等問題。
(2)利用蝙蝠算法的改進算法實現對SVR參數尋優求解。為了克服這些缺陷,諸多學者提出改進方案來提升算法尋參精度進而提升SVR模型性能。目前的改進方案主要有:
①改進參數的蝙蝠算法
蝙蝠算法的參數影響著蝙蝠在搜索過程中的飛行方向和飛行速度,改進參數可以降低算法陷入局部最優值的可能性。文獻[44]為降低蝙蝠算法發生早熟收斂的可能性,提出五個修改策略:為提高算法跳出局部最優的能力,提出迭代局部搜索;利用線性函數和正態分布的隨機數修正慣性權重;引入線性函數調整蝙蝠的脈沖頻率和響度以便控制局部和全局搜索;以隨機選取的蝙蝠適應度值和當前蝙蝠的適應度值大小為依據修改蝙蝠的速度更新,進而增強算法的開發和探索能力;引入線性遞減的隨機游走權重以提高算法的穩定性。在標準蝙蝠算法上的改進算法進一步提高模型的尋優速度和收斂能力,降低陷入局部最優的可能性,卻使得算法運行成本增加且算法不具備普適性。
②結合多種機制的蝙蝠算法
為避免發生早熟收斂現象,引進多種機制來提升算法尋參效率和精度。文獻[45]為降低算法發生早熟收斂的可能性,引入萊維飛行策略;同時引入柯西變異策略和可變步長搜索機制來緩解算法難以跳出局部最優值、搜索精度低的問題。建立對生產裝置歷史數據的預測模型,仿真結果表明該模型穩定性好,提高了煅燒帶溫度的預測精度,能夠對回轉窯煅燒過程的安全生產和優化運行起到實時指導作用。成貴學等人[46]引入隨機策略決定蝙蝠的覓食棲息地并且增加對回波中多普勒效應的自適應補償,以期提高模型的日最大負荷預測精度。實驗結果顯示該算法找到的SVR最優參數有效提高了模型的預測性能。在標準蝙蝠算法上的改進算法進一步提高模型的尋優速度和收斂能力,改善種群的多樣性,避免發生早熟收斂的現象,但不可避免地增加了算法的參數個數,從而造成算法的運行時間變長,復雜度更高。
③設計混合蝙蝠算法
混合蝙蝠算法是針對蝙蝠算法的局限性,融合其他算法的優點來彌補短板,使得混合蝙蝠算法具備多種算法的優點,提高混合蝙蝠算法的尋參效率和收斂速度。文獻[47]為提高算法的抗干擾能力和跳出局部最優值能力,提出基于混沌映射函數執行全局混沌擾動策略的量子蝙蝠算法,用于優化SVR模型參數并對電力負荷進行預測。數值結果表明該模型在預測精度方面優于其他替代模型。文獻[48]提出全局混沌遍歷擾動策略改進蝙蝠算法后期趨同性嚴重的問題;利用局部利基加速算法來提高局部搜索能力和搜索速度;引入種群平均聚集密度和最大聚集密度,得到種群聚集密度變化率來計算慣性權重更新蝙蝠的速度,旨在修正全局和局部搜索的轉換。改進后的蝙蝠算法優化浮動平臺運動數據的SVR預測模型,實驗評估該模型的可靠性和有效性?;旌向鹚惴ㄟM一步提升了模型的預測精度和泛化性能,但不可避免地帶來了一些其他問題,如算法的參數增多,算法復雜度更高,系統開銷增多等。
蝙蝠算法在參數優化領域中的應用廣泛,但在組合優化中仍然存在一定的問題。眾多學者提出多種改進策略,并應用到SVR參數尋優求解中提高模型的性能。
2011年Pan受到果蠅利用自身嗅覺和視覺覓食行為的啟發,提出了果蠅優化算法(Fruit Fly Optimization Algorithm,FOA)[49]。該算法包括果蠅個體利用敏銳的嗅覺感知食物氣味濃度尋找食物的嗅覺搜索階段,及利用靈敏的視覺找到食物與果蠅同伴匯聚地點的視覺定位階段,來達到優化搜索的目的。
在嗅覺搜索階段中,果蠅通過自身敏銳的嗅覺感知食物味道濃度來尋找食物,其他果蠅個體無法得知同伴的位置,因此先估算果蠅個體與原點的距離,而食物味道濃度判定值由距離可得,計算公式如式(15)所示:

式中,Xi、Yi為果蠅i的橫縱坐標。
根據果蠅的食物味道濃度判定值按式(16)計算出味道濃度:

式中,Fitness為食物味道濃度適應度函數,Smelli為果蠅i的味道濃度值。
在視覺定位階段中,選取所有果蠅個體中的味道濃度值最佳的果蠅個體,保留其對應的食物濃度值和位置信息,其他果蠅個體利用視覺向此處飛去,即:

其中,bestsmell、bestindex分別為果蠅最佳味道濃度值及其相對應的位置信息。
果蠅優化算法是一種迭代尋優的啟發式算法,因具有結構清晰、可調參數少、靈活性等特點,被廣泛應用于圖像處理[50]、函數優化[51]、工作調度[52]等相關領域。作為新型的啟發式搜索算法,果蠅優化算法蘊涵著巨大的潛能,在參數優化領域中也取得不錯的研究成果,其在優化SVR參數方面的應用大致可分為兩大類別,概述如下:
(1)采用標準果蠅優化算法對SVR模型參數進行優化選取。文獻[53]利用果蠅優化算法優化SVR模型參數,并建立對工業過程中紡絲伸長率的預測模型,實驗結果表明該模型有著良好的泛化性能。Cao等人[54]采用果蠅優化算法優化SVR模型的參數,對季節性電量消費進行預測。文獻[55]將果蠅優化算法優化的SVR模型用于預測空置停車位的數量,實驗結果驗證了果蠅優化算法的有效性。文獻[56]利用果蠅優化算法SVR模型參數,構建對底板突水量的預測模型,實驗結果顯示該模型比SVR模型具有更高的預測精度。標準果蠅優化算法緩解了SVR參數選取困難的問題,在一定程度上提升了模型的性能,然而因不完善的數學理論支撐導致在參數過程中存在尋優精度不高、后期趨同性較高以及易發生早熟收斂現象等問題。
(2)利用果蠅優化算法的改進算法實現對SVR參數尋優求解。針對果蠅優化算法存在的局限性,諸多學者對此進行深入探索研究,提出眾多改進策略來提高算法的尋參效率和精度,主要有以下三種改進策略:
①改進搜索步長的果蠅優化算法
搜索步長控制算法的全局和局部的搜索能力,主要受搜索半徑的影響。改進搜索步長可以增強算法的全局搜索能力,降低發生局部最優的概率。文獻[57]為改善算法的效率和搜索精度,采用指數函數更新步長的自適應果蠅優化算法對SVR模型參數進行優化,并應用到對磁流變彈性體基礎隔離器進行預測。Yi等人[58]為使算法降低陷入局部最優的概率,提出在以距離倒數作為適應度函數中增加一個常數的改進算法,并在水稻葉片數據中進行驗證。實驗結果表明該模型具有更高的效率和預測精度。張璽[59]為在搜索階段實現全局搜索和局部搜索的動態平衡,引入降低隔代搜索步長策略,同時在味道濃度判定值中引入動態調整權重和前一代最優果蠅個體的味道濃度判定值來避免算法發生早熟收斂的現象。文獻[60]為改進果蠅優化算法的尋優能力,提出利用線性遞減的慣性權重因子修正最佳果蠅位置,構建對固溶體的活性產物的預測模型。模擬實驗表明改進后的果蠅優化算法具有更小的回歸誤差,泛化結果更精準。此類改進算法通過改進搜索步長以控制全局搜索和局部搜索的平衡,在一定程度上提高了模型的預測精度和泛化性能,然而使得算法訓練時間變長,系統運行成本增多。
②改進潛在解空間范圍的果蠅優化算法
標準果蠅優化算法的潛在解不能為負數,通過擴大算法潛在解的空間范圍,使其在解空間均勻分布,有利于尋找到更好的解。文獻[61]為提高算法的搜索效率和尋優能力,在味道濃度判定中增加逃逸因子并將果蠅搜索范圍擴大至三維,并應用于預測軸承的剩余壽命。仿真實驗表明該模型取得了良好的預測效果,對實際應用有一定的指導作用。Hu等人[62]提出使用正態分布函數來改進果蠅優化算法的搜索模式,可以提高算法的搜索精度,擴大搜索范圍,并構建對長途產品流水線的預測模型。實驗結果表明該模型的優化速度和預測精度明顯提升。此類改進算法通過改進潛在解的空間范圍,在一定程度上提高了模型的預測精度和泛化性能,卻讓算法的復雜度變高,運行時間變長。
③設計混合果蠅優化算法
混合果蠅優化算法是針對果蠅優化算法的局限性,融合其他算法的優點來彌補缺陷,使得混合果蠅優化算法具備多種算法的優點,以提高混合果蠅優化算法的尋參效率和收斂速度。文獻[63]提出對果蠅群體的位置引入混沌序列化,同時在尋優過程中加入混沌擾動的混合算法,構建對汽車零部件銷售的預測模型。文獻[64]為提高算法的穩定性和搜索精度,采用自適應調整系數更新果蠅位置,設計基于cat mapping的全局混沌擾動機制改善種群的多樣性,并對船舶運行時間進行預測。數值結果表明該模型具有更高的預測精度和效率。文獻[65]為加速搜索過程,利用線性遞減函數調整果蠅優化算法的步長,再將果蠅優化算法和模擬退火算法進行結合優化選取SVR模型最優參數,并對股價進行預測。實驗結果表明算法的預測率更準確。文獻[66]引入免疫思想抗體變異和疫苗接種因子,降低陷入局部最優的可能性,同時引入指數型函數調整迭代步長值,以便獲得全局搜索和局部尋優的兼顧。采用混合算法優化SVR模型參數,實現對風電機組的性能評估。混合果蠅優化算法進一步緩解了SVR參數尋優困難的問題,與此同時帶來了因算法的參數增多導致算法復雜度變高、系統開銷成本增加的問題。
在參數優化中,果蠅優化算法存在各種問題有待探索。通過不斷地改進完善,改進后的果蠅優化算法能夠有效選取到SVR模型參數。
灰狼算法(Grey Wolf Optimizer,GWO)靈感來自對灰狼種群嚴格的社會等級和捕獵行為的研究。Mirjalili等人受這種社會行為的啟發,于2014年提出了灰狼算法[67]。該算法主要是模仿灰狼搜尋獵物、圍捕獵物、攻擊獵物等過程來實現優化搜索的目的。在灰狼算法中,先隨機初始化狼群并按照適應度值劃分出α、β、δ狼和其余的狼,接著α、β、δ搜尋獵物并進行定位,狼群其余的狼受到α、β、δ引導對目標獵物進行圍捕追蹤,最后捕殺獵物,即獲得問題的最優解。
在狩獵過程中,灰狼將獵物包圍起來,其模型如下所示:

其中,t代表當前迭代次數,D為狼群個體與獵物之間的距離,Xp(t)、X(t)分別表示第t次迭代過程中獵物和灰狼的位置,A、C是系數,a是收斂因子,r1、r2是[0,1]范圍內的隨機數,Tmax是最大迭代次數。
當獵物被包圍后,由α、β、δ帶領狼群進行狩獵。每次迭代根據灰狼和獵物之間的距離選擇α、β、δ狼的位置,狼群中其余的狼根據最好的三只灰狼位置對自己位置進行更新,其位置更新如下所示:

其中,Xα、Xβ、Xδ分別是狼目前所處的位置,Dα、Dβ、Dδ表示α、β、δ狼與其余狼之間的距離,X1、X2、X3表示其余狼向α、β、δ狼方向的更新步長,X(t+1)表示灰狼群體其余狼所處位置。
最后,灰狼群體通過A的值來判斷是否實現攻擊行為來捕殺獵物。當A≤1時,灰狼群體向獵物發起攻擊行為;當A>1時,灰狼群體進行分散搜索尋找更好的獵物。
灰狼算法是一種全局并行處理的迭代尋優算法,在兼顧有效性和準確性的同時具有結構簡單、控制參數少、容易實現及魯棒性強等特點,目前在圖像分割[68]、優化問題[69]、車間調度[70]、電力負荷[71]等相關領域得到了廣泛的應用。作為新型的啟發式算法,灰狼算法蘊藏著巨大的潛力,在參數優化方面也展現出卓越的性能,其在優化SVR模型參數領域的應用大致可分為兩大類別,概述如下:
(1)采用標準灰狼算法對SVR模型參數進行優化選取。文獻[72]采用灰狼算法對SVR的參數進行優化求解,并將模型應用于對水稻霉菌菌落的無損檢測。實驗結果表明該模型具有較好的預測精度和更高的穩定性。Sun等人[73]為提高模型的預測精度和泛化性能,采用灰狼優化算法對SVR參數進行優化,構建對綠茶水分的檢測模型。文獻[74]構建灰狼算法優化參數的SVR模型,對電力負荷值進行預測。文獻[75]采用灰狼算法優化SVR模型參數,用于預測爆炸引起的巖石運動的分布規律。統計分析表明該模型比人工神經網絡、隨機森林模型更準確,運行時間更少。文獻[76]采用灰狼算法優化SVR模型參數,用于對阿爾利亞測量站每月流量數據進行測試。實驗表明該模型在預測凈賺性和收斂性方面均優于其他算法。標準灰狼算法緩解了SVR參數選取困難的問題,在一定程度上提升了模型的性能,然而標準灰狼算法在參數尋優過程中存在易陷入局部最優、局部搜索能力差、尋優精度不高等缺陷。
(2)利用灰狼算法的改進算法實現對SVR參數尋優求解。針對灰狼算法在參數優化領域存在的缺陷,目前灰狼算法的改進策略主要有:
①改進灰狼算法的參數
灰狼算法的參數對算法的收斂效率和尋優精度有直接的影響,改進參數控制狼群的步長,從而平衡算法的勘探和開發能力。文獻[77]為有效提高算法的搜索能力,提出采用指數型函數修正收斂因子,同時按照狼適應度值比例更新權重因子,達到提高局部搜索和全局搜索能力的目的,并創建對短期電力負載的預測模型。實驗表明該方法對于預測是可行且有效的,與反向傳播人工神經網絡相比,其準確性和魯棒性更好。查艷芳[78]為避免算法陷入早熟收斂,引入指數型函數控制收斂因子和按照動態比例更新權重的改進灰狼算法,對SVR參數進行優化并預測武漢市PM2.5濃度值。與標準灰狼算法進行比較,改進后的灰狼算法實驗結果具有預測精度高、穩定性好、收斂速度快的特點。改進灰狼算法的參數在一定程度上提升了算法的收斂速度和穩定性,但也增加了算法的運行時間成本。
②改進搜索機制的灰狼算法
灰狼算法中的參數有效地制約著探勘和開發能力,改進算法的搜索機制能減少算法陷入局部最優的可能性,有助于找到更好的解。文獻[79]提出在每次迭代過程中將灰狼個體搜索范圍擴大至整個解空間而非限制在某個局部的搜索空間內,使算法可以跳出局部最優解得到全局最優解。王穎等人[80]提出云模型的正態函數改進收斂因子,以便控制算法勘探和開發的平衡;對灰狼頭狼更新采用二次插值算法以提升局部搜索能力,避免頭狼的適應度值趨于一致,對其他個體采用綜合適應度和步長距離來調整權重;為了避免算法發生早熟收斂,采用混沌映射擴大算法的搜索范圍,構建對采油速度的預測模型。實驗結果表明改進后的算法能有效選取模型的參數,從而提高模型的預測準確率和穩定性。改進灰狼算法的復雜度變高,系統運行成本增多,訓練時間變長。
③設計混合灰狼算法
混合灰狼算法是針對灰狼算法的局限性,融合其他算法的優點來彌補缺陷,使得混合灰狼算法具備多種算法的優點,以達到提高混合灰狼算法尋參性能的目的。文獻[81-82]基于灰狼算法和差分進化算法各自搜索機理的不足,提出一種差分進化和灰狼算法結合的混合算法。在迭代過程中引入差分進化算法中的變異因子和交叉概率因子,以期達到加強全局搜索能力的同時避免發生早熟收斂現象的目的;利用灰狼算法全局最優的搜索能力來確?;旌纤惴ǖ氖諗啃?,從而實現對SVR模型參數的優化求解。文獻[83]通過差分進化的變異選擇操作來豐富灰狼初始種群的多樣性,避免搜索空間過于密集;為增加后期種群的多樣性和避免算法發生早熟收斂現象,在迭代過程中對灰狼種群進行交叉選擇操作。而文獻[84]選擇β、δ狼作為父代計算向量差,對其縮放后與α狼進行差分進化算法的變異操作,從而使算法具有更高的搜索精度和效率。文獻[85]在融合差分進化算法的基礎上,將系數C隨迭代次數不斷地修正,從而控制局部和全局搜索平衡,改善灰狼算法的搜索能力和收斂性。文獻[86]采用混沌Tent映射策略初始化種群及在搜索機制中融合差分進化來改進種群多樣性和避免算法誤收斂的現象。文獻[87]基于灰狼算法和禿鷲搜索算法的特點,提出將二者的優點結合的混合算法來對SVR模型參數進行尋優求解,進而應用于對交通流量進行預測。實驗結果顯示SVR模型的預測精度有所提升且具有較高的可信性?;旌匣依撬惴ㄍ瑫r具備多種算法的優點,進一步克服灰狼算法在優化SVR參數中存在的缺陷,與此同時也使得算法的復雜度變高,運行時間變長。
灰狼算法是一種等級制度嚴格的隨機搜索算法,其在組合優化領域中仍然存在一定的問題,通過不斷地研究完善,現已成為一種可行的SVR參數優化方法。
鯨魚算法(Whale Optimization Algorithm,WOA)是一種根據自然界座頭鯨獨特的氣泡網捕食行為推演出來的全局搜索算法,最早由Mirjalili等人于2016年提出[88]。該算法通過模擬鯨魚收縮包圍、螺旋更新狩獵、搜索獵物來實現優化搜索的目的。鯨魚先在空間中搜索獵物并獲得相關信息,再不斷地包圍和螺旋靠近獵物,直到找到獵物為止。
在鯨魚算法中,鯨魚察覺到獵物時會向著最優鯨魚個體的方向游去,并且識別獵物的位置將其包圍,其包圍獵物的數學模型如下所示:

其中,t是當前迭代次數,X?(t)、X(t)分別為第t次迭代中獵物和鯨魚的位置,A、C是系數向量,計算公式如下所示:

其中,a是控制參數,r1、r2是[0,1]范圍內的隨機數,Tmax是最大迭代次數。
當鯨魚獲得獵物的位置信息后,以獵物位置為中心不斷地螺旋逼近獵物。為實現包圍和螺旋逼近獵物的目的,以概率p為標準評判的鯨魚是收縮包圍還是螺旋更新位置。當p<0.5時執行包圍收縮方式;當p≥0.5時執行螺旋更新方式,其數學模型如式(25)所示:

其中,Dp=X?(t)-X(t),b為常數,l是[-1,1]范圍內的隨機數。
鯨魚算法以A的大小為依據來判斷是否執行隨機搜索獵物。當A<1時,執行包圍獵物的方式;當A≥1時,鯨魚無法獲得有效線索,為獲得獵物有效信息,采用的是隨機搜索獵物:

其中,Xrand為隨機選擇的鯨魚個體位置。
鯨魚算法是一種全局尋優搜索的啟發式算法,在優化參數過程中具有操作簡潔、結構簡單易實現、可調參數少等特點,目前已成功應用于物流配送選址[89]、圖像分割[90]、故障診斷[91]、路徑規劃[92]等相關領域。鯨魚算法雖然是一種新興的群智能算法,但是在參數優化領域也取得了不錯的研究成果,其在優化SVR參數方面的研究應用大致可分為兩大類別,概述如下:
(1)利用標準鯨魚算法實現SVR模型參數優化選取。文獻[93]提出鯨魚算法優化SVR的參數,同時引入移動窗口技術進行預測。實驗表明模型縮短了計算時間,預測精度也明顯提高。Osama等人[94]提出鯨魚算法優化SVR模型參數,并應用于對氣象監測中心日平均風速數據進行預測。實驗結果表明鯨魚算法能夠找到SVR參數的最優值,提升模型的泛化性能。文獻[95]采用鯨魚算法優化SVR參數,用于對港口集裝箱吞吐量月度數據進行預測。結果表明混合模型的預測精度和泛化性能明顯提高。文獻[96]采用鯨魚優化算法對SVR模型參數進行優化,并應用到客戶關系管理評價中,對比遺傳算法、差分進化算法和粒子群算法。研究表明模型的預測精度更好,可信性更高。文獻[97]采用鯨魚算法優化SVR模型,用于對短期電力負荷進行預測。實驗表明該模型可以有效地分解負載。標準鯨魚算法在一定程度上提升了SVR模型的預測精度和泛化性能,但是鯨魚算法在參數優化過程中存在易早熟收斂、搜索精度低、收斂速度慢、易陷入局部最優值的問題。
(2)利用鯨魚算法的改進算法實現對SVR參數尋優求解。針對鯨魚算法存在的局限性,諸多學者對此進行探索研究,提出眾多改進策略來提高算法的尋參效率和精度,改進策略主要有:
①改進鯨魚算法的參數
鯨魚算法的搜索機制主要是由參數進行控制的,通過改進參數來平衡算法的勘探和開發搜索能力。文獻[98]引入余弦變化的非線性因子以及利用對數形式更新權重因子與隨機差分變異策略,從而達到增強算法的全局搜索與局部開發協調性能,避免算法發生早熟收斂現象的目的。實驗表明模型的預測精度和泛化性能明顯提升。改進鯨魚算法的搜索機制在一定程度上提升了模型的性能,卻也讓算法的計算成本變高,訓練時間變長。
②設計混合鯨魚算法
混合鯨魚算法是將鯨魚算法與其他算法進行結合,取長補短,使得混合鯨魚算法具備多種算法的優點,以期達到提高算法的尋參效率和收斂速度的目的。黃元春等人[99]提出基于改進的鯨魚算法:為達到均勻分布種群,避免初始種群過于聚集的目的,引入偽反向學習策略;為改善算法跳出局部最優的能力,引入高斯-柯西變異策略;對收斂因子利用非線性函數進行調整和自適應權重變化,平衡算法的全局探索性能和局部開發性能。對工業中低壓斷路器的預測實驗表明,改進算法優化的SVR模型不僅有更高的預測精度,還具備較強的魯棒性。Wang等人[100]采用對立學習策略來混合原始種群及其對立個體,選擇最佳種群作為新種群,降低初始種群對算法性能的影響;采用余弦定律變化的自適應權重和收斂因子來控制算法的全局探索和局部開發的平衡,提高收斂精度。構建對照明校正的預測模型,該模型在顯著性分析方面優于其他模型?;旌霄L魚算法進一步克服了鯨魚算法在優化SVR參數中存在的缺陷,與此同時也帶來了算法復雜度變高、時間復雜度更高、運行成本增加等問題。
作為一種新興的群智能算法,鯨魚算法的理論還不夠成熟,有待研究改進。鯨魚算法及其改進算法在SVR參數優化領域中的應用還比較少,但相較于傳統方法其優化效果有一定的改善。
除以上列舉的群智能算法,國內外學者還提出很多群智能算法用于優化求解SVR模型的參數。每種算法都存在自身的優缺點,傳統SVR參數優化方法及上述所提出的五種群智能算法在參數優化方面性能總結如表1所示。

表1 SVR參數方法性能比較Table 1 Performance comparison of parameter methods for SVR
傳統SVR參數優化方法主要有交叉驗證法、網格搜索法和梯度下降法。交叉驗證法在優化SVR參數中具有較穩定的優勢,卻存在計算量巨大、難以實現三個以上參數尋優的缺陷,通常與其他算法進行結合來優化SVR參數。梯度下降法是從理論角度構造優化函數來實現SVR參數尋優,收斂速度較快,但依賴初始值且要求目標函數對參數可微。網格搜索法根據測試誤差值來修正參數,具有較強的并行搜索能力,倘若參數個數較多或參數的取值范圍較大,則該算法的計算成本較高,計算時間較長。
群智能算法是在參數空間中使用不同的搜索方法以測試誤差值為依據調整搜索空間實現尋優求解,它雖緩解了SVR參數選擇的困難,提升了模型的性能,但在優化SVR參數領域中普遍存在的缺陷就是易發生早熟收斂現象和陷入局部最優。此外各個算法還存在基于算法本身的不足之處,例如:粒子群算法的尋優精度較高卻在后期的收斂速度緩慢;蝙蝠算法的搜索速度快但尋優精度不高;果蠅優化算法結構簡單易實現卻不能解決最優值為負數的問題,且對極值點不在零點的優化問題表現不夠好。各種算法的改進算法都是針對算法本身存在的局限性,雖提升了算法的優化效率,但不可避免地帶來其他問題。例如改進搜索機制的灰狼算法的運行時間變長,時間復雜度更高;混合鯨魚算法因參數個數增多導致系統開銷增加,時間復雜度更高。
本文主要敘述了幾種群智能算法優化SVR模型參數的研究成果。SVR模型雖具備完善的理論基礎,但是卻存在參數選擇困難的問題?,F階段,并沒有一套完善的理論指導體系實現SVR模型參數的尋優求解。群智能算法因具有靈活性、簡單易實現、魯棒性的特點,被成功地應用到SVR模型參數優化領域,以期達到提升SVR模型泛化性能的目的。然而在大數據時代,數據具有紛繁多樣、規模龐大的特點,利用群智能算法優化支持向量回歸機模型對于這類樣本數據的處理結果并不理想。近些年,許多學者提出SVR的衍生算法[101-103]來提升SVR的性能,降低系統開銷,但其性能與參數選取有很大關聯。目前看來,在大數據時代基于群智能算法優化SVR參數來實現提升模型的性能還存在一些有待解決的問題,結合群智能算法和SVR的研究現狀,可以從以下三方面進行改進:
(1)通過加強群智能算法的數學理論來提升模型的性能。群智能算法是量化生物群體行為規律而形成的數學模型,因此沒有完善的數學理論基礎進行支撐。這導致群智能算法沒有統一確切的理論依據設置參數,在處理實際問題中依據經驗來確定,可能存在人為因素的誤差,同時導致其不具備絕對的可信性問題。因此未來需加強算法的數學分析,對算法的數學模型加強相關的數學推導和證明,使得算法的機制更成熟,以期達到提升算法的性能和效率的目的。
(2)通過多核學習[104-106]來提升其性能。當樣本數據含有異構信息、數據規模龐大、數據分布不規則等特點時,單核支持向量回歸機容易造成樣本數據信息保留不完整,故其預測性能也不理想。因此采用多個基核函數的最優線性凸組合形式的多核學習模型應時而生。這不可避免地帶來了多核學習模型參數優化難題,且目前沒有明確的理論依據來指導多核學習模型參數的優化問題。在未來的研究中,需要深入研究出一種高效且穩定的算法來解決多核學習模型的優化難題,從而提升模型的性能。
(3)通過改進的群智能算法來提升模型的性能。群智能算法是一種有效的非線性參數優化方法,然而在參數優化過程中容易陷入局部最優值和發生早熟收斂現象,其收斂性和穩定性也有待改善,且目前仍無明確的依據來判斷算法是否跳出局部最優值。群智能算法的改進策略很多,但均未很好地解決這些問題。大多改進策略未同時考慮算法的尋參精度與收斂性。針對群智能算法的研究現狀,可以從以下三方面來緩解這些問題:一是根據現有算法的局限性進行改進,比如參數的設置、種群多樣性、算法的搜索機制等,來提高算法的尋參效率和性能。例如改進麻雀算法[107]的種群多樣性來提高算法的收斂速度和尋參精度。二是設計混合算法,考慮算法的特性,充分取長補短,將群智能算法與多種算法進行融合。比如將群智能算法與人體自身免疫機制、種群自適應、和聲搜索算法等進行混合。此外要注重算法的系統運行成本,讓算法具備普適性。運行成本是衡量算法優劣的重要指標,目前解決混合算法運行成本過高的手段主要有并行搜索、嵌入式融合等[108-109]。并行搜索是通過提升算法的搜索效率達到降低算法運行成本的目的;嵌入式融合提升算法的收斂速度以便更快找到最優解,從而降低運行成本。三是設計高效的新算法。現階段的群智能算法主要是觀察研究低等生物個體通過某種生物特定的方式協作完成復雜的群體行為而獲得靈感提出的,因此在未來的研究中可以探索深究高等生物群體社會性的行為規律,從中獲得新的啟發。