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

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

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

神經(jīng)架構(gòu)搜索詳解

WpOh_rgznai100 ? 來源:陳翠 ? 2019-07-07 10:49 ? 次閱讀

近期谷歌大腦團(tuán)隊(duì)發(fā)布了一項(xiàng)新研究:只靠神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索出的網(wǎng)絡(luò),不訓(xùn)練,不調(diào)參,就能直接執(zhí)行任務(wù)。

這樣的網(wǎng)絡(luò)叫做WANN,權(quán)重不可知神經(jīng)網(wǎng)絡(luò)。前一陣子在業(yè)內(nèi)引起了不小轟動。

很多同學(xué)對其中的關(guān)鍵方法“神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(NAS)“表現(xiàn)出了極大興趣。那么什么是NAS呢?

谷歌CEO Sundar Pichai曾表示:“設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)非常耗時,需要具有專門背景知識的人,并且,對專業(yè)知識的高要求限制了創(chuàng)業(yè)公司和小的社區(qū)使用它。

而使用“神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)”的方法被稱為神經(jīng)結(jié)構(gòu)搜索(NAS),通常使用強(qiáng)化學(xué)習(xí)或進(jìn)化算法來設(shè)計(jì)新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

關(guān)于NAS,原理是什么?初學(xué)者又該如何入門?

圖靈君對下面這篇選自medium技術(shù)博客進(jìn)行了編譯,該文章全面介紹NAS的原理和三種不同方法,希望大家有所幫助。

以下是博文內(nèi)容:

我們大多數(shù)人可能都對ResNet耳熟能詳,它是ILSVRC 2015在圖像分類、檢測和本地化方面的贏家,也是MS COCO 2015檢測和分割的贏家。ResNet是一個巨大的架構(gòu),遍布各種跳躍連接。當(dāng)我使用這個ResNet作為自己機(jī)器學(xué)習(xí)項(xiàng)目的預(yù)訓(xùn)練網(wǎng)絡(luò)時,我想的是“怎么會有人提出這樣的體系結(jié)構(gòu)呢?”'

大型人類工程圖像分類體系機(jī)構(gòu)

不久之后,我了解到許多工程師和科學(xué)家用他們多年的經(jīng)驗(yàn)構(gòu)建了這種架構(gòu)后。并且還有更多的直覺而不是完整的數(shù)學(xué)將告訴你“我們現(xiàn)在需要一個5x5過濾器以達(dá)到最佳精度”。我們有很好的圖像分類任務(wù)架構(gòu),但像我這樣的許多年輕學(xué)習(xí)者通?;ㄙM(fèi)數(shù)小時的時間來修復(fù)體系結(jié)構(gòu),同時處理那些不是Image的數(shù)據(jù)集。我們當(dāng)然希望別人能為我們做這件事。

因此神經(jīng)架構(gòu)搜索(NAS),自動化架構(gòu)工程的過程就出現(xiàn)了。我們只需要為NAS系統(tǒng)提供數(shù)據(jù)集,它將為我們提供該數(shù)據(jù)集的最佳架構(gòu)。NAS可以被視為AutoML的子域,并且與超參數(shù)優(yōu)化具有明顯的重疊。要了解NAS,我們需要深入研究它在做什么。它通過遵循最大化性能的搜索策略,從所有可能的架構(gòu)中找到架構(gòu)。下圖總結(jié)了NAS算法。

NAS方法的維度

它有3個獨(dú)立的維度:搜索空間、搜索策略和性能評估。

搜索空間定義了NAS方法原則上可能發(fā)現(xiàn)的神經(jīng)架構(gòu)。它可以是鏈狀結(jié)構(gòu),其中層(n-1)的輸出作為層(n)的輸入饋送?;蛘咚梢允蔷哂刑S連接(多分支網(wǎng)絡(luò))的現(xiàn)代復(fù)雜架構(gòu)。

鏈狀網(wǎng)絡(luò)和多分支網(wǎng)絡(luò)

有時人們確實(shí)想要使用具有重復(fù)主題或單元的手工制作的外部架構(gòu)(宏觀架構(gòu))。在這種情況下,外部結(jié)構(gòu)是固定的,NAS僅搜索單元體系結(jié)構(gòu)。這種類型的搜索稱為微搜索或單元搜索。

左:單元結(jié)構(gòu) 右:單元放入手工制作的外部結(jié)構(gòu)中

在許多NAS方法中,以分層方式搜索微觀和宏觀結(jié)構(gòu); 它由幾個層次的主題組成。第一級由原始操作組成,第二級是不同的主題,通過有向無環(huán)圖連接原始操作,第三級是編碼如何連接二級圖案的主題,依此類推。

為了解釋搜索策略和性能估計(jì),下面將討論三種不同的NAS方法。

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

我們了解強(qiáng)化學(xué)習(xí); 其中根據(jù)θ參數(shù)化的一些策略執(zhí)行某些操作。然后,代理從所采取的操作的獎勵更新策略θ。在NAS的情況下,代理生成模型體系結(jié)構(gòu),子網(wǎng)絡(luò)(動作)。然后在數(shù)據(jù)集上訓(xùn)練模型,并將模型對驗(yàn)證數(shù)據(jù)的性能作為獎勵。

控制器扮演代理的角色,準(zhǔn)確性被作為獎勵

通常,遞歸神經(jīng)網(wǎng)絡(luò)(RNN)被視為控制器或代理。它產(chǎn)生字符串,模型是隨機(jī)構(gòu)建的字符串形式。

RNN用于創(chuàng)建模型的字符串示例

例如,在圖5中,連續(xù)的RNN輸出用于構(gòu)建濾波器; 從過濾器高度開始到步寬。輸出錨點(diǎn)用于指示跳躍連接。在第N層,錨點(diǎn)將包含N-1個基于內(nèi)容的sigmoids,以指示需要連接的先前層。

通過策略梯度方法訓(xùn)練RNN以迭代地更新策略θ。這里省略了詳細(xì)的計(jì)算,可以在原始論文的第3.2節(jié)中找到。

論文地址:

https://openreview.net/pdf?id=r1Ue8Hcxg

漸進(jìn)式神經(jīng)架構(gòu)搜索(PNAS)

PNAS執(zhí)行本教程的搜索空間部分中討論的單元搜索。他們通過以預(yù)定義的方式添加單元來構(gòu)建來自塊的單元并構(gòu)建完整網(wǎng)絡(luò)。

單元以預(yù)定數(shù)量串聯(lián)連接以形成網(wǎng)絡(luò)。并且每個單元由幾個塊(原文中使用的5個)形成。

這些塊由預(yù)定義的操作組成。

塊的結(jié)構(gòu)。組合函數(shù)只是逐元素相加

操作結(jié)果表明,圖中所示為原論文所使用的圖形,可以進(jìn)行擴(kuò)展。

上圖顯示了完整的示例。即使在這種單元胞或微搜索中,也有101?個有效組合來檢查以找到最佳單元結(jié)構(gòu)。

因此,為了降低復(fù)雜性,首先僅構(gòu)建僅具有1個塊的單元。這很容易,因?yàn)橥ㄟ^上述操作,只有256個不同的單元是可能的。然后選擇頂部K表現(xiàn)最佳的單元以擴(kuò)展2個塊單元,并重復(fù)最多5個塊。

但是,對于一個合理的K,太多的2塊候選來訓(xùn)練。作為這個問題的解決方案,我們訓(xùn)練了僅通過讀取字符串(單元被編碼成字符串)來預(yù)測最終性能的“廉價”代理模型。這種訓(xùn)練的數(shù)據(jù)是在單元構(gòu)建、訓(xùn)練和驗(yàn)證時收集的。

例如,我們可以構(gòu)造所有256個單塊單元并測量它們的性能。并使用這些數(shù)據(jù)訓(xùn)練代理模型。然后使用此模型預(yù)測2個塊單元的性能,而無需實(shí)際訓(xùn)練和測試它們。當(dāng)然,代理模型應(yīng)該能夠處理可變大小的輸入。

然后選擇由模型預(yù)測的頂部K表現(xiàn)最佳的2個塊單元。然后對這2個塊單元進(jìn)行實(shí)際訓(xùn)練,對“替代”模型進(jìn)行微調(diào),并將這些單元擴(kuò)展為3個塊并對其進(jìn)行迭代

PNAS的步驟

差異化架構(gòu)搜索(DARTS)

用于神經(jīng)架構(gòu)的搜索空間是離散的,即一種架構(gòu)與另一種架構(gòu)的不同之處至少在于該架構(gòu)中有一層或一些參數(shù),例如,5x5濾波器對7x7濾波器。在該方法中,采用連續(xù)松弛法進(jìn)行離散搜索,以實(shí)現(xiàn)基于梯度的直接優(yōu)化。

我們搜索的單元可以是有向無環(huán)圖,其中每個節(jié)點(diǎn)x是潛在表示(例如卷積網(wǎng)絡(luò)中的特征映射),并且每個有向邊(i,j)與某些操作o(i,j)相關(guān)聯(lián)( 卷積,最大池化等,轉(zhuǎn)換x(i)并在節(jié)點(diǎn)x(j)處存儲潛在表示。

每個節(jié)點(diǎn)的輸出可以通過上述的等式計(jì)算。以這樣的方式枚舉節(jié)點(diǎn),即從節(jié)點(diǎn)x(i)到x(j)存在邊(i,j),然后i

在連續(xù)松弛法中,不是在兩個節(jié)點(diǎn)之間進(jìn)行單個操作。使用每種可能操作的凸組合。為了在圖中對此進(jìn)行建模,保持兩個節(jié)點(diǎn)之間的多個邊緣,每個邊緣對應(yīng)于特定操作。并且每個邊緣也具有權(quán)重α。

離散問題的連續(xù)松弛

現(xiàn)在O(i,j)節(jié)點(diǎn)x(i)和x(j)之間的操作是一組操作o(i,j)的凸組合,其中o(.)εS,其中S是所有的集合可能的操作。

O(i,j)的輸出由上述方程計(jì)算。

L_train和L_val分別表示訓(xùn)練和驗(yàn)證損失。兩種損失不僅由架構(gòu)參數(shù)α確定,而且還由網(wǎng)絡(luò)中的權(quán)重“w”確定。架構(gòu)搜索的目標(biāo)是找到最小化驗(yàn)證損失L_val(w *,α*)的α*,其中通過最小化訓(xùn)練損失來獲得與架構(gòu)相關(guān)聯(lián)的權(quán)重'w *'。

w?= argminL_train(w, α? ).

這意味著一個雙層優(yōu)化問題,α作為上層變量,w作為下層變量:

α *= argminL_val(w ? (α), α)

s.t.w ? (α)= argminL_train(w, α)

訓(xùn)練后,某些邊的α變得比其他邊大得多。為了得到這個連續(xù)模型的離散架構(gòu),在兩個節(jié)點(diǎn)之間保留唯一具有最大權(quán)重的邊。

a)上的操作最初是未知的。b)通過在每個邊上放置候選操作的混合來連續(xù)放松搜索空間c)在雙層優(yōu)化期間一些權(quán)重增加并且一些權(quán)重下降d)最終體系結(jié)構(gòu)僅通過采用具有兩個節(jié)點(diǎn)之間的最大權(quán)重的邊來構(gòu)建。

當(dāng)找到單元時,這些單元然后用于構(gòu)建更大的網(wǎng)絡(luò)。

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

    關(guān)注

    42

    文章

    4724

    瀏覽量

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

    關(guān)注

    11

    文章

    276

    瀏覽量

    112311

原文標(biāo)題:入門必備 | 一文讀懂神經(jīng)架構(gòu)搜索

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)程序架構(gòu)詳解

    本帖最后由 eehome 于 2013-1-5 09:44 編輯 單片機(jī)程序架構(gòu)詳解
    發(fā)表于 08-17 15:55

    AutoML和神經(jīng)架構(gòu)搜索介紹

    AutoMl及NAS概述:更有效地設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)模型工具
    發(fā)表于 09-04 06:37

    華人團(tuán)隊(duì)打造專為GAN量身定制架構(gòu)搜索方案AutoGAN

    生成對抗網(wǎng)絡(luò)(GAN)自其誕生以來一直盛行。它的一個最顯著的成功在于是用各種各樣的卷積結(jié)構(gòu)生成逼真的自然圖像。 近年來,人們對自動設(shè)計(jì)復(fù)雜的神經(jīng)網(wǎng)絡(luò)架構(gòu)產(chǎn)生了濃厚的興趣。神經(jīng)架構(gòu)
    發(fā)表于 11-30 07:29

    ARM Cortex-M系列芯片神經(jīng)網(wǎng)絡(luò)推理庫CMSIS-NN詳解

    1、ARM Cortex-M系列芯片神經(jīng)網(wǎng)絡(luò)推理庫CMSIS-NN詳解CMSIS-NN是用于ARM Cortex-M系列的芯片的神經(jīng)網(wǎng)絡(luò)推理庫,用于低性能芯片/架構(gòu)
    發(fā)表于 08-19 16:06

    人肉搜索詳解

    人肉搜索詳解 1. 引言
    發(fā)表于 08-06 10:19 ?3308次閱讀

    OpenStack Swift架構(gòu)詳解

    OpenStack Swift是OpenStack開源云計(jì)算項(xiàng)目的子項(xiàng)目,被稱為對象存儲,本內(nèi)容深入詳解了OpenStack Swift架構(gòu)
    發(fā)表于 09-11 11:19 ?1.2w次閱讀
    OpenStack Swift<b class='flag-5'>架構(gòu)</b><b class='flag-5'>詳解</b>

    關(guān)于Instgram的搜索架構(gòu)簡要分析

    Instagram的優(yōu)勢在于:雖然公司規(guī)模小,卻擁有相對大得多的基礎(chǔ)設(shè)施架構(gòu),在恰當(dāng)?shù)臅r候還能利用資源以借助Facebook十年來積累的經(jīng)驗(yàn)。Facebook的Unicorn搜索架構(gòu)是一款以社交圖
    發(fā)表于 10-10 16:17 ?0次下載
    關(guān)于Instgram的<b class='flag-5'>搜索</b><b class='flag-5'>架構(gòu)</b>簡要分析

    什么是神經(jīng)架構(gòu)搜索?機(jī)器學(xué)習(xí)自動化真能普及大眾嗎?

    到底什么是神經(jīng)架構(gòu)搜索?這是讓機(jī)器學(xué)習(xí)普及的關(guān)鍵嗎?這篇文章將重點(diǎn)解決這一問題。而在下篇文章中,我們會詳細(xì)了解谷歌的AutoML。神經(jīng)架構(gòu)
    的頭像 發(fā)表于 07-19 15:36 ?5582次閱讀
    什么是<b class='flag-5'>神經(jīng)</b><b class='flag-5'>架構(gòu)</b><b class='flag-5'>搜索</b>?機(jī)器學(xué)習(xí)自動化真能普及大眾嗎?

    一種新的高效神經(jīng)架構(gòu)搜索方法,解決了當(dāng)前網(wǎng)絡(luò)變換方法的局限性

    不從頭開始進(jìn)行神經(jīng)架構(gòu)搜索,而是使用現(xiàn)有的網(wǎng)絡(luò)作為起點(diǎn),通過網(wǎng)絡(luò)變換(Network Transformation)的方式來探索架構(gòu)空間。具體的,他們使用了Net2Net操作(一類 f
    的頭像 發(fā)表于 07-24 10:06 ?7057次閱讀

    一種利用強(qiáng)化學(xué)習(xí)來設(shè)計(jì)mobile CNN模型的自動神經(jīng)結(jié)構(gòu)搜索方法

    具體來說,我們提出一種用于設(shè)計(jì)移動端的CNN模型的自動神經(jīng)結(jié)構(gòu)搜索方法,稱之為Platform-Aware神經(jīng)結(jié)構(gòu)搜索。圖1是Platform-Aware
    的頭像 發(fā)表于 08-07 14:10 ?3784次閱讀

    自動神經(jīng)結(jié)構(gòu)搜索方法實(shí)現(xiàn)高效率卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)

    一種自動神經(jīng)結(jié)構(gòu)搜索方法,用于設(shè)計(jì)資源有限的移動端CNN模型
    的頭像 發(fā)表于 08-07 14:12 ?5209次閱讀

    神經(jīng)架構(gòu)搜索的算法,可以使被AI優(yōu)化過的AI設(shè)計(jì)過程加速240多倍

    首先,他們減少了運(yùn)行神經(jīng)架構(gòu)搜索的GPU內(nèi)存負(fù)載。標(biāo)準(zhǔn)神經(jīng)架構(gòu)搜索可以同時檢查網(wǎng)絡(luò)中
    的頭像 發(fā)表于 04-10 14:20 ?2992次閱讀

    MIT研發(fā)“神經(jīng)架構(gòu)搜索”算法,將AI優(yōu)化的AI設(shè)計(jì)過程加速240倍或更多

    麻省理工學(xué)院(MIT)的一個研究小組將展示一種所謂的“ 神經(jīng)架構(gòu)搜索”算法 ,該算法可以將AI優(yōu)化的AI設(shè)計(jì)過程加速240倍或更多。
    的頭像 發(fā)表于 04-15 16:49 ?3247次閱讀

    以進(jìn)化算法為搜索策略實(shí)現(xiàn)神經(jīng)架構(gòu)搜索的方法

    自動化深度學(xué)習(xí)是目前深度學(xué)習(xí)領(lǐng)域的研究熱點(diǎn),神經(jīng)架構(gòu)搜索算法是實(shí)現(xiàn)自動化深度學(xué)習(xí)的主要方法之一,該類算法可以通過對搜索空間、搜索策略或優(yōu)化策
    發(fā)表于 03-22 14:37 ?15次下載
    以進(jìn)化算法為<b class='flag-5'>搜索</b>策略實(shí)現(xiàn)<b class='flag-5'>神經(jīng)</b><b class='flag-5'>架構(gòu)</b><b class='flag-5'>搜索</b>的方法

    神經(jīng)網(wǎng)絡(luò)架構(gòu)有哪些

    神經(jīng)網(wǎng)絡(luò)架構(gòu)是機(jī)器學(xué)習(xí)領(lǐng)域中的核心組成部分,它們模仿了生物神經(jīng)網(wǎng)絡(luò)的運(yùn)作方式,通過復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)信息的處理、存儲和傳遞。隨著深度學(xué)習(xí)技術(shù)的不斷發(fā)展,各種神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-01 14:16 ?482次閱讀