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