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