利用機(jī)器學(xué)習(xí)技術(shù)代替人類專家來自動(dòng)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu)近期成為了一個(gè)熱門研究話題。上海交大和MIT的研究團(tuán)隊(duì)提出一種新的高效神經(jīng)架構(gòu)搜索方法,解決了當(dāng)前網(wǎng)絡(luò)變換方法的局限性,且在十分有限的GPU算力下,達(dá)到了谷歌AutoML搜索神經(jīng)網(wǎng)絡(luò)架構(gòu)的效果。
最近,利用機(jī)器學(xué)習(xí)技術(shù)代替人類專家自動(dòng)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu)(即神經(jīng)架構(gòu)搜索)成為一個(gè)熱門話題。但是,目前的資源密集型的方法實(shí)際上并不適用于大公司之外的一般研究團(tuán)隊(duì)。
來自上海交大APEX數(shù)據(jù)與知識管理實(shí)驗(yàn)室和MIT韓松老師在今年ICML 2018上發(fā)表的新研究“Path-Level Network Transformation for Efficient Architecture Search”表明,利用現(xiàn)有的成功的人工設(shè)計(jì)的架構(gòu)來設(shè)計(jì)高效的網(wǎng)絡(luò)架構(gòu)會(huì)容易得多。通過將現(xiàn)有成功的人工設(shè)計(jì)的架構(gòu)與神經(jīng)架構(gòu)搜索方法在設(shè)計(jì)有效的路徑拓?fù)浞矫娴膹?qiáng)大能力相結(jié)合,可以在有限的計(jì)算資源下獲得更好的結(jié)果。
研究人員表示,他們的方法用更少的GPU達(dá)到了谷歌AutoML自動(dòng)搜索神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的效果。
對于這一系列工作,上海交通大學(xué)APEX實(shí)驗(yàn)室和約翰霍普克羅夫特中心的張偉楠助理教授表示:“在當(dāng)今大型科技公司憑借超高算力持續(xù)做出AutoML領(lǐng)域的高質(zhì)量工作的大背景下,高校團(tuán)隊(duì)可以將注意力集中在如何在低成本低算力的限制下巧妙設(shè)計(jì)AutoML新方法,這樣的解決方法其實(shí)更加親民,從而帶來更大的影響力和更廣泛的使用場景?!?/p>
麻省理工大學(xué)HAN Lab的韓松助理教授表示,“算力換算法”是當(dāng)今AutoML系列工作的熱點(diǎn)話題。傳統(tǒng)AutoML需要上千塊GPU的大量算力,然而硬件算力是深度學(xué)習(xí)的寶貴資源。本文通過提出路徑級別的網(wǎng)絡(luò)變換、樹形的架構(gòu)搜索空間和樹形的元控制器,可以在同樣性能的情況下將AutoML的硬件算力節(jié)省240倍(48,000 GPU-hours v.s. 200 GPU-hours)。在摩爾定律放緩、而數(shù)據(jù)集卻在不斷變大的時(shí)代,深度學(xué)習(xí)研究者值得關(guān)注算法性能和算力資源的協(xié)同優(yōu)化。
結(jié)論和貢獻(xiàn)
本研究的貢獻(xiàn)包括:
提出路徑級變換(path-level transformation),以在神經(jīng)網(wǎng)絡(luò)中實(shí)現(xiàn)路徑拓?fù)湫薷模?/p>
提出了樹形結(jié)構(gòu)的RL元控制器來探索樹形結(jié)構(gòu)的架構(gòu)空間;
在計(jì)算資源顯著更少的情況下,在CIFAR-10和ImageNet(移動(dòng)設(shè)置)上獲得了更好的結(jié)果。
從人工設(shè)計(jì)到自動(dòng)架構(gòu)搜索
在應(yīng)用深度學(xué)習(xí)技術(shù)時(shí),神經(jīng)網(wǎng)絡(luò)架構(gòu)往往是我們需要優(yōu)化的一個(gè)非常重要的部分。傳統(tǒng)上,這項(xiàng)工作是由人類專家完成的,但這十分緩慢并且往往是次優(yōu)的。因此,隨著計(jì)算資源的增加,研究人員開始使用機(jī)器學(xué)習(xí)工具,例如強(qiáng)化學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)進(jìn)化(neuro-evolution)來自動(dòng)化架構(gòu)設(shè)計(jì)的過程,這就是“神經(jīng)架構(gòu)搜索”(neural architecture search)。
從頭開始進(jìn)行神經(jīng)架構(gòu)搜索
當(dāng)前的大多數(shù)神經(jīng)架構(gòu)搜索方法都遵循一種類似的模式,即在驗(yàn)證信號(validation signals)的指導(dǎo)下,從零開始探索給定的架構(gòu)空間。
一個(gè)典型的例子(Google Brain在ICLR 2017發(fā)表的“Neural Architecture Search with Reinforcement Learning”)是使用一個(gè)隨機(jī)初始化的自回歸遞歸神經(jīng)網(wǎng)絡(luò)(Auto-regressive RNN)來生成與特定網(wǎng)絡(luò)架構(gòu)相對應(yīng)的整個(gè)字符串。并通過策略梯度算法來訓(xùn)練這個(gè)遞歸神經(jīng)網(wǎng)絡(luò),以最大化預(yù)期驗(yàn)證性能。
谷歌大腦提出的NAS上的Auto-regressive RNN
該模式具有如下優(yōu)點(diǎn):
首先,這是一個(gè)靈活的框架(可應(yīng)用于自動(dòng)化設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu)、神經(jīng)優(yōu)化器、設(shè)備配置、數(shù)據(jù)增強(qiáng)策略等)。
其次,這種方法在CIFAR和ImageNet等基準(zhǔn)數(shù)據(jù)集上取得了當(dāng)時(shí)最佳的結(jié)果。
缺點(diǎn):
首先,這一模式通常依賴于大量的計(jì)算資源來取得好的結(jié)果(例如,NASNet使用了48000 GPU-hours)。
其次,遵循這一模式的許多方法仍然無法擊敗人工設(shè)計(jì)的最佳架構(gòu),尤其在計(jì)算資源受限的情況下。
基于網(wǎng)絡(luò)變換( Network Transformation)的神經(jīng)結(jié)構(gòu)搜索
在這種情況下,一個(gè)想法便是:既然我們已經(jīng)有許多成功的人工設(shè)計(jì)的架構(gòu),現(xiàn)有的神經(jīng)架構(gòu)搜索方法都無法輕易超越它們,那么為什么不利用它們呢?
為了實(shí)現(xiàn)這點(diǎn),上交大團(tuán)隊(duì)在AAAI 2018大會(huì)上發(fā)表的工作EAS(“Efficient Architecture Search by Network Transformation”)中提出:可以不從頭開始進(jìn)行神經(jīng)架構(gòu)搜索,而是使用現(xiàn)有的網(wǎng)絡(luò)作為起點(diǎn),通過網(wǎng)絡(luò)變換(Network Transformation)的方式來探索架構(gòu)空間。具體的,他們使用了Net2Net操作(一類 function-preserving的網(wǎng)絡(luò)變換操作)來探索架構(gòu)空間。
EAS的Meta-controller
而在之后的ICLR 2018上,來自CMU的研究人員提出了“N2N Learning: Network to Network Compression via Policy Gradient Reinforcement Learning”,即利用網(wǎng)絡(luò)壓縮操作來自動(dòng)化地壓縮一個(gè)訓(xùn)練好的網(wǎng)絡(luò)。
當(dāng)前網(wǎng)絡(luò)變換方法的局限性
Net2Net和網(wǎng)絡(luò)壓縮操作的局限性在于他們都是layer-level的操作,例如添加(修剪)過濾器和插入(刪除)層。通過應(yīng)用這些layer-level的操作僅能改變網(wǎng)絡(luò)的深度和寬度,而不能修改網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。這意味著在給定一個(gè)鏈?zhǔn)浇Y(jié)構(gòu)的起點(diǎn)時(shí),它們總是會(huì)導(dǎo)致鏈?zhǔn)浇Y(jié)構(gòu)網(wǎng)絡(luò)。
然而,考慮到當(dāng)前最先進(jìn)的人工設(shè)計(jì)的架構(gòu)(例如Inception模型、ResNets和DenseNets等)已經(jīng)超越了簡單的鏈?zhǔn)浇Y(jié)構(gòu)布局,并且顯示出精心定制的路徑拓?fù)洌╬ath topology)的好處,因此對于這些基于變換的方法來說,這將是一個(gè)關(guān)鍵的需要解決的問題。
上交大和MIT的研究人員在ICML 2018發(fā)表的“Path-Level Network Transformation for Efficient Architecture Search”的主要目的便是解決這個(gè)問題。
路徑級網(wǎng)絡(luò)變換
研究人員提出將網(wǎng)絡(luò)變換從層級(layer-level)擴(kuò)展到路徑級(path-level)。
解決方案是從一些簡單的觀察開始??紤]一個(gè)卷積層,如果我們把多分支結(jié)構(gòu)( multi-branch structure)中的每一個(gè)分支都設(shè)為該層的復(fù)制,那么給定相同的輸入,每個(gè)分支必然會(huì)產(chǎn)生相同的輸出,這些輸出的平均值也等于卷積層的輸出。
卷積層和等價(jià)的multi-branch結(jié)構(gòu)
因此,我們可以構(gòu)造一個(gè)等效的多分支結(jié)構(gòu)(multi-branchstructure),并通過add操作合并卷積層。類似地,為了構(gòu)造一個(gè)通過串聯(lián)合并的等效多分支結(jié)構(gòu),可以將卷積層沿著輸出通道維度分割為幾個(gè)部分,并將每個(gè)部分分配給相應(yīng)的分支。這樣,它們輸出的串聯(lián)就等于卷積層的輸出。
對于其他類型的層,例如 identity 層和深度可分離卷積層(depth-wise separable convolution layer,),可以類似地進(jìn)行這種等價(jià)的替換。
identity層和等價(jià)的multi-branch結(jié)構(gòu)
更進(jìn)一步,通過將這些等價(jià)替換與Net2Net操作相結(jié)合,就可以任意修改神經(jīng)網(wǎng)絡(luò)的路徑拓?fù)洹?/p>
樹形結(jié)構(gòu)的架構(gòu)空間
在路徑級網(wǎng)絡(luò)變換的基礎(chǔ)上,研究人員探索了一個(gè)樹形的結(jié)構(gòu)空間(即多分支結(jié)構(gòu)的一個(gè)簡單的擴(kuò)展)。
形式上,樹形結(jié)構(gòu)單元由節(jié)點(diǎn)和邊組成。在每個(gè)節(jié)點(diǎn),定義有一個(gè)分配方案,用于確定如何為每個(gè)分支分配輸入特性映射(feature map);還有一個(gè)合并方案,用于確定如何合并分支的輸出。節(jié)點(diǎn)通過邊(edge)連接到每個(gè)子節(jié)點(diǎn),而邊被定義為一個(gè)單元操作(例如卷積、池化、 identity等)。
給定輸入特性映射x,節(jié)點(diǎn)的輸出將基于其子節(jié)點(diǎn)的輸出遞歸地定義。首先將輸入特性映射分配給每個(gè)分支。然后在每個(gè)分支上,分配的特征映射由相應(yīng)的邊和子節(jié)點(diǎn)處理。最后,合并它們以產(chǎn)生輸出。
樹形結(jié)構(gòu)的強(qiáng)化學(xué)習(xí)元控制器(RLMeta-Controller)
為了探索樹形結(jié)構(gòu)空間,研究人員使用了一個(gè)強(qiáng)化學(xué)習(xí)元控制器。這里的策略網(wǎng)絡(luò)包括一個(gè)編碼器網(wǎng)絡(luò),用于將輸入架構(gòu)編碼成一個(gè)低維向量,以及各種softmax分類器,用于生成相應(yīng)的網(wǎng)絡(luò)變換操作。
此外,由于輸入架構(gòu)現(xiàn)在具有樹形結(jié)構(gòu),無法簡單用一個(gè)字符串序列來表示,因此這里使用了樹形結(jié)構(gòu)編碼器網(wǎng)絡(luò)( tree-structured encoder network)。
樹形結(jié)構(gòu)的編碼器網(wǎng)絡(luò)
具體來說,除了用于在邊上執(zhí)行隱藏狀態(tài)變換的普通LSTM單元之外,還引入了兩個(gè)額外的樹結(jié)構(gòu)LSTM單元,以在節(jié)點(diǎn)上執(zhí)行隱藏狀態(tài)轉(zhuǎn)換。如上圖所示,使用這3個(gè)LSTM單元,整個(gè)過程以自下而上和自上而下的方式進(jìn)行,使每個(gè)節(jié)點(diǎn)中的隱藏狀態(tài)包含架構(gòu)的所有信息,類似于雙向LSTM。
三種不同類型的決策
然后,給定每個(gè)節(jié)點(diǎn)的隱藏狀態(tài),做出三種不同類型的決策。第一種類型是確定是否要將一個(gè)節(jié)點(diǎn)轉(zhuǎn)換為多個(gè)子節(jié)點(diǎn)。合并方案和分支數(shù)量都是預(yù)測的。第二種類型是確定是否插入新節(jié)點(diǎn)。第三種類型是用從一組可能的原始操作中選擇的層來替換 identity 映射。
實(shí)驗(yàn)和結(jié)果
以下是論文中提供的受限的計(jì)算資源下(大約200 GPU-hours)找到的最好的樹形單元(TreeCell-A):
我們可以將這樣的樹形單元嵌入到已有的人類設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu)(例如DenseNet,PyramidNet)當(dāng)中,而在CIFAR-10上的結(jié)果如下表所示
與原始的DenseNet和PyramidNet相比,樹形單元顯著提高了參數(shù)效率和測試誤差結(jié)果。與其他從頭開始的神經(jīng)架構(gòu)搜索方法(NASNet),TreeCell-A可以在大約一半?yún)?shù)的情況下實(shí)現(xiàn)更低的測試錯(cuò)誤率(2.30% test error with 14.3M parameters versus 2.40% test error with 27.6M parameters)。更重要的是,其所使用的計(jì)算資源要比NASNet少得多。
當(dāng)遷移到ImageNet(移動(dòng)設(shè)置)時(shí),與NASNets相比,樹形單元仍然可以獲得稍好的結(jié)果。
-
控制器
+關(guān)注
關(guān)注
112文章
16361瀏覽量
178024 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100760 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8418瀏覽量
132627
原文標(biāo)題:算力節(jié)省240倍!上交大、MIT新方法低成本達(dá)到谷歌AutoML性能
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論