您的位置:首頁 > 科技 >

        NAS在單個GPU上僅需執(zhí)行4個小時 看神經(jīng)架構(gòu)搜索如何進化

        2020-05-08 15:28:39 來源: 機器之心

        神經(jīng)架構(gòu)搜索(NAS)取代了人類「第二階」的調(diào)參工作,使我們能以兩層黑箱的方式尋找最優(yōu)神經(jīng)網(wǎng)絡。這一模式如果能物美價廉地應用,自然是很

        神經(jīng)架構(gòu)搜索(NAS)取代了人類「第二階」的調(diào)參工作,使我們能以兩層黑箱的方式尋找最優(yōu)神經(jīng)網(wǎng)絡。這一模式如果能物美價廉地應用,自然是很誘人,要知道「800 個 GPU 訓練 28 天」基本不是個人承受得起的。在本文中,作者為我們介紹了 NAS 的進化史,即如何利用多種改進手段,將訓練成本壓縮到「凡人皆可染指」的程度。 神經(jīng)架構(gòu)搜索 (NAS) 改變了構(gòu)建新神經(jīng)網(wǎng)絡架構(gòu)的過程。這種技術可以自動地為特定問題找到最優(yōu)的神經(jīng)網(wǎng)絡架構(gòu)。「最優(yōu)」的定義可以看成是對多個特征之間的權(quán)衡過程進行建模,例如網(wǎng)絡的大小和準確率 [1]。更令人印象深刻的是,現(xiàn)在 NAS 在單個 GPU 上僅需執(zhí)行 4 個小時,過去在 800 個 GPU 上需要執(zhí)行 28 天。而實現(xiàn)這一飛躍只花了兩年時間,現(xiàn)在我們不需要成為 Google 員工就可以使用 NAS。

        但是,研究人員如何實現(xiàn)這一性能飛躍呢?本文將介紹 NAS 的發(fā)展之路。

        催化劑

        NAS 的歷史可以追溯到 1988 年的自組織網(wǎng)絡思想 [2],但直到 2017 年 NAS 才取得了首個重大突破。當時訓練循環(huán)神經(jīng)網(wǎng)絡 (RNN) 來生成神經(jīng)網(wǎng)絡架構(gòu)的想法出現(xiàn)了。

        簡單地說,這個過程類似于人類手工尋找最佳架構(gòu)的過程。基于最優(yōu)操作和超參數(shù)的預定義搜索空間,控制器將測試不同的神經(jīng)網(wǎng)絡配置。在這種情況下,測試配置意味著組裝、訓練和評估神經(jīng)網(wǎng)絡,以觀察其性能。

        經(jīng)過多次迭代后,控制器將了解哪些配置能夠構(gòu)成搜索空間內(nèi)的最佳神經(jīng)網(wǎng)絡。不幸的是,在搜索空間中找出最優(yōu)架構(gòu)所需的迭代次數(shù)非常大,因此該過程十分緩慢。

        其部分原因是搜索空間遭受了組合爆炸的影響,即搜索空間中可能的網(wǎng)絡數(shù)量隨著添加到搜索空間的組件數(shù)量而大大增加。然而,這種方法確實能夠找到當前最佳 (SOTA) 網(wǎng)絡,該網(wǎng)絡現(xiàn)在被稱為 NASnet [3],但它需要在 800 個 GPU 上訓練 28 天。如此高的計算成本使得搜索算法對大多數(shù)人來說都是不切實際的。

        那么,如何改進這一想法使其更容易使用呢?在 NAS 訓練過程中,大部分耗時來自于訓練和評估控制器建議的網(wǎng)絡。使用多個 GPU 可以并行訓練模型,但它們的單獨訓練過程所耗時間仍然相當長。減少訓練和評估神經(jīng)網(wǎng)絡的計算成本將對 NAS 的總搜索時間產(chǎn)生很大的影響。

        這就引出了一個問題:如何在不對 NAS 算法產(chǎn)生負面影響的情況下,降低訓練和評估神經(jīng)網(wǎng)絡的計算成本?

        降低保真度估計

        眾所周知,較小的神經(jīng)網(wǎng)絡比較大的神經(jīng)網(wǎng)絡訓練速度更快。原因很簡單,較小網(wǎng)絡的計算成本較低。然而,就準確率而言,較小的神經(jīng)網(wǎng)絡通常比較大的神經(jīng)網(wǎng)絡性能更差。NAS 的目標是找到 SOTA 網(wǎng)絡架構(gòu),那么是否有方法可以在不犧牲最終性能的情況下,在搜索算法中使用較小的模型呢?

        答案可以在最著名的計算機視覺架構(gòu) ResNet [4] 中找到。在 ResNet 架構(gòu)中,我們可以觀察到同一組操作被一遍又一遍地重復。這些操作構(gòu)成殘差塊,是 ResNet 的構(gòu)建塊。這種設計模式使得研究者可以通過改變堆疊殘差塊的數(shù)量,來創(chuàng)建同一模型的更深或更淺的變體。

        此架構(gòu)設計中隱含的假設是,可以通過迭代地堆疊結(jié)構(gòu)良好的構(gòu)建塊,來創(chuàng)建高性能的更大型網(wǎng)絡,這種做法完全適合 NAS。在 NAS 的語境下,這意味著先訓練和評估小模型,然后擴展該神經(jīng)網(wǎng)絡。例如,先在 ResNet18 上執(zhí)行 NAS,然后通過重復得到的構(gòu)建塊來構(gòu)建 ResNet50。

        用搜索構(gòu)建塊替代搜索整個架構(gòu),以及訓練和評估較小的模型,可以極大地提高速度,研究者實現(xiàn)了在 450 塊 GPU 上僅耗費 3-4 天的搜索時間 [5]。此外,即使只搜索構(gòu)建塊,該技術也能夠找到 SOTA 架構(gòu)。

        然而,盡管這是一項巨大改進,但整個過程仍然相當緩慢,并且要想投入實際應用,訓練所需的 GPU 數(shù)量必須減少。無論模型大小如何,從零開始訓練神經(jīng)網(wǎng)絡始終是一個耗時的過程。有沒有一種方法可以重用以前訓練好的網(wǎng)絡中的權(quán)重呢?

        權(quán)重繼承

        如何避免從頭開始訓練神經(jīng)網(wǎng)絡?答案是使用權(quán)重繼承,即從另一個已經(jīng)訓練過的網(wǎng)絡中借用權(quán)重。在 NAS 中,搜索是在特定的目標數(shù)據(jù)集上進行的,并且有多個架構(gòu)同時訓練。為什么不重用權(quán)重,只更改架構(gòu)呢?畢竟,搜索過程的目的是尋找架構(gòu)而不是權(quán)重。為了實現(xiàn)重用權(quán)重,我們需要用更嚴格的結(jié)構(gòu)定義來限制搜索空間。

        通過定義允許在搜索構(gòu)建塊中存在的隱藏狀態(tài)的數(shù)量,搜索空間變得非常有限。換句話說,構(gòu)建塊內(nèi)操作的可能組合數(shù)量較大,但并非無限。如果將隱藏狀態(tài)排序,并將它們的拓撲預定義為有向無環(huán)圖 (DAG),則搜索空間如圖 3 所示。

        使用這個搜索空間,我們可以把控制器建議的架構(gòu)看作是來自更大網(wǎng)絡的子網(wǎng)絡,其中較大的網(wǎng)絡和子網(wǎng)絡共享相同的隱藏狀態(tài)(節(jié)點)。

        當控制器建議使用某個網(wǎng)絡架構(gòu)時,這意味著選擇一組連接(邊)的子集,并為隱藏狀態(tài)(節(jié)點)分配新的操作。這種形式意味著很容易以編碼方式保存節(jié)點上操作的權(quán)重,從而實現(xiàn)權(quán)重繼承。在 NAS 設置中,這意味著以前架構(gòu)的權(quán)重可以用作下一個采樣網(wǎng)絡的初始化 [6]。眾所周知,初始化可以很好地獨立于任務或操作 [7] 運行,且由于沒有從頭開始訓練模型,因此可以進行更快的訓練。

        既然現(xiàn)在已經(jīng)不再需要從零開始訓練每個模型了,那么網(wǎng)絡的訓練和評估就會快得多。在單個 GPU 上 NAS 只需要 0.45 天的訓練時間,相比之前實現(xiàn)了約 1000 倍的提速 [6]。優(yōu)化技術的結(jié)合大大提高了基于強化學習的 NAS 的速度。

        這些改進都集中在更快地評估單個架構(gòu)上。然而,強化學習方法并不是最快的學習方法。是否存在一個替代性搜索過程,可以更高效地遍歷搜索空間?

        在基于強化學習的 NAS 過程中,需要訓練多個模型以便從中找到最佳模型。那么有沒有辦法避免訓練所有的模型,而只訓練一個模型呢?

        可微性

        在搜索空間的 DAG 形式中,訓練的網(wǎng)絡是較大網(wǎng)絡的子網(wǎng)絡。那么是否可以直接訓練這個更大的網(wǎng)絡,并以某種方式了解哪些操作貢獻最大呢?答案是肯定的。

        如果移除控制器,并將邊更改為表示所有可能的操作,則搜索空間可微分。在這個密集的架構(gòu)中,所有可能的操作都在每個節(jié)點上以加權(quán)和的形式組合起來。加權(quán)和是可學習參數(shù),使得網(wǎng)絡能夠縮放不同的操作。這意味著可以縮小不利于性能的操作,擴大「良好」的操作。訓練較大的網(wǎng)絡后,剩下要做的就是觀察權(quán)重并選擇對應較大權(quán)重的操作。

        通過對搜索空間求微分和訓練更大的網(wǎng)絡(通常稱為「超級網(wǎng)絡」),我們不再需要訓練多個架構(gòu),并且可以使用標準梯度下降優(yōu)化器。NAS 的可微性為未來發(fā)展開辟了許多可能性。其中一個例子是 NAS 中的可微分采樣 [9],由于每個前向傳播和反向傳播在搜索中需要使用的操作減少,因此該方法將搜索時間縮短到只要 4 個小時。

        結(jié)語

        NAS 訓練時間如何從多天縮短到幾個小時的故事先到此為止吧。在這篇文章中,我試圖概述驅(qū)動 NAS 發(fā)展的最重要想法。現(xiàn)在,NAS 技術已經(jīng)足夠高效,任何有 GPU 的人都可以使用它,你還在等什么?

        關鍵詞: NAS

        精選 導讀

        募資55億港元萬物云啟動招股 預計9月29日登陸港交所主板

        萬科9月19日早間公告,萬物云當日啟動招股,預計發(fā)行價介乎每股47 1港元至52 7港元,預計9月29日登陸港交所主板。按發(fā)行1 167億股計算,萬

        發(fā)布時間: 2022-09-20 10:39
        管理   2022-09-20

        公募基金二季度持股情況曝光 隱形重倉股多為高端制造業(yè)

        隨著半年報披露收官,公募基金二季度持股情況曝光。截至今年二季度末,公募基金全市場基金總數(shù)為9794只,資產(chǎn)凈值為269454 75億元,同比上

        發(fā)布時間: 2022-09-02 10:45
        資訊   2022-09-02

        又有上市公司宣布變賣房產(chǎn) 上市公司粉飾財報動作不斷

        再有上市公司宣布變賣房產(chǎn)。四川長虹25日稱,擬以1 66億元的轉(zhuǎn)讓底價掛牌出售31套房產(chǎn)。今年以來,A股公司出售房產(chǎn)不斷。根據(jù)記者不完全統(tǒng)

        發(fā)布時間: 2022-08-26 09:44
        資訊   2022-08-26

        16天12連板大港股份回復深交所關注函 股份繼續(xù)沖高

        回復交易所關注函后,大港股份繼續(xù)沖高。8月11日大港股份高開,隨后震蕩走高,接近收盤時觸及漲停,報20 2元 股。值得一提的是,在7月21日

        發(fā)布時間: 2022-08-12 09:56
        資訊   2022-08-12

        萬家基金再添第二大股東 中泰證券擬受讓11%基金股權(quán)

        7月13日,中泰證券發(fā)布公告,擬受讓齊河眾鑫投資有限公司(以下簡稱齊河眾鑫)所持有的萬家基金11%的股權(quán),交易雙方共同確定本次交易的標的資

        發(fā)布時間: 2022-07-14 09:39
        管理   2022-07-14

        央行連續(xù)7日每天30億元逆回購 對債市影響如何?

        央行12日再次開展了30億元逆回購操作,中標利率2 10%。這已是央行連續(xù)7日每天僅進行30億元的逆回購縮量投放,創(chuàng)下去年1月以來的最低操作規(guī)

        發(fā)布時間: 2022-07-13 09:38
        資訊   2022-07-13

        美元指數(shù)創(chuàng)近20年新高 黃金期貨創(chuàng)出逾9個月新低

        由于對美聯(lián)儲激進加息的擔憂,美元指數(shù)11日大漲近1%創(chuàng)出近20年新高。受此影響,歐美股市、大宗商品均走弱,而黃金期貨創(chuàng)出逾9個月新低。美

        發(fā)布時間: 2022-07-13 09:36
        資訊   2022-07-13

        美股三大股指全線下跌 納斯達克跌幅創(chuàng)下記錄以來最大跌幅

        今年上半年,美股持續(xù)回落。數(shù)據(jù)顯示,道瓊斯指數(shù)上半年下跌15 3%,納斯達克綜合指數(shù)下跌29 5%,標普500指數(shù)下跌20 6%。其中,納斯達克連續(xù)

        發(fā)布時間: 2022-07-04 09:51
        推薦   2022-07-04

        融資客熱情回升 兩市融資余額月內(nèi)增加超344億元

        近期A股走強,滬指6月以來上漲4%,融資客熱情明顯回升。數(shù)據(jù)顯示,截至6月16日,兩市融資余額1 479萬億元,月內(nèi)增加344 67億元,最近一個半

        發(fā)布時間: 2022-06-20 09:41
        資訊   2022-06-20

        4個交易日凈買入超百億元 北向資金持續(xù)流入A股市場

        北向資金凈流入態(tài)勢延續(xù)。繼6月15日凈買入133 59億元后,北向資金6月16日凈買入44 52億元。自5月27日至今,除6月13日以外,北向資金累計凈

        發(fā)布時間: 2022-06-17 09:37
        推薦   2022-06-17