4篇論文詳解One Shot NAS:方法綜述

2021-02-15 極市平臺
什麼是One shot NAS?

One-Shot NAS 有一個很大的特性就是:訓練一次 Supernet,便可以針對各種不同的constraint,得到多種不同的 network。

One-Shot NAS可以分成兩個階段,分別是 training stage 和 searching stage:

在這個階段,並不會進行搜索,而是單純訓練 Supernet ,使得 Supernet 收斂至一定的程度。

當 Training stage 結束時, Supernet 中的參數就被訓練收斂了,這個時候進入第二階段。

從 Supernet 中不斷取出 Sub-network,並使用 Supernet 的 weight 給Sub-network賦權重,這樣就可以得到不同的Sub-network 的 validation accuracy,直到取得最好且符合 hardware constraint 的 Sub-network。

正是因為weight shared,可以整合不同的search algorithm、evaluation algorithm(e.g., evolution algorithm, accuracy predictor),不斷的從 Supernet 當中取出sub-network。通常有以下兩類:

Parameterized architectures

這類方法是將模型結構分布不斷參數化,這些參數a在超網絡訓練期間與網絡權重w進行聯合優化。因此可以在優化時進行模型搜索,從分布中採樣最優的架構。

為了使用基於梯度的優化器進行直接搜索,通常在supernet中引入實值分類分布(架構參數),以達到與supernet權重聯合學習,如DARTS、FBNet和FBNetv2等。

Sampled single-path architectures

通過直接搜索離散的搜索空間,利用sampling算法對超網進行訓練,並對單條路徑進行優化。採樣可以是均勻抽樣或公平的多徑抽樣。訓練好的超級網通常作為不同路徑的性能評估器。優化路徑的方法可以是隨機搜索、進化算法等。如GreedyNAS等

一般有以下問題:

論文一

SMASH: One-Shot Model Architecture Search through HyperNetworks

1. Abstract

常規的網絡設計需要耗費大量的時間進行驗證,為了節約驗證時間,論文提出訓練一個輔助網絡HyperNet,用於動態生成不同結構模型的權重。

儘管使用這些生成權重的性能不如常規學習到的權重,但在訓練初期,使用生成權重的不同網絡的相對性能可以在一定程度上映射出其最優狀態時的相對性能。

因此,論文提出one-shot模型結構搜索SMASH(one-Shot Model Architecture Search through Hypernetworks),結合輔助網絡生成的權重,可以僅使用一輪訓練來對大量的結構進行排序。

SMASH方法用來評估廣泛的模型配置(在連接模式和每層單位),不處理其他超參數,如正則化、學習速率調度、權重初始化或數據增強。

2. 訓練流程

首先訓練輔助網絡HyperNet,在每個訓練階段,隨機採樣一個網絡,然後使用HyperNet生成權重,end-to-end地對其進行完整的反向訓練。在訓練好HyperNet後,隨機採樣大量的網絡結構,使用HyperNet生成的權重,然後在測試集上驗證性能。

3. 核心組件

為了探索具有深度、連接模式、層數等網絡結構,設計了一個memory bank的前饋網絡,能夠生成複雜且多分支的拓撲結構,並且能夠使用二進位向量進行編碼。

訓練一個輔助網絡HyperNet,直接學習二進位結構編碼到權重空間的映射。

論文二

ProxylessNAS: Direct Neural Architecture Search

Paper:https://openreview.net/forum?id=HylVB3AqYm

Code:https://github.com/MIT-HAN-LAB/ProxylessNAS

1. Motivation

NAS 可以自動設計有效的網絡結構,但是由於前期算法只能在小型數據集如CIFAR-10上進行搜索,而在大型數據集會出現GPU memory 消耗和耗時長的問題。

所以,很多算法就只能在 proxy task 上,例如在較小的數據集上訓練,或者僅用幾個 blocks 進行學習,或者僅僅訓練幾個 epoch。

這就可能引出如下的問題,算法在小數據上的搜索出來的模型,可能在 target task 上並不是最優的。

2.Contributions

1、ProxylessNAS 不需要使用代理任務,直接在大規模的數據及上搜索整個網絡

2、為NAS提供了一種新的路徑剪枝的方式,展示了NAS與模型壓縮之間的緊密關係,最終通過二值化的手段將內存消耗降低了一個量級

3、提出了一種基於梯度的方法(延遲正則化損失)來約束硬體指標。

3. 算法思路

作者首先描述了 over-parameterized network 的構建,然後利用 binarized architecture parameters 來降低顯存消耗,並提出一種基於梯度的方法,來訓練這些 binarized architecture parameters。最後提出處理不可微分的目標(e.g. latency)的方法,使其可以在特定的硬體上處理特定的神經網絡。

over-parameterized network

網絡結構定義為N(e,⋅⋅⋅,en), 其中 e表示一個有向無環圖中一條確定的邊,設O={oi}表示候選基礎元操作,對於每一條邊都對應了這些操作,而網絡搜索的就是每個e該選擇什麼操作O,mO表示每條邊上有並行的N條通路的混合操作,所以超參數化的網絡結構可表示為以下形式。

對於一個輸入x,混合操作mO的輸出結果是基於N條通路所形成的,在One-shot中mO(x)是{oi(x)}的和,當在DARTS中的時候mO(x)表示{oi(x)}的權重和,這個權重是通過對N條通路上的結構參數取softmax得到的。

ProxylessNAS 的做法是先構建一個多路徑的大網絡,訓練完後做 pruning 掉冗餘的路徑。

為了解決顯存佔用和 search candidates 線性增長的問題,將路徑上的 arch parameter 二值化(參考了 BinaryConnect),在搜索時僅有一條路徑處於激活狀態。

Handling Non-Differentiable hardware Metrics

為了使延遲可微,這裡的做法是將網絡的延遲建模為神經網絡維度的一個連續函數。

論文三

Single Path One-Shot Neural Architecture Search with Uniform Sampling

Paper:https://arxiv.org/abs/1904.00420

Code:https://github.com/megvii-model/SinglePathOneShot

1. Motivation

one shot將問題解耦成了train 和 search兩部分,a和w 不會再有耦合關係。但其仍然沒有解決w參數自身耦合的問題。

而SPOS在train階段每次sample一個architecture,然後只更新 w,為了最大限度地減少耦合,每次sample出的architecture只是A的一個single path。

論文提到的sample方法有2種:uniform sample 和 uniform constraint sample。

2. Single Path One-Shot

為減少節點權重之間的協同適應,曠視研究院提出最大化簡化搜索空間,它只包含單一路徑架構,在每次訓練時僅sample一個。不存在任何調優。

3. Uniform Sampling

通過實驗發現,均勻採樣已經足夠好。

[Channel Number Search]

旨在搜索一個卷積層的通道數。其主要思想是預先分配一個帶有最大通道數的權重張量。在超網絡訓練期間,系統隨機選擇通道數並分割出用於卷積的相應的子張量。

[Mixed-Precision Quantization Search]

選擇單元可以搜索卷積層權重和特徵的量化精度。在超網絡訓練中,特徵圖的位寬和和權重被隨機選取。

4. 進化算法的模型搜索

使用進化算法和隨機搜索兩種方法在進化迭代時的驗證集精度。結果表明進化算法搜索更有效。

論文四

GreedyNAS: Towards Fast One-Shot NAS with Greedy Supernet

Arxiv: https://arxiv.org/abs/2003.11236

1. Abstract

訓練一個超級網對於one shot nas方法很重要,因為它可以作為不同架構(路徑)的基本性能估計器。目前的方法主要假設應該對所有路徑給出合理的排名。

然而,對於一個超級網絡來說,在如此巨大的搜索空間上精確地評估是很困難的。

在本文,提出了不必覆蓋所有的路徑,而是通過鼓勵超級網更多地關注那些潛在的好的路徑的評估,來緩解超級網的負擔,使用驗證數據的代理項部分。

具體來說,在訓練過程中,提出了一種帶抑制的多徑採樣策略,並對弱路徑進行貪婪濾波。因此,訓練空間已經貪婪地從所有的道路縮小到那些潛在的好的道路。

此外,還採取了進一步的探索和通過引入一個經驗性候選人來制定開發政策路徑池。

GreedyNAS在ImageNet數據集上的實驗結果表明,在相同的條件下,它可以達到更好的Top-1精度搜索空間和觸發器或延遲級別,但只有supernet訓練成本的60%。

2. Motivation

(1)巨大的搜索空間帶來的評估壓力使Supernet難以準確地區分結構的好壞。

(2)由於所有結構的權重都是在Supernet中高度共享的,如果一個差的結構被訓練到了,好的結構的權重也會受到幹擾。這樣的幹擾會削弱好網絡的最終評估精度,影響網絡的搜索結果。

(3)對差的結構進行訓練相當於對權重進行了沒有必要的更新,降低Supernet的訓練效率。

3. Greedy path filtering

本文目的是把不同路徑分為好路徑和壞路徑,方法是通過一次性採樣多條(m條)路徑,在驗證集的子集直接通過計算損失對不同路徑進行排序。最後採樣m條路徑,保留前k條(m-k條判定為壞路徑,直接拋棄不訓練)。

4. Greedy training of supernet:

上述算法得到的k條路徑,更新候選池,再分別對每條路徑進行參數優化。

5. Training with exploration and exploitation

指訓練時每次以概率ε從候選池選模型,同時以1-ε的概率從整個搜索空間中選模型,避免有些好模型不在候選池中沒有被發現,兩種方式一共選m條路徑。

6. Early stopping

只要候選池模型保持穩定或變動很小,則證明超網訓練充分了。

7. Evolutionary searching

超網訓練完畢後,本文使用 NSGA-II 進化算法進行結構搜索。在進化算法中使用候選池中的結構進行Population的初始化,相較於隨機初始化,藉助於候選池能夠使進化算法有一個更好的初始,提升搜索效率及最終的精度。

當然,還有一些one shot nas的paper沒有介紹。

從以上文章可以看出,supernet的訓練方法比較重要,解w耦合,避免不好的節點的影響;後續還有CVPR2020NAS的總結,大家可以關注原作者。

相關焦點

  • One-Shot Relational Learning for Knowledge Graphs
    總結一下,論文的貢獻主要有三方面:    1.首次在link prediction任務中考慮long-tail relation同時將這個問題轉化為few-shot relational learning;    2.論文提出了一個高效的one-shot learning框架,與各種embedding-based方法相比性能更好;
  • NAS部署指南 群暉篇六—— NAS兼做路由器,群暉虛擬機套件教程
    大家好,前幾篇我們已經向介紹了群暉NAS的相冊、影音、下載、雲同步、遠程辦公等功能。
  • 7 Papers & Radios | Bengio等創建GNN權威基準;130頁知識圖譜綜述論文
    不同方法在基於 MNIST 和 CI-FAR10 的標準測試集上的測試結果(數值越高越好)。該結果是使用 4 個不同種子運行四次結果的平均值。紅色為最佳水平,紫色為高水平。推薦:這篇論文的亮點在於,即使只驗證了全連接網絡,但至少說明高性能 CPU 真的能滿足大模型的訓練,能大量降低硬體成本。摘要:近來知識圖譜在需要利用多樣化、動態和大規模數據集的諸多場景中吸引了工業界和學術界的注意,在本文中,研究者們對知識圖譜做了綜述性介紹。
  • 中科大-微軟最新《圖像到圖像轉換:方法與應用》綜述論文,19頁pdf
    在本文中,我們對近年來發展起來的I2I工作進行了綜述。我們將分析現有I2I工作的關鍵技術,並闡明社區取得的主要進展。此外,我們將闡述I2I對研究和行業社區的影響,並指出在相關領域仍存在的挑戰。具體來說,I2I已經廣泛應用於語義圖像合成[3],[4],[5],[6],圖像分割[7],[8],[9],風格轉移[2],[10],[11],[12],[13],圖像修復[14],[15],[16],[17],[18],3 d姿勢估計[19],[20],圖像/視頻彩色化[21], [22]、[23]、[24]、[25]、[26],圖像超解析度[27]、[28],域適配[29]、[30]、[31],卡通生成
  • 最新Few-Shot Learning綜述
    本文的主要內容來自下面兩篇Few-shot Learning的文獻綜述,結合筆者的理解對原paper進行了概括和總結,既作為自己的閱讀筆記,也作為比原文更通俗簡潔的快餐讀物獻給初次涉獵Few-shot Learning領域的讀者們。
  • 【必看系列】ECCV 2020 優秀論文大盤點-目標檢測篇
    其中 2 篇 Oral,6 篇 Spotlight,開源或者將開源的有26篇。其中有眾多非常值得參考的工作,比如Facebook的DETR,還有兩篇基於訓練策略無痛漲點的方法。Wegner單位 | IRISA, Universite Bretagne Sud;蘇黎世聯邦理工學院論文 | https://arxiv.org/abs/2003.10151基於圖的檢測方法在城市多視角目標檢測中的應用,在精度和效率方面都好於之前的方法。
  • 【目標檢測】Focal Loss 論文詳解
    Author:VincentLee   From: 曉飛的算法工程師筆記 論文分析了 one-stage 網絡訓練存在的類別不平衡問題,提出能根據 loss 大小自動調節權重的 focal loss,使得模型的訓練更專注於困難樣本。同時,基於 FPN 設計了 RetinaNet,在精度和速度上都有不俗的表現。
  • Meta Learning 1: 基於度量的方法
    在系列文章中我們會分享Meta Learning的兩類解決方案:基於優化的方法 Optimization-Based本文為系列文章第一篇,主要介紹Meta Learning是什麼,以及基於度量的方法中最經典的孿生網絡。
  • 7 Papers & Radios | 阿里達摩院自動駕駛新成果;邱錫鵬預訓練模型論文綜述
    ,以及復旦大學邱錫鵬教授發表的預訓練模型綜述論文。(附音頻)摘要:這篇長達 165 頁的論文所揭示的研究成果,一經發布,就在學界引發了廣泛的關注,《Nature》雜誌也對此進行了介紹。在這篇論文中,研究者正是沿著對抗攻擊這條路「欺騙」deepfake 的換臉操作。
  • 工程之道,MegEngine推理性能極致優化之綜述篇
    MegEngine 的推理性能優化有兩個階段,1)工程部署時的靜態圖優化,保證模型精度和訓練時一致,2)推理實現時的卷積優化,保證模型運算的最快速度。兩者最終的優化目標是實現模型推理又「好」又「快」。 深度學習中,卷積種類眾多,計算也最為耗時,成為首要優化對象,而推理側卷積優化更是重中之重。
  • 英偉達開源「Imaginaire」:九大圖像及視頻合成方法,你學fei了嗎?
    論文地址:https://arxiv.org/pdf/1903.07291.pdf在這篇論文中,來自 UC 伯克利、英偉達、MIT CSALL 的研究者提出了一種空間自適應歸一化方法,在給定輸入語義布局的情況下,實現了一種簡單有效的逼真圖像合成層
  • Few-shot Learning(小樣本學習) 之Siamese Network(孿生神經網絡)
    常說的one-shot learning和few-shot learning,都是指的是通過一個及少量的樣本習得模型,然後具有分類的能力。「one shot learning aims to learn information about object categories from one, or only a few, training samples/images」 --wiki「few-shot learning is refers to the practice of feeding a
  • 求問meta-learning和few-shot learning的關係是什麼?
    個人對meta-learning的了解不多,相關的論文並沒有深讀下去。但對針對few-shot learning還是做了一些研究的。感覺上 few-shot learning 主要是一個應用場景,一個普遍的問題。meta-learning是一種學習策略,一種框架。針對 few-shot 的場景,meta-learning是一種有效的方式。
  • 【深度】區間二型模糊集和模糊系統: 綜述與展望
    區間二型模糊集和模糊系統: 綜述與展望. 自動化學報, 2020, 46(8): 1539−1556http://www.aas.net.cn/cn/article/doi/10.16383/j.aas.c200133從仿真結果來看,本文方法在對複雜場景多曝光圖像序列融合HDR圖像時,能較好地去除偽影,且能保留絕大部分真實場景中的細節信息。客觀指標如表1所示。
  • 英偉達又火了一篇圖像轉換論文,我們竟然用來吸貓
    作者從中獲得啟發,探索一種 few-shot 無監督的圖像到圖像遷移算法,這種算法適用於測試時僅由少量樣本圖像指定的以前沒見過的目標類。通過對抗訓練方案和新網絡設計的結合,該模型能夠實現 few-shot 圖像生成。此外,在經過大量實驗驗證以及與基準數據集上的幾種基線方法比較後,作者證實了所提出框架的有效性。
  • 一張圖梳理YOLOv4論文
    Modified PANetPANet融合的時候使用的方法是Addition, 詳解見:CVPR 2018 PANet這裡YOLOv4將融合的方法由加法改為乘法,也沒有解釋詳細原因,但是yolov4.cfg中用的是route來連結兩部分特徵。
  • ACL最佳論文提出最新NLP模型測試方法,最佳論文提名也不可小覷
    導讀:近日,ACL 2020公布了最佳論文獎,另有兩篇最佳論文榮譽提名獎也各自提出了解決NLP領域問題的創新方法。
  • 系列篇|三維重建之純格雷碼三維重建
    圖中是一幅經典的雙目重建模型,在之前的系列篇中我們介紹了單目結構光重建可以使用雙目模型,只需要把投影儀看成一個逆相機就可以。圖中紅線即極線,也就是說,理論上相機成像點PL(圖中left camera) 對應的可能的投影儀(圖中Right Camra)中的位置是圖中紅線,如果知道對應的是圖中紅線哪一點,就可以解得準確的三維位置。
  • 防禦型英雄篇
    | 突擊型英雄篇以下正片,準備好了嗎?OW彩蛋之防禦型英雄篇『One shot, one kill』對付黑百合最好的方法就是用黑百合黑百合的部分皮膚上有『Cauchemar』的刺青,是法語『噩夢』的意思黑百合的傳說級皮膚黑天鵝(Odile)和白天鵝