<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Bag of Tricks for Neural Architecture Search

          共 3539字,需瀏覽 8分鐘

           ·

          2021-11-06 15:48



          【GiantPandaCV導(dǎo)語】

          相比于普通的分類網(wǎng)絡(luò),基于超網(wǎng)的NAS更加難以訓(xùn)練,會(huì)出現(xiàn)收斂效果較差甚至不收斂的情況。并且,基于超網(wǎng)的NAS還需要額外關(guān)注子網(wǎng)的排序一致性等問題,訓(xùn)練策略的選擇也極為重要。AutoSlim, BigNAS等文章都花費(fèi)了大量篇幅來講解超網(wǎng)的訓(xùn)練技巧。本文是CVPR2021 Workshop中的一篇短文,介紹了NAS中常用的Tricks。



          1. 介紹

          NAS在很多問題和benchmark上都取得了SOTA的成就,比如圖像分類、語義分割、目標(biāo)檢測(cè)等領(lǐng)域。但是NAS往往詬病于其訓(xùn)練的不穩(wěn)定性,并且除了比較優(yōu)化的架構(gòu),還往往添加了不透明、不公平的trick來提高性能。這樣模型性能的提高很難判斷是由于trick帶來的還是模型結(jié)構(gòu)帶來的。

          尤其是one-shot模型,對(duì)超參數(shù)非常敏感,并且不比隨機(jī)搜索的結(jié)果更好。

          很多文章雖然涉及到了訓(xùn)練的技巧,但是往往并不全面,甚至有些文章可能忽略了對(duì)訓(xùn)練技巧的說明。

          所以這篇短文會(huì)討論:

          • 如何提升模型訓(xùn)練的穩(wěn)定性。
          • 如何提升模型訓(xùn)練的高效性。
          • 如何提升模型訓(xùn)練的整體性能。

          2. 基于梯度的NAS的穩(wěn)定&訓(xùn)練one-shot模型的方法

          2.1 weights warm-up

          Gradient-based NAS(最經(jīng)典的DARTS)通常是將離散的搜索空間進(jìn)行連續(xù)化,使用網(wǎng)絡(luò)架構(gòu)參數(shù)α作為權(quán)重來決定各個(gè)op的重要性。

          通常使用的是bi-level optimization的方法進(jìn)行優(yōu)化。但是這種方式可能會(huì)帶來問題,即搜索空間的過早收斂。

          過早收斂問題的一個(gè)通用的Trick 是:

          • 一開始只優(yōu)化網(wǎng)絡(luò)的權(quán)重
          • 在整個(gè)搜索過程經(jīng)歷一半以后再進(jìn)行優(yōu)化網(wǎng)絡(luò)架構(gòu)參數(shù)。

          Sampling-based NAS也會(huì)有類似的weights warm-up的方法。One-Shot(Bender)一開始訓(xùn)練整個(gè)one-shot網(wǎng)絡(luò)模型,然后逐步提高path dropout rate。TuNAS中打開一個(gè)one-shot模型中的全部候選op,然后讓選擇全部op的概率下降到0。

          還可以將兩個(gè)過程完全解耦:

          • 先對(duì)one-shot模型進(jìn)行完全的訓(xùn)練
          • 然后在進(jìn)行搜索過程。

          2.2 正則化和Loss Landscape Smoothing

          通過使用強(qiáng)大的正則化方法來平滑loss landscape可以有效穩(wěn)定網(wǎng)絡(luò)搜索的過程。

          通常采用的方法有:

          • drop path
          • weight decay
          • data augmentation
          • robust loss functions (SAM谷歌的)
            • Stabilizing differentiable archi- tecture search via perturbation-based regularization
          • implicitly smoothing the loss function via auxiliary connections.
            • Robustly stepping out of performance collapse without indicators.

          2.3 Normalization 方法

          在NAS中Normalization方法的選擇非常關(guān)鍵,對(duì)于Gradient-based NAS比如DARTS來說,使用傳統(tǒng)的Batch Norm, Layer Norm, Instance Norm, Group Norm都存在比較大的問題。因?yàn)锽N中的可學(xué)習(xí)參數(shù)會(huì)導(dǎo)致網(wǎng)絡(luò)架構(gòu)參數(shù)的放縮,這樣網(wǎng)絡(luò)架構(gòu)參數(shù)就變得沒有意義了。因此在DARTS-Like的NAS算法中,往往禁用BN中的可學(xué)習(xí)參數(shù)。

          甚至有一些文章表明BN對(duì)NAS結(jié)果產(chǎn)生負(fù)面影響,因此在網(wǎng)絡(luò)構(gòu)建過程中不使用BN。Batch Norm在與one-shot NAS算法結(jié)合的時(shí)候往往會(huì)存在問題,因?yàn)閛ne-shot 模型往往全部保存在內(nèi)存中,由于內(nèi)存的限制,batch size往往比較小。

          Batch Norm和基于采樣的方法結(jié)合也會(huì)存在問題,因?yàn)闅w一化統(tǒng)計(jì)量會(huì)隨著不同的采樣路徑而變化。在訓(xùn)練one-shot nas的過程中,一開始可能會(huì)出現(xiàn)訓(xùn)練不穩(wěn)定的情況,可以以下幾種方法來克服:

          • 使用驗(yàn)證階段的batch統(tǒng)計(jì)量(又稱BN Calibration)
          • 使用Ghost Batch Normalization
          • 使用synchronized Batch Normalization完成跨GPU的BN
          • NAS-FCOS使用了Group Normalization來取代BN。

          3. NAS訓(xùn)練過程加速

          3.1 Proxy代理任務(wù)

          常見的加速NAS訓(xùn)練過程的方法就是低保真度(low fidelity),比如搜索過程中使用更少的filter,訓(xùn)練更少的epoch,減少訓(xùn)練樣本數(shù)量、降低圖像分辨率、減少網(wǎng)絡(luò)層數(shù)等方法。其中Econas研究了低保真度的影響,并評(píng)估了如何結(jié)合不同的代理來實(shí)現(xiàn)最佳速度,同時(shí)保持高度的排序一致性。

          3.2 緩存功能

          NAS在被用到目標(biāo)檢測(cè)、語義分割等領(lǐng)域的時(shí)候,一般可以將網(wǎng)絡(luò)劃分為幾個(gè)部分,如stem、head等。在搜索過程中,如果主干網(wǎng)絡(luò)在搜索過程中是固定的,那么其輸出就可以被提前計(jì)算出來,避免不必要的計(jì)算,從而加速搜索過程。

          3.3 Sequential搜索

          不同時(shí)優(yōu)化網(wǎng)絡(luò)架構(gòu)的幾個(gè)組件,而是采用順序優(yōu)化的方式。最經(jīng)典的當(dāng)屬once for all,按照分辨率-kernel size-depth-width的順序依次優(yōu)化目標(biāo)。

          對(duì)于目標(biāo)檢測(cè)的搜索問題,首先可以搜索多尺度特征提取器,然后搜索檢測(cè)頭。

          3.4 預(yù)先優(yōu)化搜索空間

          借鑒人類的先驗(yàn)知識(shí)進(jìn)行搜索可以幫助構(gòu)建搜索空間,比如搜索空間常?;趇nverted residual block構(gòu)建,本質(zhì)上就是優(yōu)化這些block中的超參數(shù),比如kernel size,dilation rate,expansion rate等。

          但是缺點(diǎn)也很明顯,這種預(yù)先定義的搜索空間很難發(fā)現(xiàn)全新的體系結(jié)構(gòu),比如transformer等。

          4. 提升模型表現(xiàn)

          4.1 在搜索過程中找到最優(yōu)架構(gòu)

          如何在搜索過程中找到最優(yōu)架構(gòu)是至關(guān)重要的:

          • 由于幾乎所有的方法都采用低保真度估計(jì),代理任務(wù)上的rank排名可能和真實(shí)任務(wù)上的rank排名并不一致。
          • 目前還沒有很好的理解權(quán)重共享機(jī)制是如何影響架構(gòu)的排序。

          為了減少 co-adaptation問題,F(xiàn)ew-Shot neural architecture Search提出了使用Sub-one-shot模型的方法,每個(gè)子模型負(fù)責(zé)覆蓋一部分的搜索空間。

          對(duì)于Darts這種直接根據(jù)網(wǎng)絡(luò)架構(gòu)參數(shù)最大值,認(rèn)為其對(duì)應(yīng)的就是網(wǎng)絡(luò)最優(yōu)架構(gòu)的方法最近也有很多質(zhì)疑,rethink archtecture selection in differentiable NAS 中認(rèn)為這種先驗(yàn)并沒有理論依據(jù),也未得到證實(shí)。提出了一種不同的方案來離散化網(wǎng)絡(luò)架構(gòu),在移除op的時(shí)候,最小化性能下降的影響。

          4.2 超參數(shù)、數(shù)據(jù)增強(qiáng)和其他微調(diào)

          網(wǎng)絡(luò)的性能受很多因素影響:

          • data augmentation: cutout,mixup, autoaugmentation
          • stochastic regularization: shake-shake等
          • activation functions: Search for activation functions
          • learning rate: SGDR

          ICLR20一篇文章 NAS is trustratingly hard 進(jìn)行了詳盡的消融實(shí)驗(yàn),證明了訓(xùn)練流程甚至要比網(wǎng)絡(luò)的架構(gòu)更加重要。

          此外,搜索的超參數(shù)對(duì)one-shot NAS方法額外重要。ICLR20另一篇Nas-bench-1shot1優(yōu)化了各種one-shot網(wǎng)絡(luò)算法的超參數(shù),找到的解決方案可以優(yōu)于黑盒NAS優(yōu)化器。

          后記

          NAS工程實(shí)現(xiàn)以及優(yōu)化方式與傳統(tǒng)普通的CNN構(gòu)建方式有所不同,對(duì)工程要求更高,使用不同的Trick,不同的優(yōu)化方式對(duì)超網(wǎng)的訓(xùn)練都有比較大的影響。本文剛好收集了一批這樣的Trick,在工程實(shí)踐方面有很大的參考價(jià)值。


          ps: 近期筆者在CIFAR10數(shù)據(jù)集上測(cè)評(píng)了常見的模型,同時(shí)收集了一批Trick和數(shù)據(jù)增強(qiáng)方法。如果有遺漏的,歡迎在Issue中補(bǔ)充。

          項(xiàng)目鏈接:https://github.com/pprp/pytorch-cifar-tricks



          - End -



          瀏覽 40
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日无码| 高清无码免费观看视频 | 国产亚洲欧美日韩高清 | 91人人| 免费a在线观看 |