神经结构搜索资料NAS
神經(jīng)結(jié)構(gòu)進(jìn)化搜索資料
近年來, 深度神經(jīng)網(wǎng)絡(luò) (DNNs) 在許多人工智能任務(wù)中取得卓越表現(xiàn),然而網(wǎng)絡(luò)設(shè)計(jì)嚴(yán)重依賴專家知識,這是一個(gè)耗時(shí)且易出錯(cuò)的工作。于是, 作為自動化機(jī)器學(xué)習(xí) (AutoML) 的重要子領(lǐng)域之一, 神經(jīng)結(jié)構(gòu)搜索 (NAS) 受到越來越多的關(guān)注, 旨在以自動化的方式設(shè)計(jì)表現(xiàn)優(yōu)異的深度神經(jīng)網(wǎng)絡(luò)模型。[1]
目前主要的神經(jīng)架構(gòu)搜索可以分為以下三種,如下表1所示[2](以下是對參考文獻(xiàn)二的整理)
表1
| 神經(jīng)架構(gòu)搜索算法 | 特點(diǎn) |
| 強(qiáng)化學(xué)習(xí)(RL) | 需要數(shù)千個(gè)GPU工作好幾天才能夠完成預(yù)期的效果,例如CIFAR-10圖像分類數(shù)據(jù)集,顯示很難廣泛應(yīng)用。 |
| 基于梯度NAS算法 | 相比于強(qiáng)化學(xué)習(xí),更加有效率,但是由于優(yōu)化器的選擇可能會導(dǎo)致病態(tài),并且需要專家知識 |
| 基于演化計(jì)算的NAS算法 成為ENAS算法 | 廣泛應(yīng)用于解決非凸優(yōu)化問題,甚至目標(biāo)函數(shù)數(shù)學(xué)表達(dá)式未知的問題。 |
EC(Evolutionary Computation)是一種基于種群演化的算法,模擬物種或行為的進(jìn)化
對自然界中的種群進(jìn)行優(yōu)化,以解決具有挑戰(zhàn)性的優(yōu)化問題。ENAS是通過EC來搜索最優(yōu)DNN架構(gòu)的過程,ENAS算法根據(jù)其他搜索策略可以進(jìn)一步劃分,如下圖1所示,進(jìn)化計(jì)算技術(shù)中根據(jù)優(yōu)化方法采用的搜索策略,可以分為進(jìn)化算法(evolution algorithm),群體智能(swarm intelligence)和其他方法。目前論文研究中進(jìn)化算法占絕大多數(shù),進(jìn)一步遺傳算法(GA)又占一大部分,遺傳編程(GP)和進(jìn)化策略(ES)均屬于進(jìn)化算法。群體智能算法中又包括粒子群優(yōu)化方法(PSO)和蟻群算法(ACO)。同時(shí),在其他分類中也存在差分進(jìn)化(DE),螢火蟲算法(FA)等,算法具體介紹可參考論文
圖 1
?
ENAS算法的具體流程圖如下圖2所示。首先群體初始化,確定編碼策略,從初始空間中構(gòu)建個(gè)體,然后評估個(gè)體適應(yīng)度。初始化完成后,進(jìn)入群體進(jìn)化階段,從初始化群體中隨機(jī)選擇個(gè)體作為父代。根據(jù)搜索空間,進(jìn)行交叉、變異等進(jìn)化操作,對生成的個(gè)體評估其適應(yīng)度。根據(jù)群體更新策略,選擇保留的個(gè)體,加入到群體中,直到滿足條件,返回最優(yōu)的個(gè)體。上面算法主要涉及搜索空間的設(shè)計(jì),編碼,群體更新策略,以及評估加速方法。
?
圖2
以下將會分開具體介紹ENAS算法流程圖中的每一部分
搜索空間包含組成有效個(gè)體的基本單元以及所有候選參數(shù),根據(jù)搜索空間中基本單元的不同,大致分為三類,layer-based,block-based和cell-based搜索空間,此外,有些算法沒有考慮基本單元內(nèi)部參數(shù),而是關(guān)心單元間的連接,這樣的搜索空間稱作topology-based空間。同時(shí),搜索空間中的約束也是非常重要的,這表示人參與的程度。較多的約束可以得到較好的結(jié)構(gòu),但阻止了任何不在約束中的新結(jié)構(gòu)。另外,不同大小的搜索空間也會影響搜索效率。(具體見論文5、6頁)。
當(dāng)前,搜索空間主要關(guān)注三方面,固定深度,豐富的初始化以及部分固定結(jié)構(gòu)。固定深度表明群體中的所有個(gè)體結(jié)構(gòu)有著相同的深度。豐富的初始化表示結(jié)構(gòu)具有良好的設(shè)計(jì),通常是人工設(shè)計(jì)的。部分固定結(jié)構(gòu)意味著網(wǎng)絡(luò)結(jié)構(gòu)中有部分是確定的。相對較少的約束表明沒有前面三個(gè)方面要求的較強(qiáng)的約束。
一般而言,初始化以及進(jìn)化過程中的搜索空間是相同的,有時(shí)初始化時(shí)會加入一些人為約束,使得進(jìn)化過程的搜索空間將大于初始化的搜索空間。
每種ENAS方法在開始第一個(gè)階段之前,需要確定如何將網(wǎng)絡(luò)編碼成個(gè)體。一般根據(jù)進(jìn)化過程中個(gè)體長度是否變化,將編碼策略分為固定長度編碼以及可變長度編碼。使用固定長度編碼,在進(jìn)化過程中個(gè)體擁有相同的長度。但是,需要定義一個(gè)合適的最大長度,因?yàn)檫@關(guān)系到網(wǎng)絡(luò)結(jié)構(gòu)的最優(yōu)深度,但這依賴一定的專業(yè)知識以及經(jīng)驗(yàn)。可變長度編碼包含結(jié)構(gòu)的更多細(xì)節(jié)以及更自由的表示,當(dāng)面臨一個(gè)新問題時(shí),可以隨機(jī)設(shè)置編碼長度。(具體參考論文第6、7頁)。
通常現(xiàn)有ENAS算法中不同進(jìn)化計(jì)算方法的更新機(jī)制不同,導(dǎo)致群體更新策略也各不相同。當(dāng)前的ENAS研究中,EA-based算法占大多數(shù),而GA-based是最受歡迎的方法。具體算法如下表二所示,(參考論文8、9頁)
表二
| 群體更新算法 | 具體算法 | 算法簡介 | ||
| 進(jìn)化算法 | Elitism | 精英主義方法會保留最高適應(yīng)度的個(gè)體,但這種方法容易損失種群多樣性,導(dǎo)致種群落入局部最優(yōu) | ||
| Discard the worst or the oldest | 丟棄最壞的個(gè)體與精英主義相似,從種群中移除最低適應(yīng)度的個(gè)體。也有選擇丟棄種群中最老的個(gè)體,這種方法可以更多的探索搜索空間不用過早的選擇好模型 | |||
| roulette wheel selection | 輪轉(zhuǎn)法會根據(jù)群體中個(gè)體的適應(yīng)度分配一個(gè)概率,無論好壞,將決定個(gè)體是否存活(或被丟棄) | |||
| tournament selection | 錦標(biāo)賽選擇法從等概率采樣的個(gè)體中選擇最好的一個(gè) | |||
| Others | 在一些論文中,強(qiáng)調(diào)基因比存活個(gè)體更重要,基因可以表示結(jié)構(gòu)中的任何成分。 | |||
| 群體智能 | 粒子群優(yōu)化(PSO) | 啟發(fā)來自魚群,利用群體中的個(gè)體對信息的共享使整個(gè)群體的運(yùn)動再問題求解空間中產(chǎn)生從無序到有序的演化過程,從而獲得最優(yōu)解 | ||
| 蟻群算法(ACO) | 由自然界中螞蟻覓食的行為而啟發(fā),每個(gè)螞蟻根據(jù)信息素的指導(dǎo)從一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)構(gòu)建出一個(gè)結(jié)構(gòu),每代更新信息素,從而吸引下一代螞蟻進(jìn)行探索,由于信息素是逐漸衰減的,這也鼓勵(lì)其他螞蟻探索其他區(qū)域。最終得到一個(gè)最優(yōu)結(jié)構(gòu)。 | |||
| 其他方法 | 進(jìn)化差分(DE) | 首先,產(chǎn)生足量的隨機(jī)變量,作為初始的可能解。接著進(jìn)行突變、交叉、選擇計(jì)算,一輪后,檢查是否滿足終止條件,若未滿足,則重新突變、交叉、選擇計(jì)算,最終輸出最后一輪的最佳解 | ||
| 螢火蟲算法(FA) | 是一種模仿螢火蟲之間信息交流,相互吸引集合,算法中,每個(gè)螢火蟲的位置代表了一個(gè)待求問題的可行解,而螢火蟲的亮度表示該螢火蟲位置的適應(yīng)度,亮度越高的螢火蟲個(gè)體在解空間中的位置越好 | |||
| 爬山算法(HCA) | 是一種局部搜索算法,再增加高度的方向上連續(xù)移動,以找到山峰或最佳解決問題的方法。再達(dá)到峰值時(shí)終止,其中沒有鄰居具有更高的值 | |||
| Coronavirus optimization algorithm(CVOA) | 通過模擬病毒傳播以及感染健康個(gè)體從而發(fā)現(xiàn)最優(yōu)結(jié)構(gòu) | |||
4、評估加速
在進(jìn)化NAS算法中,通常網(wǎng)絡(luò)評估過程是最耗費(fèi)時(shí)間的。幾乎所有的方法評估個(gè)體,首先要進(jìn)行訓(xùn)練,然后在驗(yàn)證集/測試集上評估效果。由于結(jié)構(gòu)正變得越來越復(fù)雜,訓(xùn)練每一個(gè)結(jié)構(gòu)要花費(fèi)大量時(shí)間使其收斂。因此,有了各種不同的方法來縮短評估時(shí)間,減少計(jì)算資源消耗。常見的加速評估過程的方法有權(quán)重繼承,早停,減小訓(xùn)練集,以及群體記憶,如下表3所示。
表3
| 評估加速算法 | 簡介 |
| 權(quán)重繼承 | 因?yàn)檫M(jìn)化操作不會完全打破個(gè)體結(jié)構(gòu),新生成的個(gè)體的一些結(jié)構(gòu)和它們父代相同。因而相同部分的權(quán)重可以很容易的繼承過來。由于權(quán)重繼承,不需要再從頭訓(xùn)練網(wǎng)絡(luò)。 |
| 早停策略 | 早停策略已被廣泛用于NAS方法中,最簡單的方式是設(shè)置一個(gè)固定且相對較小的訓(xùn)練epoch。但是,早停策略也導(dǎo)致評估個(gè)體表現(xiàn)不準(zhǔn)確,特別對于大型,復(fù)雜結(jié)構(gòu) |
| 減少訓(xùn)練集 | 使用與大數(shù)據(jù)集相似特性的數(shù)據(jù)集子集,可以有效的縮短時(shí)間。一般與遷移學(xué)習(xí)結(jié)合將搜索出的模型遷移到大型數(shù)據(jù)集上 |
| 群體記憶 | 重用群體中前面出現(xiàn)過的結(jié)構(gòu)信息。在基于群體方法,特別是基于遺傳的算法中,會在后代中保留群體內(nèi)表現(xiàn)良好的個(gè)體。有時(shí)下一代個(gè)體直接繼承它們父代所有的結(jié)構(gòu)信息,因此,不需要再重新評估該個(gè)體 |
參考文獻(xiàn)
[1] 李航宇,王楠楠,朱明瑞,楊曦,高新波.神經(jīng)結(jié)構(gòu)搜索的研究進(jìn)展綜述[J].軟件學(xué)報(bào),2022,33(01):129-149.DOI:10.13328/j.cnki.jos.006306.
[2] Liu Y, Sun Y, Xue B, et al. A survey on evolutionary neural architecture search[J]. IEEE Transactions on Neural Networks and Learning Systems, 2021.
總結(jié)
以上是生活随笔為你收集整理的神经结构搜索资料NAS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 若依修改页面数据
- 下一篇: 研发管理05:项目管理经验总结