詹煜 吳冠辰
摘 要 大多數(shù)機器學(xué)習(xí)都是使用梯度下降法來對損失函數(shù)進行優(yōu)化的。但梯度下降也要求損失函數(shù)必須是凸函數(shù),對于損失函數(shù)為非凸函數(shù)的情形優(yōu)化能力有限。群體智能算法是對非凸函數(shù)的優(yōu)化有較好的效果。文章嘗試與群體智能算法代替梯度下降,來對凸損失函數(shù)進行優(yōu)化,并在常見的數(shù)據(jù)集上取得了與梯度下降相似的效果。
關(guān)鍵詞 機器學(xué)習(xí);優(yōu)化;梯度下降;群體智能算法
中圖分類號 TP2 文獻標識碼 A 文章編號 1674-6708(2018)218-0115-02
隨著信息技術(shù)的普及,越來越多的領(lǐng)域發(fā)揮著重要的效果,大多數(shù)的機器學(xué)習(xí)算法都是通過對某個參數(shù)進行優(yōu)化,以使損失函數(shù)最小或最大化,目前機器學(xué)習(xí)領(lǐng)域常用的優(yōu)化算法有梯度下降法[ 1 ],共軛梯度法,Momentum算法[ 2 ]及其變體adam等,目前應(yīng)用最多的是梯度下降法,但以上優(yōu)化算法,針對的損失函數(shù)都是凸函數(shù),而群體智能算法,可以很好地應(yīng)對非凸函數(shù)的優(yōu)化,因此本文試圖用群體智能算法代替梯度下降,對損失函數(shù)進行優(yōu)化,以便未來適應(yīng)于凸或非凸損失函數(shù)的優(yōu)化問題。本文第一節(jié)簡要介紹凸函數(shù)與梯度下降,第二節(jié)簡要介紹了群體智能算法,第三節(jié)設(shè)計實驗,并分析實驗結(jié)果。
梯度下降是迭代法的一種,其計算過程就是沿梯度下降的方向求解極小值(也可以沿梯度上升方向求解極大值)。在損失函數(shù)是凸函數(shù)的情況下,梯度下降能收斂到全局最小值。但是應(yīng)用于非凸函數(shù)時,梯度下降很容易陷入局部最小值,而無法獲得全局最小值。梯度下降應(yīng)用于凸函數(shù)的示例如圖1所示。梯度下降應(yīng)用于非凸函數(shù)的示例如圖2所示。
圖1中凸函數(shù)所標識的點(Global?minimum),是通過梯度下降能獲得的全局最小值。同時,可以看到函數(shù)上兩點的連線(圖中虛線所示)會處在圖像的下方,因此圖1也是一個典型的凸函數(shù)的圖像。
從圖2中可以看出,非凸函數(shù)會存在局部最小值(Local?minimum),梯度下降法會有陷于局部最小值的可能而無法獲取全局最小值。同時,可以看到函數(shù)上兩點的連線(圖中虛線所示)會處在圖像的下方,因此圖2也是一個典型的非凸函數(shù)的圖像。
2 群體智能算法
群體智能算法[4]的算法起源于人類對自然界群居生物(如魚群、螞蟻、蜜蜂、獅群等)的觀察和研究,分析這些生物群體所表現(xiàn)出來的智能模式,并將這些智能模式抽象為算法。群體只能算法的表現(xiàn)是需要相當是數(shù)量的種群“個體”,來實現(xiàn)對某個問題的求解需要。由于“群體”具有分布式、自組織、協(xié)作性等特點,因此群體智能算法的魯棒性較好,實現(xiàn)也比較簡單,常被用于優(yōu)化領(lǐng)域。常見的群體算法有蟻群算法、人工魚群算法、人工蜂群算法、粒子群算法等。
3 實驗設(shè)計及結(jié)果分析
由于群體智能算法常被用于優(yōu)化領(lǐng)域,因此本文考慮將群體智能算法代替梯度下降,對機器學(xué)習(xí)的損失函數(shù)進行優(yōu)化。由于群體智能算法較多,本文選取人工魚群算法來進行相應(yīng)的對比。
人工魚群算法[ 5 ]是李曉磊等人提出,該算法模擬魚群的覓食聚集行為實現(xiàn)尋找全局最優(yōu)。該算法中給魚群定義了的三大基本行動方式:即覓食、聚群和追尾。通過魚群中各個體的局部尋優(yōu),通過追尾和聚群行為,最終獲得全局最優(yōu)值。人工魚群算法的實現(xiàn)步驟為:
1)全局初始化:?包括種群規(guī)模、個體的初始位置、個體的搜索范圍(視野),個體的移動步長、子集擁擠程度、迭代次數(shù)(即終止條件);
2)計算個體的適應(yīng)值,將最優(yōu)個體的狀態(tài)進行公告;
3)對每個個體進行評價,根據(jù)評價,確認個體下一步的行動,包括覓食、聚群、追尾和隨機行為;
4)執(zhí)行個體行動,并在行動后更新個性的相應(yīng)指標,并生成新魚群;
5)評價所有個體。若某個個體狀態(tài)優(yōu)于公告狀態(tài),則將該個體的狀態(tài)更新為公告狀態(tài);
6)當公告狀態(tài)達到最優(yōu)解或滿足相應(yīng)誤差精度或算法達到迭代次數(shù)上限時算法結(jié)束,否則轉(zhuǎn)步驟3。
試驗采用機器學(xué)習(xí)中常用的Iris數(shù)據(jù)集進行測試,實驗?zāi)康氖菍⑷斯~群算法與SGD(隨機梯度下降)在分類及回歸任務(wù)上進行對比。評價指標是準確率,在SGD算法中根據(jù)采用數(shù)據(jù)集的不同;訓(xùn)練集、驗證集、測試集的隨機劃分;是否采用交叉驗證;超參數(shù)設(shè)定的不同等方面的因素,在試驗中會產(chǎn)生不同結(jié)果。而在人工魚群算法中,根據(jù)種群數(shù)量、迭代次數(shù)等設(shè)定的不同,也會對實驗結(jié)果有所影響。實驗中的人工魚群算法設(shè)定種群數(shù)量為60,迭代次數(shù)上限為500次。實驗結(jié)果如表1所示。
從實驗結(jié)果中看,群體智能算法在機器學(xué)習(xí)中的性能相比SGD還是有一定的欠缺,但是其差距也在可接受的范圍內(nèi)(≤5%)。但是群體智能算法可以應(yīng)對于損失函數(shù)是非凸函數(shù)的情形,因此將群體智能算法應(yīng)用于非凸損失函數(shù)中是下一步的研究方向。
參考文獻
[1]陳振宏,蘭艷艷,郭嘉豐,等.基于差異合并的分布式隨機梯度下降算法[J].計算機學(xué)報,2015,38(10):2054-2063.
[2]歐世峰,高穎,趙曉暉.基于隨機梯度的變動量因子自適應(yīng)白化算法[J].自動化學(xué)報,2012,38(8):1370-1374.
[3]Stephen Boyd.Convex Optimization[M].北京:清華大學(xué)出版社,2013,61-167.
[4]余建平,周新民,陳明.群體智能典型算法研究綜述[J].計算機工程與應(yīng)用,2010,46(25):1-4,74.
[5]馬憲民,劉妮.自適應(yīng)視野的人工魚群算法求解最短路徑問題[J].通信學(xué)報,2014,35(1):1-6.