摘要:通過在中結(jié)合進(jìn)化算法執(zhí)行架構(gòu)搜索,谷歌開發(fā)出了當(dāng)前較佳的圖像分類模型。本文是谷歌對該神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法的技術(shù)解讀,其中涉及兩篇論文,分別是和。此外,谷歌還使用其新型芯片來擴(kuò)大計(jì)算規(guī)模。
通過在 AutoML 中結(jié)合進(jìn)化算法執(zhí)行架構(gòu)搜索,谷歌開發(fā)出了當(dāng)前較佳的圖像分類模型 AmoebaNet。本文是谷歌對該神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法的技術(shù)解讀,其中涉及兩篇論文,分別是《Large-Scale Evolution of Image Classifiers》和《Regularized Evolution for Image Classifier Architecture Search》。
從 5 億年前的超簡單的蠕蟲腦到今天的各種各樣的現(xiàn)代結(jié)構(gòu),大腦經(jīng)歷了漫長的進(jìn)化過程。例如,人類大腦可以指導(dǎo)完成非常廣泛的活動,大部分活動都能輕而易舉地完成,例如辨別一個(gè)視覺場景中是否包含動物或建筑對我們來說是很簡單的事。而要執(zhí)行類似的活動,人工神經(jīng)網(wǎng)絡(luò)需要專家數(shù)年的艱苦研究、精心設(shè)計(jì),且通常只能執(zhí)行單個(gè)具體的任務(wù),例如識別照片中的目標(biāo)、調(diào)用遺傳變異,或者幫助診斷疾病等。人們希望擁有自動化的方法,為任意給定的任務(wù)生成合適的網(wǎng)絡(luò)架構(gòu)。
使用進(jìn)化算法生成這些架構(gòu)是其中一種方法。傳統(tǒng)的拓?fù)渖窠?jīng)進(jìn)化研究(如《Evolving Neural Networks through Augmenting Topologies》Stanley and Miikkulainen,2002)為大規(guī)模應(yīng)用進(jìn)化算法奠定了基礎(chǔ),很多團(tuán)隊(duì)都在研究這個(gè)主題,例如 OpenAI、Uber Labs、Sentient Labs 和 DeepMind。當(dāng)然,Google Brain 團(tuán)隊(duì)也在嘗試用 AutoML 執(zhí)行架構(gòu)搜索。除了基于學(xué)習(xí)的方法(如強(qiáng)化學(xué)習(xí)),谷歌想了解使用谷歌的計(jì)算資源以前所未有的規(guī)模來程序化地演化圖像分類器,會得到什么樣的結(jié)果??梢杂米钌俚膶<覅⑴c獲得足夠好的解決方案嗎?目前的人工進(jìn)化神經(jīng)網(wǎng)絡(luò)能達(dá)到什么樣的程度?谷歌通過兩篇論文來解決這個(gè)問題。
在 ICML 2017 大會中展示的論文《Large-Scale Evolution of Image Classifiers》中,谷歌用簡單的構(gòu)建模塊和常用的初始條件設(shè)置了一個(gè)進(jìn)化過程。其主要思想是讓人「袖手旁觀」,讓進(jìn)化算法大規(guī)模構(gòu)建網(wǎng)絡(luò)架構(gòu)。當(dāng)時(shí),從非常簡單的網(wǎng)絡(luò)開始,該過程可以找到與手動設(shè)計(jì)模型性能相當(dāng)?shù)姆诸惼?。這個(gè)結(jié)果振奮人心,因?yàn)楹芏鄳?yīng)用可能需要較少的用戶參與。例如,一些用戶可能需要更好的模型,但沒有足夠的時(shí)間成為機(jī)器學(xué)習(xí)專家。接下來要考慮的問題自然就是手動設(shè)計(jì)和進(jìn)化的組合能不能獲得比多帶帶使用一個(gè)方法更好的結(jié)果。因此,在近期論文《Regularized Evolution for Image Classifier Architecture Search》(2018)中,谷歌通過提供復(fù)雜的構(gòu)建模塊和較好的初始條件(參見下文)來參與進(jìn)化過程。此外,谷歌還使用其新型 TPUv2 芯片來擴(kuò)大計(jì)算規(guī)模。通過現(xiàn)代硬件、專家知識和進(jìn)化過程的組合,谷歌獲得了在兩個(gè)流行的圖像分類基準(zhǔn) CIFAR-10 和 ImageNet 上的當(dāng)前最優(yōu)模型。
簡單方法
接下來我們介紹第一篇論文中的一個(gè)例子。下圖中,每個(gè)點(diǎn)都是一個(gè)在 CIFAR-10 數(shù)據(jù)集(通常用于訓(xùn)練圖像分類器)上訓(xùn)練的神經(jīng)網(wǎng)絡(luò)。在初始階段,該群體中有 1000 個(gè)相同的簡單種子模型(沒有隱藏層)。從簡單的種子模型開始非常重要:假如從初始條件包含專家知識的高質(zhì)量模型開始,則系統(tǒng)將更容易最終獲得高質(zhì)量模型。而一旦從簡單的模型開始,進(jìn)化過程就可以隨時(shí)間步逐漸提高模型質(zhì)量。在每個(gè)時(shí)間步,進(jìn)化算法會隨機(jī)選擇一對神經(jīng)網(wǎng)絡(luò),具備更高準(zhǔn)確率的網(wǎng)絡(luò)被選為親代網(wǎng)絡(luò),并通過復(fù)制和變異獲得子代網(wǎng)絡(luò),然后該子代網(wǎng)絡(luò)被加入原來的群體中,而另一個(gè)準(zhǔn)確率較低的網(wǎng)絡(luò)則被移除。在這個(gè)時(shí)間步內(nèi),所有其它的網(wǎng)絡(luò)都保持不變。通過持續(xù)應(yīng)用多個(gè)此類時(shí)間步,該群體得以不斷進(jìn)化。
進(jìn)化實(shí)驗(yàn)過程。每個(gè)點(diǎn)表示群體中的一個(gè)個(gè)體。四個(gè) diagram 是算法發(fā)現(xiàn)的架構(gòu)。它們對應(yīng)較佳個(gè)體(最右、通過驗(yàn)證準(zhǔn)確率選出)及其三個(gè) ancestor。
谷歌第一篇論文中的變異設(shè)置得很簡單:隨機(jī)刪除卷積層,在任意層之間添加 skip connection,或者改變學(xué)習(xí)率等等。通過這種方式,研究結(jié)果證實(shí)了進(jìn)化算法的潛力,與搜索空間的質(zhì)量成反比。例如,如果我們使用單個(gè)變異,在某一步將一個(gè)種子網(wǎng)絡(luò)變換成 Inception-ResNet 分類器,那么我們會錯(cuò)誤地認(rèn)為該算法找到了優(yōu)秀的答案。但是,在那種情況中,我們只能將最終答案硬編碼為復(fù)雜的變異,控制輸出。而如果我們堅(jiān)持使用簡單的變異,則這種情況不會發(fā)生,進(jìn)化算法能夠真正完成任務(wù)。在圖中的實(shí)驗(yàn)中,簡單的變異和選擇過程導(dǎo)致網(wǎng)絡(luò)隨著時(shí)間不斷改進(jìn),并達(dá)到了很高的測試準(zhǔn)確率,且測試集在訓(xùn)練過程中不曾出現(xiàn)。在這篇論文中,網(wǎng)絡(luò)可以繼承其親代網(wǎng)絡(luò)的權(quán)重。因此,除了促進(jìn)架構(gòu)進(jìn)化以外,群體可以訓(xùn)練其網(wǎng)絡(luò),同時(shí)探索初始條件和學(xué)習(xí)率調(diào)度(learning-rate schedule)的搜索空間。因此,該過程獲得了完全訓(xùn)練的模型,且該模型具備優(yōu)化過的超參數(shù)。實(shí)驗(yàn)開始后不需要專家輸入。
上述情況中,即使我們通過掌握簡單的初始架構(gòu)和直觀變異最小化研究人員的參與,這些架構(gòu)的構(gòu)建模塊中也存在大量專家知識,包括卷積、ReLU 和批歸一化層等重要?jiǎng)?chuàng)新。谷歌對這些組件構(gòu)成的架構(gòu)進(jìn)行了進(jìn)化操作。「架構(gòu)」一詞并非偶然:它就像用高質(zhì)量磚石建筑房屋。
結(jié)合進(jìn)化和手動設(shè)計(jì)
在第一篇論文發(fā)布后,谷歌想通過給予算法更少探索選擇來減少搜索空間,提高可控性。就像剛才那個(gè)關(guān)于架構(gòu)的類比一樣,谷歌去除了搜索空間中所有可能導(dǎo)致大型誤差的方式,比如建筑房屋時(shí)把墻建在屋頂上。類似地,在神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方面,固定網(wǎng)絡(luò)的大尺度結(jié)構(gòu)可以為算法解決問題提供一定的幫助。例如,Zoph et al. (《Learning Transferable Architectures for Scalable Image Recognition》) 論文中提出的用于架構(gòu)搜索的類 inception 模塊非常強(qiáng)大。他們想構(gòu)建一個(gè)重復(fù)模塊 cell 的深度堆疊結(jié)構(gòu)。該堆疊是固定的,但是單個(gè)模塊的架構(gòu)可以改變。
Zoph et al. (2017) 論文中提到的構(gòu)建模塊。左側(cè)是完整神經(jīng)網(wǎng)絡(luò)的外部結(jié)構(gòu),自下而上地通過一串堆疊的重復(fù) cell 解析輸入數(shù)據(jù)。右側(cè)是 cell 的內(nèi)部結(jié)構(gòu)。算法旨在尋找能夠獲取準(zhǔn)確網(wǎng)絡(luò)的 cell。
在第二篇論文《Regularized Evolution for Image Classifier Architecture Search》中,谷歌展示了將進(jìn)化算法應(yīng)用到上述搜索空間的結(jié)果。通過隨機(jī)重連輸入(上圖右側(cè)的箭頭)或隨機(jī)替換操作(如將圖中的較大池化操作「max 3x3」替換成任意其他可替換操作)等變異來修改 cell。這些變異仍然比較簡單,但是初始條件并不簡單:群體中初始化的模型必須遵從 cell 外部堆疊(由專家設(shè)計(jì))。盡管這些種子模型中的 cell 是隨機(jī)的,但是我們不再從簡單模型開始,這樣更易獲得高質(zhì)量模型。如果進(jìn)化算法發(fā)揮出很大作用,則最終網(wǎng)絡(luò)應(yīng)該顯著優(yōu)于我們目前已知的可在該搜索空間內(nèi)構(gòu)建的網(wǎng)絡(luò)。這篇論文展示了進(jìn)化算法確實(shí)能夠找到當(dāng)前最優(yōu)的模型,可匹配甚至優(yōu)于手動設(shè)計(jì)的搜索方式。
受控比較
盡管變異/選擇進(jìn)化過程并不復(fù)雜,但可能存在更直接的方法(如隨機(jī)搜索)可以達(dá)到同樣的效果。其他方法盡管并不比進(jìn)化算法簡單,但仍然存在(如強(qiáng)化學(xué)習(xí))。因此,谷歌第二篇論文的主要目的是提供不同技術(shù)之間的受控比較。
進(jìn)化算法、強(qiáng)化學(xué)習(xí)與隨機(jī)搜索分別執(zhí)行架構(gòu)搜索時(shí)的對比結(jié)果。這些實(shí)驗(yàn)是在 CIFAR-10 數(shù)據(jù)集上完成的,條件和 Zoph 等人 2017 年的論文一樣,其中的搜索空間最初使用強(qiáng)化學(xué)習(xí)。
上圖對比了進(jìn)化算法、強(qiáng)化學(xué)習(xí)與隨機(jī)搜索。左圖,每個(gè)曲線表示實(shí)驗(yàn)的進(jìn)程,結(jié)果表明進(jìn)化算法在搜索的早期階段要比強(qiáng)化學(xué)習(xí)快。這非常重要,因?yàn)樵谟?jì)算資源有限的情況下,實(shí)驗(yàn)可能不得不早早結(jié)束。此外,進(jìn)化算法對數(shù)據(jù)集或者搜索空間的變化具備很強(qiáng)的穩(wěn)健性??傊@一受控對比旨在向研究社區(qū)提供該計(jì)算成本高昂的實(shí)驗(yàn)的結(jié)果。谷歌希望通過提供不同搜索算法之間關(guān)系的案例分析,為社區(qū)做架構(gòu)搜索提供幫助。這里面有些需要注意的東西,例如,上圖中表明,盡管使用更少的浮點(diǎn)運(yùn)算,進(jìn)化算法獲得的最終模型也能達(dá)到很高的準(zhǔn)確率。
在第二篇論文中,谷歌所用進(jìn)化算法的一大重要特征是采用了一種正則化形式:相比于移除最差的神經(jīng)網(wǎng)絡(luò),他們移除了最老的神經(jīng)網(wǎng)絡(luò)(無論它有多好)。這提升了對任務(wù)優(yōu)化時(shí)所發(fā)生變化的穩(wěn)健性,并最終更可能得到更加準(zhǔn)確的網(wǎng)絡(luò)。其中一個(gè)原因可能是由于不允許權(quán)重繼承,所有的網(wǎng)絡(luò)必須都從頭開始訓(xùn)練。因此,這種形式的正則化選擇重新訓(xùn)練后依舊較好的網(wǎng)絡(luò)。也就是說,得到更加準(zhǔn)確的模型只是偶然的,訓(xùn)練過程中存在的噪聲意味著即使完全相同的架構(gòu)準(zhǔn)確率也可能不同。更多細(xì)節(jié)可參看論文《Regularized Evolution for Image Classifier Architecture Search》。
谷歌開發(fā)出的當(dāng)前最優(yōu)模型叫作 AmoebaNet,這也是從 AutoML 中發(fā)展出的成果。所有實(shí)驗(yàn)都需要大量算力,谷歌使用數(shù)百 GPU/TPU 運(yùn)行了數(shù)天。
原文鏈接:https://research.googleblog.com/2018/03/using-evolutionary-automl-to-discover.html
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識
QQ群:81035754
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/4725.html
摘要:今年月,谷歌發(fā)布了。在谷歌內(nèi)部被稱為的方法中,一個(gè)控制器神經(jīng)網(wǎng)絡(luò)可以提出一個(gè)子模型架構(gòu),然后可以在特定任務(wù)中對其進(jìn)行訓(xùn)練和評估質(zhì)量。對于整個(gè)領(lǐng)域來說,一定是下一個(gè)時(shí)代發(fā)展重點(diǎn),并且極有可能是機(jī)器學(xué)習(xí)的大殺器。 為什么我們需要 AutoML?在談?wù)撨@個(gè)問題之前,我們需要先弄清楚機(jī)器學(xué)習(xí)的一般步驟。其實(shí),不論是圖像識別、語音識別還是其他的機(jī)器學(xué)習(xí)項(xiàng)目,其結(jié)構(gòu)差別是很小的,一個(gè)效果好的模型需要大量...
摘要:據(jù)介紹,在谷歌近期的強(qiáng)化學(xué)習(xí)和基于進(jìn)化的的基礎(chǔ)上構(gòu)建,快速靈活同時(shí)能夠提供學(xué)習(xí)保證。剛剛,谷歌發(fā)布博客,開源了基于的輕量級框架,該框架可以使用少量專家干預(yù)來自動學(xué)習(xí)高質(zhì)量模型。 TensorFlow 是相對高階的機(jī)器學(xué)習(xí)庫,用戶可以方便地用它設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),而不必為了追求高效率的實(shí)現(xiàn)親自寫 C++或 CUDA 代碼。它和 Theano 一樣都支持自動求導(dǎo),用戶不需要再通過反向傳播求解...
摘要:是第一個(gè)提出體積小,計(jì)算量少,適用于移動設(shè)備的卷積神經(jīng)網(wǎng)絡(luò)。圖卷積運(yùn)算匯總參考圖與神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索卷積神經(jīng)網(wǎng)絡(luò)已被廣泛用于圖像分類人臉識別目標(biāo)檢測和其他領(lǐng)域。 1、基本卷積運(yùn)算手工設(shè)計(jì)輕量化模型主要思想在于設(shè)計(jì)更高效的網(wǎng)絡(luò)計(jì)算方式(主要針對卷積方式),從而使網(wǎng)絡(luò)參數(shù)減少,并且不損失網(wǎng)絡(luò)性能。本節(jié)概述了CNN模型(如MobileNet及其變體)中使用的基本卷積運(yùn)算單元,并基于空間維度和通道維度...
閱讀 3239·2021-10-13 09:40
閱讀 3716·2019-08-30 15:54
閱讀 1318·2019-08-30 13:20
閱讀 3000·2019-08-30 11:26
閱讀 485·2019-08-29 11:33
閱讀 1108·2019-08-26 14:00
閱讀 2370·2019-08-26 13:58
閱讀 3379·2019-08-26 10:39