0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NAS:一篇完整講述AutoML整個(gè)流程的綜述

深度學(xué)習(xí)自然語(yǔ)言處理 ? 來(lái)源:深度學(xué)習(xí)自然語(yǔ)言處理 ? 作者:算法碼上來(lái) ? 2020-12-26 09:40 ? 次閱讀

最近看了些NAS的論文,發(fā)現(xiàn)上面這篇綜述寫(xiě)的很不錯(cuò),非常全面,詳細(xì)拜讀了一下。有很多細(xì)節(jié)不是很懂,也沒(méi)空去精讀原論文,但是能夠?qū)Υ笾碌拿}絡(luò)有個(gè)初步的了解。因此簡(jiǎn)單寫(xiě)一下這篇綜述講了些啥,第一次接觸NAS,可能有理解有誤,望指正批評(píng)。

介紹

首先這篇綜述是講AutoML的,不單單是NAS,但是因?yàn)镹AS是AutoML中最最重要的一部分,所以主要篇章還是用來(lái)講NAS了。據(jù)作者所說(shuō),應(yīng)該是第一篇完整講述AutoML整個(gè)流程的綜述。

首先,本文將AutoML劃分成了如下幾個(gè)流程:

054d86a8-4691-11eb-8b86-12bb97331649.png

先是數(shù)據(jù)準(zhǔn)備,然后是特征工程,接著是模型生成,最后就是模型評(píng)估了。其中模型生成又可以分為搜索空間和優(yōu)化方法,搜索空間有傳統(tǒng)的ML模型或者DL模型,優(yōu)化方法又分為超參數(shù)優(yōu)化和結(jié)構(gòu)優(yōu)化。NAS的話(huà)主要就涉及到DL模型的搜索空間定義、結(jié)構(gòu)優(yōu)化和模型評(píng)估策略這三塊。

因?yàn)槲抑饕P(guān)注NAS這塊,所以其他部分就只簡(jiǎn)單介紹一下,不做過(guò)多解讀。

數(shù)據(jù)準(zhǔn)備

05aabbc0-4691-11eb-8b86-12bb97331649.png

看上面這個(gè)圖應(yīng)該很清楚了,數(shù)據(jù)準(zhǔn)備主要分為數(shù)據(jù)收集、數(shù)據(jù)清洗和數(shù)據(jù)增強(qiáng)三個(gè)部分。

數(shù)據(jù)收集

有開(kāi)源的就去下開(kāi)源的,沒(méi)開(kāi)源的就去互聯(lián)網(wǎng)上爬,要是什么都沒(méi)有呢,那就通過(guò)GAN之類(lèi)的技術(shù)來(lái)生成偽數(shù)據(jù),有總比沒(méi)有好嘛。

數(shù)據(jù)清洗

就是清洗數(shù)據(jù)中的噪聲、臟數(shù)據(jù),這一過(guò)程可能需要一些知識(shí)去判斷什么是噪聲。還有一個(gè)研究主題就是如何清洗每天更新的源源不斷的新數(shù)據(jù)。

數(shù)據(jù)增強(qiáng)

05faed34-4691-11eb-8b86-12bb97331649.png

數(shù)據(jù)增強(qiáng)某種程度上也可以被視為數(shù)據(jù)收集的一種工具,因?yàn)樾Ч际且粯拥?,增加了新?shù)據(jù)。但是它的目的有所不同,主要是為了防止模型過(guò)擬合。上圖針對(duì)不同數(shù)據(jù)有很多增強(qiáng)方法,這里就不介紹了。

特征工程

有句話(huà)叫:數(shù)據(jù)和特征決定了機(jī)器學(xué)習(xí)的上界,而模型和算法只是為了去近似這個(gè)上界。主要可以分成三塊,特征選擇、特征構(gòu)建和特征提取。這里也不多介紹了,因?yàn)樵贒L里特征工程用得很少,DL模型可以自己從數(shù)據(jù)中學(xué)出特征,很少需要自己手動(dòng)構(gòu)造特征了。

模型生成

從這塊開(kāi)始進(jìn)入到了NAS的領(lǐng)域。之前說(shuō)了,搜索空間分為ML和DL兩塊,本文只關(guān)注DL,而優(yōu)化方法又分為超參優(yōu)化和網(wǎng)絡(luò)架構(gòu)優(yōu)化,本文也主要只關(guān)注網(wǎng)絡(luò)架構(gòu)優(yōu)化,因?yàn)槌瑓?yōu)化是挑選出最優(yōu)網(wǎng)絡(luò)架構(gòu)之后的事情了,不過(guò)也有工作將NAS用在超參優(yōu)化上的,這個(gè)就不在討論范圍內(nèi)了。

068252a6-4691-11eb-8b86-12bb97331649.png

074062d2-4691-11eb-8b86-12bb97331649.png

上面兩張圖是NAS的一般流程:

首先針對(duì)不同的任務(wù)定義一個(gè)搜索空間,這個(gè)搜索空間就決定了你搜出來(lái)的網(wǎng)絡(luò)架構(gòu)可能長(zhǎng)什么樣子,也決定了你搜出來(lái)的架構(gòu)可能性有多少,當(dāng)然是越大越好,但是帶來(lái)的后果就是搜索速度太慢。

然后在這個(gè)搜索空間里進(jìn)行搜索,采樣出一個(gè)比較好的模型架構(gòu),這里方法就非常多了,最簡(jiǎn)單的就是隨機(jī)搜索,隨機(jī)采樣一個(gè)網(wǎng)絡(luò)架構(gòu)。

最后就是在訓(xùn)練集上評(píng)估你采樣出的架構(gòu)效果,反饋給架構(gòu)優(yōu)化,讓它優(yōu)化,然后繼續(xù)采樣,循環(huán)下去。評(píng)估方法也有很多,最簡(jiǎn)單的就是像正常訓(xùn)練模型那樣完整訓(xùn)練一遍,得到效果,但是這樣太慢了,因此需要其他方法來(lái)加速訓(xùn)練或者估計(jì)效果。

搜索空間

神經(jīng)網(wǎng)絡(luò)可以看作是一個(gè)DAG,而如何定義這個(gè)DAG,其實(shí)你可以用生成圖的方式做加法生成它,也可以做減法,從大圖中抽取出子圖等等,有很多方法。

定義搜索空間需要人類(lèi)知識(shí),這一步目前還不夠Auto,定義的好,生成出來(lái)的架構(gòu)才可能好。而有些工作發(fā)現(xiàn)只要你搜索空間定義的足夠好,隨機(jī)搜索都能達(dá)到和各種架構(gòu)優(yōu)化方法相似的效果,那么NAS將變得毫無(wú)意義,所以這一塊還是挺玄學(xué)的。

整體結(jié)構(gòu)搜索

就是按照DAG的拓?fù)湫?,依次生成出模型架?gòu)出來(lái)。一般來(lái)說(shuō),用一個(gè)RNN來(lái)生成,每生成一個(gè)node,都要預(yù)測(cè)出它的輸入是哪些node(殘差)、作用在它上面的op有哪些。

但是這種方法太慢了,搜索的復(fù)雜度是指數(shù)級(jí)別的,因此在最初的幾篇RL論文里,都用了幾百個(gè)GPU訓(xùn)練了幾十天才搜出來(lái),窮苦人家可搜不起。

cell搜索

這種方式也是借鑒了人類(lèi)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的經(jīng)驗(yàn),像ResNet系列都是將一個(gè)個(gè)cell層層堆疊得到的,因此如果只搜一個(gè)cell,然后將相同的cell堆疊起來(lái)豈不是大大減小了搜索空間。后面的很多工作都是基于cell來(lái)搜索的,比如NASNet。

在NASNet中,cell被分成了兩種,一種是normal cell,它的輸入輸出維度保持相同,另一種是reduction cell,它的結(jié)構(gòu)和normal cell相似,但是輸出的寬度和高度減半,通道數(shù)加倍。

最后搜索出最優(yōu)cell之后,根據(jù)需要堆疊不同層數(shù)的cell就行了,這個(gè)層數(shù)也是人為定義的。但是這里就會(huì)存在一個(gè)訓(xùn)練和評(píng)估不一致的問(wèn)題,一般來(lái)說(shuō),在搜索的時(shí)候,為了減小顯存占用,會(huì)堆疊比較少的層數(shù)去評(píng)估。但是在得到最優(yōu)cell之后,用來(lái)retrain時(shí)會(huì)堆疊比較多的層數(shù),這里就不一定是最優(yōu)解了。也有工作做這方面的優(yōu)化,比如P-DARTS,在搜索階段逐漸增加堆疊的層數(shù)。

07af825c-4691-11eb-8b86-12bb97331649.png

分層搜索

當(dāng)然搜索cell也是存在問(wèn)題的,忽視了整體結(jié)構(gòu)的優(yōu)化,而且每一層的cell相同也不一定最好啊。因此后來(lái)的工作又提出了分層搜索的方法。

比如Auto-deeplab在搜索cell的同時(shí),還搜索了不同層的分辨率,下一層的分辨率可以是一半、不變或兩倍,這一步限制一是為了減小搜索空間,二是為了增加穩(wěn)定性,防止分辨率變化太大。

07fd7c64-4691-11eb-8b86-12bb97331649.png

再如HierNAS,按照層次結(jié)構(gòu)來(lái)搜索網(wǎng)絡(luò)架構(gòu),第一層是一些原子操作,第二層用這些原子操作生成一些比較小的網(wǎng)絡(luò),第三層用第二層的小網(wǎng)絡(luò)再搭建出一個(gè)更大的網(wǎng)絡(luò),依次下去。

0b7060e6-4691-11eb-8b86-12bb97331649.png

再如progressive NAS,為了減小一個(gè)cell里面的搜索空間大小,從一個(gè)cell里面只有一個(gè)block開(kāi)始搜索,每次挑出top-k個(gè)cell,在基礎(chǔ)上衍生出兩個(gè)block,依次下去。評(píng)估性能用的是代理模型直接預(yù)測(cè),不需要真的訓(xùn)練一遍。

再如MnasNet,它將整個(gè)網(wǎng)絡(luò)分為了若干個(gè)cell,每個(gè)cell串行了若干個(gè)block,每個(gè)cell的block數(shù)量可能不同,而單個(gè)cell里面的block結(jié)構(gòu)是相同的,這樣就考慮到了整體的網(wǎng)絡(luò)搜索空間。和堆疊cell不同的是,每個(gè)block的結(jié)構(gòu)比較簡(jiǎn)單,不然的話(huà)整體上搜索復(fù)雜度還是太大了。當(dāng)然這篇主要還是為了做移動(dòng)端部署,因此做了多目標(biāo)NAS,將延時(shí)也考慮到了目標(biāo)函數(shù)中去。

0eab3d12-4691-11eb-8b86-12bb97331649.png

之前的方法還存在一個(gè)問(wèn)題,就是基本都是在小數(shù)據(jù)集上做的搜索評(píng)估,最后將最優(yōu)結(jié)構(gòu)運(yùn)用到大數(shù)據(jù)集上,這就存在不一致性。因此例如ProxylessNAS就直接在大數(shù)據(jù)集上搜索評(píng)估,為了減小顯存消耗,采用BinaryConnect,每次只激活兩個(gè)結(jié)點(diǎn)之間的一條邊。

網(wǎng)絡(luò)態(tài)射

這類(lèi)方法主要思想就是在已經(jīng)訓(xùn)練好的成熟網(wǎng)絡(luò)基礎(chǔ)上增加寬度、深度等等,繼承父網(wǎng)絡(luò)的參數(shù),加速子網(wǎng)絡(luò)的訓(xùn)練。

首先是Net2Net,擴(kuò)展分為兩個(gè)方向,一種是寬度上的,一種是深度上的,不能同時(shí)進(jìn)行。

0ede4572-4691-11eb-8b86-12bb97331649.png

因此后來(lái)就有了網(wǎng)絡(luò)態(tài)射,可以處理任意線(xiàn)性層和非線(xiàn)性層,并且深度和寬度上可以同時(shí)擴(kuò)展。

架構(gòu)優(yōu)化

定義好搜索空間后,就要采用架構(gòu)優(yōu)化算法來(lái)搜索出最優(yōu)的架構(gòu)了。

演化算法

0f1545e0-4691-11eb-8b86-12bb97331649.png

演化算法就是模仿的生物進(jìn)化過(guò)程。首先要對(duì)網(wǎng)絡(luò)架構(gòu)進(jìn)行編碼,方便之后的操作??梢詫D結(jié)構(gòu)編碼為二進(jìn)制串,但是這樣固定長(zhǎng)度不靈活。于是就有了Cartesian genetic programming、Neuro evolution of augmenting topologies、Cellular encoding等各種編碼方法,詳細(xì)就不介紹了。

一般演化算法分為四步:選擇、交叉、變異、替換。

選擇。就是從候選的網(wǎng)絡(luò)架構(gòu)中挑選出適應(yīng)度最高的,一種可以直接挑絕對(duì)值最高的,另一種可以挑相對(duì)值最高的,第三種比較有名的是錦標(biāo)賽選擇算法,也就是放回抽樣,每次等概率隨機(jī)選k個(gè),挑出最好的那一個(gè),進(jìn)入下一代,其余放回,重復(fù)上述操作。

交叉。交叉方式和編碼方式有很大關(guān)系,

變異。上面兩步做完后,有很多方式可以對(duì)個(gè)體進(jìn)行變異,比如隨機(jī)翻轉(zhuǎn)某一位,隨機(jī)增加或者刪除兩層之間的連接等等。

替換。新的個(gè)體加入種群后,舊的個(gè)體要被刪除掉??梢詣h除最久之前的,也可以刪除效果最差的,也有工作一個(gè)都不刪除,只要你內(nèi)存和時(shí)間頂?shù)米 ?/p>

強(qiáng)化學(xué)習(xí)

0f47236c-4691-11eb-8b86-12bb97331649.png

強(qiáng)化學(xué)習(xí)主要思想就是用一個(gè)控制器(一般是RNN)來(lái)生成網(wǎng)絡(luò)架構(gòu),然后評(píng)估得到得分作為反饋更新控制器參數(shù)。有用策略梯度的,也有用Q-learning的,還有用PPO算法的等等。第一篇NAS論文就是用的RL,但是這一類(lèi)方法普遍很費(fèi)卡,一般人玩不起。

梯度下降

0f935c6e-4691-11eb-8b86-12bb97331649.png

前兩種都是在離散空間搜結(jié)構(gòu),梯度下降方法是將離散空間變?yōu)榱诉B續(xù)空間。第一個(gè)提出的是DARTS,在兩個(gè)結(jié)點(diǎn)之間定義了若干種操作,然后做softmax,最后在評(píng)估的時(shí)候取argmax。

這種方法也有不好,比如成倍增加了顯存,本來(lái)一條邊現(xiàn)在需要成倍的計(jì)算量,此外用了代理任務(wù),在小數(shù)據(jù)集上訓(xùn)的層數(shù)比較少,遷移到大數(shù)據(jù)集上層數(shù)又很多。也有解決方法,比如P-DARTS,隨著訓(xùn)練進(jìn)行逐漸加層數(shù),為了減小計(jì)算量,還逐漸減少了每條邊上的操作數(shù)。而GDAS每次只選概率最大的那個(gè)操作邊做前向,反向傳播用gumbel softmax。

兩套參數(shù)聯(lián)合優(yōu)化也是很困難的,DARTS用的是交替優(yōu)化,一次優(yōu)化結(jié)構(gòu)參數(shù),一次優(yōu)化模型權(quán)重。

最后還有個(gè)問(wèn)題,就是搜索后期會(huì)傾向于搜索殘差連接之類(lèi)的操作,這不好。于是DARTS+發(fā)現(xiàn)一個(gè)cell里出現(xiàn)兩個(gè)或以上殘差連接后就直接停止。P-DARTS則是給殘差加了正則化,減小出現(xiàn)的次數(shù)。

代理模型

這一類(lèi)方法(SMBO)使用一個(gè)代理模型來(lái)指導(dǎo)最優(yōu)模型的生成。傳統(tǒng)的方法有貝葉斯優(yōu)化(高斯過(guò)程、隨機(jī)森林、TPE等等),就不詳細(xì)介紹傳統(tǒng)方法了。

也有用神經(jīng)網(wǎng)絡(luò)當(dāng)作代理模型的,比如PNAS、EPNAS、NAO都用一個(gè)LSTM或者M(jìn)LP將離散的結(jié)構(gòu)編碼成連續(xù)的表示,然后預(yù)測(cè)性能,接著找出性能最高的最優(yōu)表示,用解碼器還原出離散的結(jié)構(gòu)。

網(wǎng)格和隨機(jī)搜索

這就是最原始最普通的優(yōu)化方法,比如直接在搜索空間隨機(jī)搜索結(jié)構(gòu),然后評(píng)估,最后取最優(yōu)的就行了。雖說(shuō)隨機(jī)搜索聽(tīng)起來(lái)不大行,但實(shí)際出來(lái)的效果,能和大多數(shù)NAS方法達(dá)到相似效果,還很簡(jiǎn)單。

混合優(yōu)化方法

上面這么多方法混合在一起,可能效果會(huì)更好。演化算法是全局優(yōu)化的,魯棒性很強(qiáng),但是隨機(jī)性有點(diǎn)大,不穩(wěn)定,計(jì)算消耗也大。強(qiáng)化學(xué)習(xí)也是的,訓(xùn)練很不穩(wěn)定。梯度下降方法訓(xùn)練快,但是需要提前定義好超網(wǎng)絡(luò)結(jié)構(gòu),限制了結(jié)構(gòu)的多樣性。

演化算法可以結(jié)合強(qiáng)化學(xué)習(xí)、梯度下降、SMBO,梯度下降也可以結(jié)合SMBO等等,這里就不詳細(xì)介紹了,典型的例子有Evo-NAS、NAO等等。

超參優(yōu)化

這一步其實(shí)是脫離了NAS的,就和一般的超參優(yōu)化一樣,網(wǎng)絡(luò)搜索、隨機(jī)搜索、貝葉斯優(yōu)化、梯度優(yōu)化等等方法,這里不做過(guò)多介紹了。

模型評(píng)估

在模型生成之后,需要對(duì)模型進(jìn)行評(píng)估,然后指導(dǎo)架構(gòu)優(yōu)化模塊生成更好的架構(gòu)。最一般的方法就是從頭開(kāi)始訓(xùn)練到收斂,但是這樣太慢了,一般都要生成個(gè)幾百萬(wàn)以上的架構(gòu)的,訓(xùn)練時(shí)間太久了。

低保真度

可以在評(píng)估時(shí)降低數(shù)據(jù)集的分辨率,降低cell堆疊的層數(shù),使用小數(shù)據(jù)集等等,這樣可以快速得到架構(gòu)的大致效果,但是最后得到的架構(gòu)可能在目標(biāo)數(shù)據(jù)集上不是全局最優(yōu)的。

權(quán)重共享

比如ENAS,可以在多次評(píng)估模型性能時(shí),繼承之前相同node的參數(shù),可以加快收斂速度。網(wǎng)絡(luò)態(tài)射也是用到了權(quán)重共享。

代理模型

直接學(xué)習(xí)一個(gè)預(yù)測(cè)器,輸入是網(wǎng)絡(luò)架構(gòu),輸出是它的性能,當(dāng)然這需要提前先訓(xùn)練一些模型,得到(架構(gòu),性能)的若干數(shù)據(jù),然后才能學(xué)習(xí)出這個(gè)預(yù)測(cè)器,PNAS就是這么干的。當(dāng)然預(yù)測(cè)器的學(xué)習(xí)數(shù)據(jù)肯定不會(huì)多,所以SemiNAS就用半監(jiān)督的方法,利用大量無(wú)標(biāo)注的結(jié)構(gòu)去預(yù)測(cè)出性能,加入到訓(xùn)練集中繼續(xù)優(yōu)化預(yù)測(cè)器。

early stop

可以只訓(xùn)練幾輪,然后根據(jù)前期的學(xué)習(xí)曲線(xiàn)預(yù)測(cè)出最終的性能。

一些討論

效果對(duì)比

0fe84d96-4691-11eb-8b86-12bb97331649.png

103c0a6c-4691-11eb-8b86-12bb97331649.png

可以看出,演化算法和強(qiáng)化學(xué)習(xí)搜索時(shí)間都非常長(zhǎng),除了個(gè)別幾個(gè)用了權(quán)重共享之類(lèi)技巧的。梯度下降方法全部都挺快的,但是整體效果都不如其他幾類(lèi)方法。

其他

從整體流程上來(lái)看,NAS方法還可以分為一階段和兩階段。兩階段是一般做法,第一個(gè)階段就是搜索評(píng)估階段,選出最好的架構(gòu),第二個(gè)階段就是retrain這個(gè)最優(yōu)架構(gòu),在驗(yàn)證集上評(píng)估。而一階段就是只需要訓(xùn)練一次超網(wǎng)絡(luò),聯(lián)合優(yōu)化架構(gòu)參數(shù)和模型權(quán)重,之后不需要再retrain了。比如比較有名的Once-for-all,采用了progressive shrinking算法來(lái)使得子網(wǎng)絡(luò)之間的性能相互不受到影響。

NAS還可以分為one-shot和non-one-shot,one-shot意思就是搜索空間重合的,可以重復(fù)利用之前的參數(shù),比如ENAS、網(wǎng)絡(luò)態(tài)射、ProxylessNAS等都是的。

大多數(shù)NAS都只是把最終的效果當(dāng)作目標(biāo),其實(shí)在移動(dòng)端部署上還要考慮延時(shí)、模型大小、計(jì)算量等目標(biāo),一般都是解帕累托最優(yōu),比如MnasNet考慮到了延時(shí)。

開(kāi)放性問(wèn)題

搜索空間的靈活性

現(xiàn)在的搜索空間基本都還是人為定義的,參考了很多人類(lèi)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的經(jīng)驗(yàn),比如原子操作定義成conv、pooling之類(lèi)的,結(jié)構(gòu)上cell堆疊等等,但是真正的auto應(yīng)該是模型自動(dòng)設(shè)計(jì)網(wǎng)絡(luò)架構(gòu)和原子操作,比如AutoML-Zero就用最基本的原子操作(sin、cos、mean、std等)設(shè)計(jì)出了兩層的神經(jīng)網(wǎng)絡(luò)。這一塊應(yīng)該是今后的一大方向,例如目前工作主要在CV上,而對(duì)于NLP的Transformer模型,搜索空間如何定義的很好?目前工作還寥寥無(wú)幾,看了幾篇也都是堆疊conv,分支結(jié)構(gòu)之類(lèi)的。

探索更多的領(lǐng)域

如上所說(shuō),目前大多數(shù)工作都是在CV上,搜的是conv結(jié)構(gòu),而像NLP、語(yǔ)音等領(lǐng)域探索甚少,像多目標(biāo)領(lǐng)域也只有很少的工作(韓松老師組工作很多),即使是在CV,任務(wù)也大多數(shù)局限在CIFAR-10和ImageNet上。

可解釋性

搜出來(lái)的網(wǎng)絡(luò)為什么好?現(xiàn)在人類(lèi)設(shè)計(jì)的網(wǎng)絡(luò)大多數(shù)都能強(qiáng)行解釋一下好處,即使它仍然是個(gè)黑盒。但是NAS搜出來(lái)的基本看不出設(shè)計(jì)的邏輯。

可復(fù)現(xiàn)

之前也說(shuō)了,例如演化算法和強(qiáng)化學(xué)習(xí)這一類(lèi)方法訓(xùn)練很不穩(wěn)定,很難復(fù)現(xiàn)出結(jié)果。很多論文也都只是公開(kāi)了最好的模型,都不放出源碼的(當(dāng)然我并沒(méi)有質(zhì)疑他們),超參數(shù)之類(lèi)的也有些沒(méi)有公布,這導(dǎo)致我們平民玩家沒(méi)法復(fù)現(xiàn),沒(méi)法用啊。而且大家評(píng)測(cè)的環(huán)境都不相同,眾說(shuō)紛紜,沒(méi)法公平比較,因此也有一些工作提出了NAS統(tǒng)一的數(shù)據(jù)集來(lái)評(píng)測(cè)。

魯棒性

如果目標(biāo)領(lǐng)域數(shù)據(jù)添加了噪聲,可能會(huì)對(duì)搜出來(lái)的模型產(chǎn)生很大影響。所以如何搜出更加魯棒、能適應(yīng)不同領(lǐng)域或者有噪聲數(shù)據(jù)的結(jié)構(gòu)可能是未來(lái)的一個(gè)研究方向。

聯(lián)合超參優(yōu)化和架構(gòu)優(yōu)化

目前大多數(shù)NAS方法都是先搜出最優(yōu)架構(gòu),再調(diào)整超參在目標(biāo)領(lǐng)域上retrain,如何同時(shí)學(xué)好這兩塊也是一個(gè)方向。

完全的AutoML的pipeline

做到從數(shù)據(jù)收集開(kāi)始一直到最后的模型生成訓(xùn)練全部流程化,不需要人為參與,那樣才是真正的智能。目前的話(huà)有一些比較好的開(kāi)源工具了,AutoKeras、NNI等等。

終身學(xué)習(xí)

當(dāng)新的數(shù)據(jù)源源不斷進(jìn)來(lái)時(shí),當(dāng)只有少量有標(biāo)簽數(shù)據(jù)或者有大量無(wú)標(biāo)簽數(shù)據(jù)時(shí),如何做NAS,有幾個(gè)不錯(cuò)的工作,比如UnNAS是做無(wú)監(jiān)督NAS的,MetaNAS是結(jié)合meta-learning的。

經(jīng)典論文簡(jiǎn)析

(NAS)[ICLR 17] Neural Architecture Search with Reinforcement Learning

動(dòng)機(jī)
用強(qiáng)化學(xué)習(xí)來(lái)采樣網(wǎng)絡(luò),生成出最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu),避免人工設(shè)計(jì)。

方法
用RNN來(lái)預(yù)測(cè)CNN或者RNN的結(jié)構(gòu),采樣結(jié)構(gòu),下游任務(wù)效果作為強(qiáng)化學(xué)習(xí)得分,策略梯度更新參數(shù)。

CNN預(yù)定義好層數(shù),LSTM每5層預(yù)測(cè)CNN一層的5個(gè)參數(shù)。

RNN預(yù)定義好cell的計(jì)算拓?fù)鋱D,LSTM預(yù)測(cè)每個(gè)node的計(jì)算邏輯。

實(shí)驗(yàn)

11fc8200-4691-11eb-8b86-12bb97331649.png

接近人類(lèi)設(shè)計(jì)網(wǎng)絡(luò)的最好水平。速度超慢,800 K40,28天,只適用于小數(shù)據(jù)集例如CIFAR-10。

評(píng)價(jià)
強(qiáng)化學(xué)習(xí)應(yīng)用到NAS的第一篇論文。

(NASNet)[CVPR 18] Learning Transferable Architectures for Scalable Image Recognition

動(dòng)機(jī)
RL直接搜太慢了,只能用在小數(shù)據(jù)集,ImageNet之類(lèi)的大數(shù)據(jù)集沒(méi)法用。

方法
提出了NASNet,用堆疊相同cell的方式減小搜索空間。在CIFAR-10上面學(xué)習(xí)cell結(jié)構(gòu),通過(guò)增加堆疊層數(shù)的方式遷移到ImageNet上去。用PPO替代策略梯度。

12a5458e-4691-11eb-8b86-12bb97331649.png

選擇之前的兩個(gè)node,分別預(yù)測(cè)對(duì)應(yīng)op,然后預(yù)測(cè)合并op。

140c7492-4691-11eb-8b86-12bb97331649.png

實(shí)驗(yàn)

1452eed6-4691-11eb-8b86-12bb97331649.png

147f4b66-4691-11eb-8b86-12bb97331649.png

效果和參數(shù)量都好于前作,達(dá)到了SOTA水平。速度加快很多,500 P100,4天,相比于前作加速7倍。

評(píng)價(jià)
NASNet,通過(guò)cell堆疊加快了結(jié)構(gòu)搜索的速度,同時(shí)效果達(dá)到了SOTA,并且容易遷移到其他任務(wù)上去。

(ENAS)[ICML 18] Efficient Neural Architecture Search via Parameter Sharing

動(dòng)機(jī)
之前的方法采樣出一個(gè)結(jié)構(gòu),在dev上得到acc,然后就會(huì)拋棄權(quán)重,重新采樣訓(xùn)練,非常耗時(shí)。

方法
定義一個(gè)超圖,每次搜出的子圖共享權(quán)重。

對(duì)于RNN cell,LSTM的每?jī)蓚€(gè)step預(yù)測(cè)之前某個(gè)node作為輸入,再預(yù)測(cè)op,最后出度0的node拼接作為輸出。

14f41b62-4691-11eb-8b86-12bb97331649.png

對(duì)于CNN,一種策略是直接生成整個(gè)網(wǎng)絡(luò),每個(gè)node先預(yù)測(cè)之前哪些作為輸入,然后預(yù)測(cè)op。

1532c4e8-4691-11eb-8b86-12bb97331649.png

另一種策略和NASNet類(lèi)似,堆疊cell,搜索空間縮小到一個(gè)cell。

實(shí)驗(yàn)

157f47b4-4691-11eb-8b86-12bb97331649.png

優(yōu)于NAS和NASNet,1 1080Ti,16小時(shí),相比NAS加速1000倍。

評(píng)價(jià)
訓(xùn)練速度很快,AutoKeras背后就采用了ENAS。

(DARTS)[ICLR 19] DARTS: Differentiable Architecture Search

動(dòng)機(jī)
離散結(jié)構(gòu)搜索太慢了,采樣+驗(yàn)證+反饋的循環(huán)很耗時(shí)。

方法
連續(xù)域結(jié)構(gòu)搜索代替離散域結(jié)構(gòu)搜索,用微分來(lái)優(yōu)化結(jié)構(gòu)。

兩套參數(shù):模型參數(shù)(訓(xùn)練集優(yōu)化)、結(jié)構(gòu)參數(shù)(驗(yàn)證集優(yōu)化)。

交替優(yōu)化兩套參數(shù),softmax+relax學(xué)習(xí)最終結(jié)構(gòu)。

15fbe026-4691-11eb-8b86-12bb97331649.png

實(shí)驗(yàn)

164b561a-4691-11eb-8b86-12bb97331649.png

效果達(dá)到或接近了SOTA,速度上比ENAS慢,比其他的方法快。

評(píng)價(jià)
第一個(gè)用可微分方法做NAS的,第一個(gè)連續(xù)空間搜索代替離散空間搜索。

[ICLR 19] Rethinking the Value of Network Pruning

動(dòng)機(jī)
現(xiàn)有的剪枝方法存在問(wèn)題,很多操作不合理,沒(méi)有必要。

方法
傳統(tǒng)剪枝方法基于兩個(gè)假設(shè):

過(guò)參數(shù)化很重要,訓(xùn)練大模型再剪枝優(yōu)于直接訓(xùn)練剪枝后的模型。

繼承大模型參數(shù),再finetune很重要,優(yōu)于隨機(jī)初始化剪枝后模型再重新訓(xùn)練。

本文認(rèn)為都不一定對(duì):

對(duì)于預(yù)定義好的模型,直接訓(xùn)練可以達(dá)到和訓(xùn)練-剪枝-finetune相同甚至更好的效果。

大模型剪枝后,隨機(jī)初始化重新訓(xùn)練,效果和繼承參數(shù)finetune差不多。

所以本文認(rèn)為剪枝后的結(jié)構(gòu)重要,而參數(shù)不是那么重要。

實(shí)驗(yàn)

16e4d8a8-4691-11eb-8b86-12bb97331649.png

一系列實(shí)驗(yàn)結(jié)果驗(yàn)證了猜想,此外本文還否定了彩票假設(shè),認(rèn)為剪枝后隨機(jī)初始化即可,沒(méi)必要和原始初始化相同。

評(píng)價(jià)
仍然有一些局限性,比如數(shù)據(jù)分布均衡、模型比較大,估計(jì)在其他設(shè)置下不一定work。而且不如finetune速度快。

參考鏈接

不錯(cuò)的綜述或討論

https://lilianweng.github.io/lil-log/2020/08/06/neural-architecture-search.html
https://jinzhuojun.blog.csdn.net/article/details/84698471
http://www.tensorinfinity.com/paper_136.html
https://zhuanlan.zhihu.com/p/73785074
https://www.zhihu.com/question/359162202
https://github.com/pzhren/Awesome-NAS
Neural Architecture Search: A Survey
A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions
AutoML: A Survey of the State-of-the-Art
A Comprehensive Survey of Neural Architecture Search: Challenges and Solutions

一些經(jīng)典論文

Neural Architecture Search with Reinforcement Learning
Designing Neural Network Architectures using Reinforcement Learning
Efficient Neural Architecture Search via Parameter Sharing
Learning Transferable Architectures for Scalable Image Recognition
DARTS: Differentiable Architecture Search
Neural Architecture Optimization
FP-NAS: Fast Probabilistic Neural Architecture Search
SNAS: Stochastic Neural Architecture Search
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
Once for All: Train One Network and Specialize it for Efficient Deployment
Rethinking the Value of Network Pruning
TextNAS: A Neural Architecture Search Space Tailored for Text Representation
The Evolved Transformer
HAT: Hardware-Aware Transformers for Efficient Natural Language Processing
Searching Better Architectures for Neural Machine Translation

一些經(jīng)典源碼或工具

https://github.com/quark0/darts
https://github.com/melodyguan/enas
https://github.com/mit-han-lab/once-for-all
https://github.com/mit-han-lab/hardware-aware-transformers
https://github.com/microsoft/nni
https://github.com/IntelLabs/distiller
https://autokeras.com/

參考資料

[1]

AutoML: A survey of the state-of-the-art: https://arxiv.org/abs/1908.00709

責(zé)任編輯:xj

原文標(biāo)題:一文看懂AutoML

文章出處:【微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6719

    瀏覽量

    88324
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4555

    瀏覽量

    92040
  • NAS
    NAS
    +關(guān)注

    關(guān)注

    11

    文章

    265

    瀏覽量

    112259

原文標(biāo)題:一文看懂AutoML

文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NAS工具軟件大盤(pán)點(diǎn):瞧瞧哪個(gè)被你遺漏了

    很多人都聽(tīng)說(shuō)過(guò)NAS,也有很多人正在使用NASNAS用戶(hù)通常需要安裝些軟件來(lái)擴(kuò)展其功能,畢竟NAS的功能實(shí)在是太多了,光是部署與調(diào)試就
    的頭像 發(fā)表于 08-01 16:26 ?708次閱讀

    PCBA加工打樣流程詳解,看這就夠了

    PCBA打樣。接下來(lái)帶大家深入了解PCBA打樣的詳細(xì)流程,以幫助客戶(hù)更好地理解整個(gè)生產(chǎn)過(guò)程。 PCBA打樣流程解析 第步:客戶(hù)訂單 整個(gè)P
    的頭像 發(fā)表于 07-25 09:23 ?255次閱讀

    SensiML開(kāi)源AutoML解決方案-Piccolo AI發(fā)布

    SensiML強(qiáng)大的Analytics Studio軟件開(kāi)發(fā)工具的開(kāi)源版本-Piccolo AI發(fā)布了!Piccolo AI遵循AGPL許可,面向個(gè)人開(kāi)發(fā)者、研究人員和AI愛(ài)好者,旨在將AutoML
    的頭像 發(fā)表于 07-22 16:53 ?613次閱讀

    那些年我的NAS用過(guò)的常用套件?

    NAS遠(yuǎn)程管理 指通過(guò)遠(yuǎn)程訪(fǎng)問(wèn)和控制技術(shù),實(shí)現(xiàn)對(duì)NAS設(shè)備的遠(yuǎn)程操作和管理。具體而言,用戶(hù)可以通過(guò)電腦、手機(jī)等設(shè)備,在異地實(shí)現(xiàn)對(duì)NAS設(shè)備的控制,如獲取NAS設(shè)備上的文件、圖片和音頻等
    的頭像 發(fā)表于 06-05 14:18 ?221次閱讀
    那些年我的<b class='flag-5'>NAS</b>用過(guò)的常用套件?

    除了容量大還能干啥?教你如何用NAS提升居家幸福感!

    提供大容量存儲(chǔ)空間,可以保存家中的大量圖片、視頻、文件等珍貴資料。 無(wú)需每次調(diào)用資料都打開(kāi)電腦,通過(guò)移動(dòng)設(shè)備或電腦的專(zhuān)用APP,用戶(hù)可以隨時(shí)隨地訪(fǎng)問(wèn)和調(diào)用NAS中的資料,大大提高了數(shù)據(jù)調(diào)用的便利性。 NAS還支持自動(dòng)備份功能,確保重要數(shù)據(jù)的安全和
    的頭像 發(fā)表于 06-04 11:23 ?303次閱讀

    NAS使用小妙招丨系統(tǒng)&amp;域名&amp;配件

    NAS(網(wǎng)絡(luò)附加存儲(chǔ))使用主要涉及到系統(tǒng)安裝與設(shè)置、域名綁定、以及配件選擇與配置。以下將分別針對(duì)這三個(gè)方面進(jìn)行詳細(xì)闡述: 、系統(tǒng)安裝與設(shè)置 安裝群暉NAS系統(tǒng): 將NAS設(shè)備連接到網(wǎng)
    的頭像 發(fā)表于 05-29 15:09 ?254次閱讀
    <b class='flag-5'>NAS</b>使用小妙招丨系統(tǒng)&amp;域名&amp;配件

    機(jī)實(shí)現(xiàn)All in one,NAS如何玩轉(zhuǎn)虛擬機(jī)!

    常言道,中年男人玩具有三寶 充電器、路由器、NAS 你問(wèn)我NAS的魔力在哪里? 機(jī)實(shí)現(xiàn)All in one灑灑水啦 那NAS又如何玩轉(zhuǎn)虛擬機(jī)呢? 跟我來(lái) 0基礎(chǔ)也能輕松get!
    的頭像 發(fā)表于 05-28 14:44 ?450次閱讀
    <b class='flag-5'>一</b>機(jī)實(shí)現(xiàn)All in one,<b class='flag-5'>NAS</b>如何玩轉(zhuǎn)虛擬機(jī)!

    文掃盡Nas常用Docker軟件

    NAS(Network Attached Storage,網(wǎng)絡(luò)附加存儲(chǔ))設(shè)備上的Docker軟件選擇取決于您的具體需求和用途。以下是NAS上常用的Docker軟件推薦
    的頭像 發(fā)表于 05-23 18:33 ?1596次閱讀

    NAS必備軟件清單:提升存儲(chǔ)效率與媒體管理

    NAS(Network Attached Storage)用戶(hù)通常需要安裝些軟件來(lái)擴(kuò)展其功能,以下軟件支持各種系統(tǒng),無(wú)論是群暉、威聯(lián)通還是其他NAS設(shè)備,新手或者技術(shù)牛人都值得嘗試。
    的頭像 發(fā)表于 05-21 16:31 ?472次閱讀
    <b class='flag-5'>NAS</b>必備軟件清單:提升存儲(chǔ)效率與媒體管理

    教你招,鍵解鎖云盤(pán)與NAS自動(dòng)同步!

    想象下 數(shù)字生活就像座繁忙的都市 云盤(pán)是你的空中閣樓 俯瞰著整個(gè)城市的美景 而NAS是堅(jiān)實(shí)的地基 承載著所有珍貴的記憶 那如何讓數(shù)據(jù)在 城市的高空與地面之間自由穿梭呢? 別急!鐵威
    的頭像 發(fā)表于 05-15 16:58 ?233次閱讀
    教你<b class='flag-5'>一</b>招,<b class='flag-5'>一</b>鍵解鎖云盤(pán)與<b class='flag-5'>NAS</b>自動(dòng)同步!

    構(gòu)建系統(tǒng)思維:信號(hào)完整性,看這就夠了!

    信號(hào)完整性(Signal Integrity,SI)在電子工程領(lǐng)域中具有極其重要的意義,也是現(xiàn)代電子設(shè)計(jì)的核心考量因素之,尤其在高速PCB設(shè)計(jì)、集成電路設(shè)計(jì)、通信系統(tǒng)設(shè)計(jì)等領(lǐng)域,對(duì)保證系統(tǒng)性
    發(fā)表于 03-05 17:16

    NAS使用小貼士,讓NAS實(shí)現(xiàn)存儲(chǔ)的曠野

    結(jié)束2024年的第個(gè)假期,我們忙著做年終總結(jié),對(duì)來(lái)年許下希冀。 2023毋庸置疑是近年來(lái)過(guò)得較為豐富多彩的年。 “看了好多場(chǎng)演唱會(huì)” “實(shí)現(xiàn)了場(chǎng)說(shuō)走就走的旅行” “蹦場(chǎng)無(wú)拘無(wú)束
    的頭像 發(fā)表于 01-09 16:18 ?333次閱讀
    <b class='flag-5'>NAS</b>使用小貼士,讓<b class='flag-5'>NAS</b>實(shí)現(xiàn)存儲(chǔ)的曠野

    NAS設(shè)備及硬盤(pán)的選購(gòu)與安裝使用

    面對(duì)海量的存儲(chǔ)需求難題,眾多企業(yè)與工作室往往會(huì)首選NAS存儲(chǔ)解決方案。但市面上NAS設(shè)備與硬盤(pán)產(chǎn)品繁多,如何組建適合自己的NAS系統(tǒng)也常常令人頭疼。
    的頭像 發(fā)表于 01-07 15:39 ?901次閱讀
    <b class='flag-5'>NAS</b>設(shè)備及硬盤(pán)的選購(gòu)與安裝使用

    穿透局域網(wǎng)訪(fǎng)問(wèn)威聯(lián)通nas

    寬帶沒(méi)有這個(gè)問(wèn)題。 碰到問(wèn)題總是要解決,筆者嘗試了另種方式訪(fǎng)問(wèn):通過(guò) zerotier 組建VPN,在外網(wǎng)穿透局域網(wǎng),訪(fǎng)問(wèn)威聯(lián)通nas,網(wǎng)速很可以,并且不依賴(lài)本地網(wǎng)絡(luò)運(yùn)行商 解決實(shí)現(xiàn)方法: A.注冊(cè)
    發(fā)表于 11-16 18:34

    STM32的完整啟動(dòng)流程分析

    STM32的完整啟動(dòng)流程分析
    的頭像 發(fā)表于 10-25 16:00 ?1193次閱讀
    STM32的<b class='flag-5'>完整</b>啟動(dòng)<b class='flag-5'>流程</b>分析