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

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

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

網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)設(shè)計(jì)算法——BlockQNN

商湯科技SenseTime ? 來源:未知 ? 作者:胡薇 ? 2018-05-17 09:44 ? 次閱讀

以下是在大規(guī)模分布式訓(xùn)練領(lǐng)域,商湯科技發(fā)表的一篇重磅大會(huì)口頭報(bào)告(Oral)論文,提出基于分布式訓(xùn)練的深度增強(qiáng)學(xué)習(xí)BlockQNN算法,自動(dòng)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。本文由商湯科技實(shí)習(xí)研究員鐘釗在商湯科技研究院副院長閆俊杰和研究經(jīng)理武偉指導(dǎo)下完成。

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)一直是深度學(xué)習(xí)里的核心問題。在基于深度學(xué)習(xí)的分類、檢測、分割、跟蹤等任務(wù)中,基礎(chǔ)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)對整體算法的性能優(yōu)劣有著決定性的影響。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)需要大量專家的知識(shí)和試錯(cuò)成本,甚至還需要一些靈感和“神來之筆”,每年僅有幾個(gè)有較大影響的新網(wǎng)絡(luò)結(jié)構(gòu)被設(shè)計(jì)出來,因此,人工設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)是一件極其困難的事情。網(wǎng)絡(luò)結(jié)構(gòu)的自動(dòng)設(shè)計(jì)/搜索的方法最近受到了廣泛的重視,其試圖朝著自動(dòng)化深度學(xué)習(xí)這個(gè)目標(biāo),把人從復(fù)雜繁瑣的網(wǎng)絡(luò)設(shè)計(jì)調(diào)參中解放出來(如圖一所示)。

圖一:(由左至右)

從人工設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)到

算法自動(dòng)設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)

近期的網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)設(shè)計(jì)/搜索算法通常需要耗費(fèi)巨大的計(jì)算資源(例如,Google的NAS算法需要使用數(shù)百塊GPU以及近一個(gè)月的訓(xùn)練時(shí)間),而且生成的模型可遷移性不強(qiáng),難以做到真正的實(shí)用化。本文提出的BlockQNN算法能夠解決現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)設(shè)計(jì)/搜索方法效率和泛化性的問題。

基于“Block”的網(wǎng)絡(luò)結(jié)構(gòu)表示

目前主流的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)極其復(fù)雜,其深度往往達(dá)到數(shù)百層,直接搜索整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)的搜索空間非常龐大,這也是之前自動(dòng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)/搜索算法比較低效的原因之一。同時(shí),直接設(shè)計(jì)整個(gè)網(wǎng)絡(luò)的策略會(huì)導(dǎo)致網(wǎng)絡(luò)結(jié)構(gòu)不具備泛化性。例如,基于CIFAR數(shù)據(jù)集搜索出來的網(wǎng)絡(luò)結(jié)構(gòu),因?yàn)槠鋽?shù)據(jù)輸入的大小限制,只適合處理輸入為32x32分辨率的數(shù)據(jù),從而使得搜索出的網(wǎng)絡(luò)結(jié)構(gòu)泛化性能較弱。

針對這些問題,本文借鑒了現(xiàn)代主流深度神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)思想,比如ResNet、Inception等網(wǎng)絡(luò)。這些網(wǎng)絡(luò)是由同樣結(jié)構(gòu)的子網(wǎng)絡(luò)重復(fù)組合在一起形成,本文把這種能重復(fù)組合的子結(jié)構(gòu)稱為block。通過設(shè)計(jì)block結(jié)構(gòu),可以讓網(wǎng)絡(luò)結(jié)構(gòu)的搜索空間大大減小,并且block結(jié)構(gòu)本身具有強(qiáng)大的泛化性,針對不同的數(shù)據(jù)集或者任務(wù),只需要疊加不同個(gè)數(shù)的block即可完成(如圖二所示)。

圖二:

基于Block設(shè)計(jì)的網(wǎng)絡(luò)整體框架

左邊為針對CIFAR的框架,右邊針對ImageNet

表一:

網(wǎng)絡(luò)結(jié)構(gòu)編碼表

為了表示網(wǎng)絡(luò)block結(jié)構(gòu),本文設(shè)計(jì)了一套網(wǎng)絡(luò)結(jié)構(gòu)編碼,把神經(jīng)網(wǎng)絡(luò)看做一個(gè)有向無環(huán)圖,每個(gè)節(jié)點(diǎn)表示網(wǎng)絡(luò)中的每一層,而邊就表示數(shù)據(jù)流動(dòng)的方向。整個(gè)編碼包括神經(jīng)網(wǎng)絡(luò)的層數(shù)序號(hào),類型,核的大小,以及兩個(gè)前序節(jié)點(diǎn)的序號(hào)。使用這種編碼方式就可以表示任意的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),例如ResNet和Inception的block結(jié)構(gòu)就能使用圖三中的編碼進(jìn)行表示。

圖三:

Inception和Resnet中block結(jié)構(gòu)編碼表示

基于強(qiáng)化學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)設(shè)計(jì)

接下來的核心問題即是如何獲得最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)。盡管網(wǎng)絡(luò)結(jié)構(gòu)的搜索空間已經(jīng)通過設(shè)計(jì)block大大減小,但是直接暴力搜索所有可能結(jié)構(gòu),依然十分耗費(fèi)計(jì)算資源。本文因此提出一種基于強(qiáng)化學(xué)習(xí)的網(wǎng)絡(luò)設(shè)計(jì)方法,自動(dòng)學(xué)習(xí)得到網(wǎng)絡(luò)結(jié)構(gòu)。

在網(wǎng)絡(luò)設(shè)計(jì)強(qiáng)化學(xué)習(xí)中,本文把當(dāng)前神經(jīng)網(wǎng)絡(luò)層定義為增強(qiáng)學(xué)習(xí)中的目前狀態(tài)(current state),而下一層結(jié)構(gòu)的決策定義為增強(qiáng)學(xué)習(xí)中的動(dòng)作(action)。這里使用之前定義的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)編碼來表示每一層網(wǎng)絡(luò)。這樣,通過一系列的動(dòng)作決策,就能獲得一條表示block結(jié)構(gòu)的編碼(如圖四所示),而提出的強(qiáng)化學(xué)習(xí)算法通過優(yōu)化尋獲最優(yōu)的動(dòng)作決策序列。本文使用Q-learning算法來進(jìn)行學(xué)習(xí),具體的公式不再展開。

圖四:

基于強(qiáng)化學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)設(shè)計(jì)流程

值得注意的一點(diǎn)是,與一般的強(qiáng)化學(xué)習(xí)問題不同,該任務(wù)只在結(jié)束整個(gè)序列的決策后(即生成完整網(wǎng)絡(luò)結(jié)構(gòu)后)才會(huì)得到一個(gè)reward,而之前的每個(gè)決策是對應(yīng)reward。由于獲得最終reward的成本非常高(需要在數(shù)據(jù)上重新訓(xùn)練新獲得的網(wǎng)絡(luò)結(jié)構(gòu)),為了加快它的收斂,作者使用了reward shaping的技巧(如圖五所示),因而訓(xùn)練初始階段終止層的Q值不會(huì)過高,讓算法不會(huì)在訓(xùn)練初始階段傾向于生成層數(shù)過淺的網(wǎng)絡(luò)結(jié)構(gòu)。

圖五:

Reward shaping對收斂效率的影響

提前停止策略

雖然能夠使用多種技巧來使自動(dòng)化網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)變的更加高效。但是自動(dòng)網(wǎng)絡(luò)設(shè)計(jì)中耗費(fèi)時(shí)間的關(guān)鍵還是在于每次獲得reward的時(shí)間成本非常高,需要將生成的網(wǎng)絡(luò)結(jié)構(gòu)在對應(yīng)的數(shù)據(jù)集上訓(xùn)練至收斂,然后獲得相應(yīng)的準(zhǔn)確度來表示結(jié)構(gòu)的好壞并且用作reward。本文作者發(fā)現(xiàn),通過調(diào)整學(xué)習(xí)率,只需要正常訓(xùn)練30分之一的過程(例如,CIFAR-100數(shù)據(jù)集上訓(xùn)練12個(gè)epoch),就可以得到網(wǎng)絡(luò)的大致最終精度,這樣可以大大降低時(shí)間成本。但是,這樣的網(wǎng)絡(luò)結(jié)構(gòu)精度及其關(guān)聯(lián)的reward會(huì)有誤差,導(dǎo)致無法精細(xì)區(qū)分網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)劣,本文提出一個(gè)憑經(jīng)驗(yàn)的解決公式:

即真實(shí)的reward和提前停止的準(zhǔn)確度成正比,但是和網(wǎng)絡(luò)結(jié)構(gòu)的計(jì)算復(fù)雜度和結(jié)構(gòu)連接復(fù)雜度(block中邊數(shù)除以點(diǎn)數(shù))成反比。通過這樣的公式矯正,得到的reward對網(wǎng)絡(luò)結(jié)構(gòu)的好壞更加具備可鑒別性(如圖六所示)。

圖六:

提前停止的準(zhǔn)確度與網(wǎng)絡(luò)真實(shí)準(zhǔn)確度、

計(jì)算復(fù)雜度、連接復(fù)雜度的關(guān)系

實(shí)驗(yàn)結(jié)果

本文使用了32個(gè)GPU,經(jīng)過3天的搜索,可以在CIFAR數(shù)據(jù)集上找到性能達(dá)到目前先進(jìn)水平的網(wǎng)絡(luò)結(jié)構(gòu)(如圖七所示)。

圖七:

搜索過程以及學(xué)習(xí)得到的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)

相比之前的自動(dòng)網(wǎng)絡(luò)搜索方法(如Google NAS算法的數(shù)百塊GPU以及一個(gè)月時(shí)間),BlockQNN算法可謂十分高效(如表二、表三所示)。

表二:

不同自動(dòng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)算法的

計(jì)算資源對比

表三:

在CIFAR數(shù)據(jù)集上不同網(wǎng)絡(luò)結(jié)構(gòu)的錯(cuò)誤率

另一方面,學(xué)習(xí)獲得的網(wǎng)絡(luò)結(jié)構(gòu)也可以更容易的遷移到ImageNet任務(wù)上,取得了不錯(cuò)的精度(如表四所示)。

表四:

在Imagenet數(shù)據(jù)集上不同網(wǎng)絡(luò)結(jié)構(gòu)的錯(cuò)誤率

為了驗(yàn)證BlockQNN算法是否真的學(xué)習(xí)到了設(shè)計(jì)網(wǎng)絡(luò)的方式,在同一搜索空間下和暴力搜索進(jìn)行對比,可以發(fā)現(xiàn)本文提出的BlockQNN算法能獲得比暴力搜索更好的模型(如圖八所示)。

圖八:

強(qiáng)化學(xué)習(xí)與暴力搜索獲得網(wǎng)絡(luò)結(jié)構(gòu)

在CIFAR數(shù)據(jù)集的準(zhǔn)確率

對整個(gè)搜索過程和結(jié)果網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行分析(如圖九所示),本文作者發(fā)現(xiàn)學(xué)習(xí)得到的優(yōu)異結(jié)構(gòu)擁有一些共性。比如multi-branch結(jié)構(gòu)、short-cut連接方式等這些現(xiàn)在常用的設(shè)計(jì)思想。同時(shí),作者也發(fā)現(xiàn)了一些不太常見的結(jié)構(gòu)共性,比如卷積層之間的addition操作出現(xiàn)的十分頻繁,這些學(xué)習(xí)得到的網(wǎng)絡(luò)結(jié)構(gòu)還有待進(jìn)一步的分析和研究。

圖九:

BlockQNN算法設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)示例

結(jié)論

本文提出了一種高效的基于強(qiáng)化學(xué)習(xí)的網(wǎng)路結(jié)構(gòu)自動(dòng)設(shè)計(jì)算法——BlockQNN,其通過“Block”的設(shè)計(jì)思想,讓網(wǎng)絡(luò)結(jié)構(gòu)搜索空間大大降低,并且使得學(xué)習(xí)得到的網(wǎng)絡(luò)具備非常強(qiáng)的可遷移性。同時(shí),本文使用“提前停止”和分布式架構(gòu)來加速整個(gè)學(xué)習(xí)過程,達(dá)到了百倍于之前Google NAS算法的速度(僅需要32塊GPU以及3天的訓(xùn)練)。實(shí)驗(yàn)表明,其學(xué)習(xí)得到的網(wǎng)路結(jié)構(gòu)在CIFAR數(shù)據(jù)集上達(dá)到人類設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)的精度,并且其結(jié)構(gòu)可以遷移到大規(guī)模的ImageNet數(shù)據(jù)集上,也能取得不錯(cuò)的性能。作者希望朝著自動(dòng)化深度學(xué)習(xí)這個(gè)目標(biāo)繼續(xù)發(fā)展算法,最終把人從復(fù)雜繁瑣的網(wǎng)絡(luò)設(shè)計(jì)和調(diào)參中解放出來,實(shí)現(xiàn)深度學(xué)習(xí)更進(jìn)一步的“智能化”。

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

    評(píng)論

    相關(guān)推薦

    求助。我國市級(jí)電話網(wǎng)絡(luò)結(jié)構(gòu)

    我國的市級(jí)的電話網(wǎng)絡(luò)結(jié)構(gòu)是一樣的么他的結(jié)構(gòu)圖是怎么樣的
    發(fā)表于 11-09 19:43

    linux不同網(wǎng)絡(luò)結(jié)構(gòu)的不同IP設(shè)法

    Linux的裝系統(tǒng)設(shè)IP,這應(yīng)該是系統(tǒng)管理員的基本功,可是不同的網(wǎng)絡(luò)結(jié)構(gòu)有不同的IP設(shè)法,您知道嗎?
    發(fā)表于 07-05 06:52

    神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索有什么優(yōu)勢?

    ,稍有不同就無法復(fù)現(xiàn)論文的結(jié)果。而網(wǎng)絡(luò)結(jié)構(gòu)作為一種特殊的超參數(shù),在深度學(xué)習(xí)整個(gè)環(huán)節(jié)中扮演著舉足輕重的角色。在圖像分類任務(wù)上大放異彩的ResNet、在機(jī)器翻譯任務(wù)上稱霸的Transformer等網(wǎng)絡(luò)結(jié)構(gòu)
    發(fā)表于 09-11 11:52

    手繪網(wǎng)絡(luò)結(jié)構(gòu)

    手繪一些網(wǎng)絡(luò)結(jié)構(gòu)圖,很初級(jí)
    發(fā)表于 10-25 14:06

    網(wǎng)絡(luò)結(jié)構(gòu)與IP分組交換技術(shù)

    計(jì)算機(jī)體系結(jié)構(gòu)網(wǎng)絡(luò)篇1、2》之 網(wǎng)絡(luò)結(jié)構(gòu)、IP分組交換技術(shù)、IP/MAC映射、NAT轉(zhuǎn)換等...
    發(fā)表于 12-23 06:05

    TD-SCDMA網(wǎng)絡(luò)結(jié)構(gòu)

    TD-SCDMA 系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)完全遵循3GPP 指定的UMTS 網(wǎng)絡(luò)結(jié)構(gòu),可以分為接入網(wǎng)(UTRAN)和核心網(wǎng)(CN)。本章首先介紹UMTS 的物理網(wǎng)絡(luò)結(jié)構(gòu)模型,根據(jù)TD-SCDMA 系統(tǒng)的接入網(wǎng)和核心網(wǎng)組成闡述
    發(fā)表于 06-19 14:10 ?217次下載

    DeviceNet 網(wǎng)絡(luò)結(jié)構(gòu)

    DeviceNet 網(wǎng)絡(luò)結(jié)構(gòu) 基于現(xiàn)場總線的開放的自動(dòng)化系統(tǒng)底層結(jié)構(gòu)近年來發(fā)展起來的現(xiàn)場總線技術(shù)以其靈活的控制方式信息共享和低成本等特點(diǎn)被廣泛的用于復(fù)的
    發(fā)表于 03-22 15:46 ?30次下載

    HFC網(wǎng)絡(luò),HFC網(wǎng)絡(luò)結(jié)構(gòu)組成是什么?

    HFC網(wǎng)絡(luò),HFC網(wǎng)絡(luò)結(jié)構(gòu)組成是什么? 一、區(qū)域網(wǎng) 多業(yè)務(wù)系統(tǒng)服務(wù)商(MSO)越來越常見,他們將幾個(gè)相鄰的系統(tǒng)做到一起而組成一個(gè)更大的區(qū)域
    發(fā)表于 03-20 14:04 ?9840次閱讀

    環(huán)形網(wǎng)絡(luò),環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)是什么?

    環(huán)形網(wǎng)絡(luò),環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)是什么? 這種結(jié)構(gòu)網(wǎng)絡(luò)形式主要應(yīng)用于令牌網(wǎng)中,在這種網(wǎng)絡(luò)結(jié)構(gòu)中各設(shè)備是直接通過電纜來串接的,最后形成一個(gè)閉環(huán),
    發(fā)表于 03-22 11:14 ?6109次閱讀

    4G網(wǎng)絡(luò)結(jié)構(gòu)及關(guān)鍵技術(shù)

    4G網(wǎng)絡(luò)結(jié)構(gòu)及關(guān)鍵技的精彩講解
    發(fā)表于 11-10 17:19 ?114次下載
    4G<b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>及關(guān)鍵技術(shù)

    基于自適應(yīng)果蠅算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練

    基于自適應(yīng)果蠅算法的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練_霍慧慧
    發(fā)表于 01-03 17:41 ?0次下載

    基于網(wǎng)絡(luò)結(jié)構(gòu)的專利池許可費(fèi)計(jì)算方法_莫愿斌

    基于網(wǎng)絡(luò)結(jié)構(gòu)的專利池許可費(fèi)計(jì)算方法_莫愿斌
    發(fā)表于 03-16 09:09 ?0次下載

    概率模型的大規(guī)模網(wǎng)絡(luò)結(jié)構(gòu)發(fā)現(xiàn)方法

    網(wǎng)絡(luò)結(jié)構(gòu)發(fā)現(xiàn)任務(wù)的有效工具,但該類方法存在計(jì)算瓶頸.近幾年出現(xiàn)了一些基于概率模型的大規(guī)模網(wǎng)絡(luò)結(jié)構(gòu)發(fā)現(xiàn)方法,主要從網(wǎng)絡(luò)表示、結(jié)構(gòu)假設(shè)、參數(shù)求解
    發(fā)表于 02-12 10:48 ?1次下載

    卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

    Learning)的應(yīng)用,通過運(yùn)用多層卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以自動(dòng)地進(jìn)行特征提取和學(xué)習(xí),進(jìn)而實(shí)現(xiàn)圖像分類、物體識(shí)別、目標(biāo)檢測、語音識(shí)別和自然語言翻譯等任務(wù)。 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括:輸
    的頭像 發(fā)表于 08-17 16:30 ?1154次閱讀

    如何優(yōu)化PLC的網(wǎng)絡(luò)結(jié)構(gòu)

    優(yōu)化PLC的網(wǎng)絡(luò)結(jié)構(gòu)可以提高通信的效率和穩(wěn)定性。以下是一些優(yōu)化PLC網(wǎng)絡(luò)結(jié)構(gòu)的方法: (1)設(shè)計(jì)合理的拓?fù)?b class='flag-5'>結(jié)構(gòu):根據(jù)應(yīng)用需求和設(shè)備分布情況,設(shè)計(jì)合理的網(wǎng)絡(luò)拓?fù)?/div>
    的頭像 發(fā)表于 12-23 08:15 ?625次閱讀
    如何優(yōu)化PLC的<b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>?