2021-ICLRw-How Does Supernet Help in Neural Architecture Search? - 論文閱讀
How Does Supernet Help in Neural Architecture Search?
2021-ICLRw-How Does Supernet Help in Neural Architecture Search?
來源: ChenBong 部落格園
- Institute:MSRA
- Author:Yuge Zhang, Quanlu Zhang, Yaming Yang
- GitHub:/
- Citation:2
與2020-ArXiv-Deeper Insights into Weight Sharing in Neural Architecture Search
同一個團隊
Introduction
基於超網的NAS方法, 5個搜尋空間上進行實驗的一些發現:
- 一個well-trained 的supernet, 不一定是一個好的 subnet ranking model
- supernet作為ranking model的有效性, 與搜尋空間有關(有的空間上, supernet ranking相關性高, 有的低)
- supernet 更擅長髮現相對好的子網(top 10%), 而不擅長髮現最好的(top 1%)的子網
- 相比與發現好的子網, supernet更擅長髮現差的子網(可以用於search space pruning)
- supernet在小的搜尋空間上ranking效果差
- 但如果一個小的搜尋空間是經過合適地剪枝, (雖然ranking效果差) 但超網反而更容易發現好的子網 (top ranking的子網gt效能更高)
- supenet有固有的偏好(bias), e.g. 更偏向某些operation(這些operation的子網ranking高)
Motivation
- supernet NAS 很有效, 但缺乏理論的解釋;
- 很多工作通過實驗對supernet NAS進行分析, 但仍存在侷限性(e.g. 搜尋空間單一)
Contribution
- 第一次在多個搜尋空間上進行廣泛實驗
- 第一次分析了搜尋空間的剪枝
Method
Training Setup
最樸素的supenet NAS: uniform sampling (SPOS)
超網訓練的目標:
- 最小化所有子網的訓練損失
- 提供一個相關性高的子網效能評估器
Search Space
Metrics
衡量子網:
- Ground truth performance (ground truth): subnet train from scratch的acc1
- Supernet performance: subnet 繼承超網權重, 校正BN後的acc1
衡量空間:
- avg ground truth
- avg supernet performance (目標1: 最小化所有子網的訓練損失)
- (GT與sp的)Correlation (目標2: 提供一個相關性高的子網效能評估器): 隨機取樣的子網的Supernet performance 與 ground truth 之間的相關係數 (Spearman correlation), 取樣個數: (1k for NAS-Bench series, 100 for DARTS series, 20 for ProxylessNAS)
- Top-k: 隨機取樣1k個 subnet, 基於supernet performance選擇 top-k個, 查詢這k個subnet對應的gt, 報告最高的gt acc1
Experiments
確定了搜尋空間後, 探究不同的訓練設定(epoch)對各個metric的影響
number of epochs
超網訓練的epoch對各個metric的影響
3個metric:
- avg supernet perf (目標1: 最小化所有子網的訓練損失)
- Correlation (目標2: 提供一個相關性高的子網效能評估器)
- top-k (目標2: 提供一個相關性高的子網效能評估器)
avg supernet perf
- 增加訓練epoch, 可以提高5個搜尋空間上的 avg supernet perf
- ProxylessNAS上, 僅有2%的差距(可能可以通過繼續增加epoch來達到avg GT perf); 在NAS-Bench-101上, avg supernet perf 甚至超過了avg GT perf
- 但在其他3個搜尋空間上, 增加epoch帶來的增長趨於穩定, 且仍有較大差距, 似乎存在一個固有的上限
- ==> 說明在部分搜尋空間中, 通過訓練超網來同時優化大量的子網是可能的, 但需要較大的計算開銷(或其他訓練技巧)
Correlation
雖然 avg supernet perf 隨著epoch的增加持續上升, 但相關性並沒有這樣的趨勢
- 隨著epoch的增加, correlation開始上升, 但很快飽和, 甚至開始下降, DARTS-PTB空間上, 甚至隨著epoch增加, correlation降為負值
- avg supernet perf與correlation沒有相關性(avg supernet perf高的空間, correlation不一定高)
- ==> 說明超網訓練的2個目標: 1. 最小化所有子網的訓練損失 2. 提供一個相關性高的子網效能評估器; 2個目標之間存在gap, 兩個目標不相關甚至互相沖突(不能同時達到)
Top-k
所有子網的ranking質量(Correlation)只是一箇中間指標, top-k的子網質量對於supernet NAS來說更重要
ps.
- top1/10 指使用supernet生產的rank, 取top1/10的子網中的best GT
- random top1/10 指生成隨機rank, 取top1/10的(隨機取1/10個)子網中的best GT(可以作為baseline)
- top10基本上都比top1更好 ==> supernet有助於找到較好的網路, 但很難找到最好的
- 較好的correlation通常會產生較好的top1和top10
- DARTS-CIFAR10的使用超網rank找到的 top1/10 優勢最大, DARTS-PTB甚至比隨機的baseline更差 ==> weight sharing NAS的有效性與搜尋空間有關
Bias of Weight Sharing NAS
上一節說明了Weight Sharing NAS的有效性(ranking的質量)對不同搜尋空間的bias(偏好)
這一節討論Weight Sharing NAS在同一個搜尋空間內, 對不同子網的bias(偏好)
不同的epoch, 子網rank相似度很高 => 增加epoch幾乎不再改變子網rank => rank進入穩定狀態, 但這個穩定狀態和GT的rank還有較大的差距, 說明weight share NAS與GT之間的bias(偏差)是真實存在的
Bias towards big models
一般來說, 模型越大, 效能越好, 因此如果直接用模型大小來預測效能, 也能得到一組rank
對於包含不同大小的子網的搜尋空間(NAS-Bench-101)來說,
ps. param生成的rank(PS); GT的rank(GT); weight sharing NAS生成的rank(WS)
- PS與GT相似度高達(PS, GT)=0.67, 超過了所有WS與GT: (WS, GT)=0.6 => (PS, GT) < (WS, GT)
- WS與PS的相似度(WS, PS=0.7) 高於 WS與GT(WS, GT)=0.6 => WS, 說明WS比GT更偏好引數量大的子網(對引數量大的子網的rank更高)
Bias towards certain operators
supernet會偏好某些operation(讓選擇了這些op的子網效能更高), 但不一定說明這些op在train from scratch時效能也會較好
分組抽樣
在NAS-Bench-201中, 超網認為選擇了conv3x3的子網效能更好, 但在GT中, 效能最好的子網大部分都是選擇skip
Pruned Search Space
Intuition: 減小空間, 降低子網的互相干擾; 提高空間的整體質量, 使得baseline提高
Effectiveness of Pruning
- Optimistic Pruning: Prune architectures with the worst ground truth performance
- Random Pruning: Prune a random part of search space
第一行NAS-Bench-101, 第二行NAS-Bench-201, 每個點是3個supernet上的平均值
左
-
圖例
- 2種空間剪枝方式:
- 最優空間剪枝(黑色);
- 隨機空間剪枝(藍色)
- 2種搜尋方式:
- 使用超網rank搜尋top10(best GT)(實線);
- 使用隨機搜尋(隨機抽10個, 取best GT)top10(虛線)(代表空間的平均子網效能)
- 2種空間剪枝方式:
-
藍色虛線不隨prune factor上升 ==> 隨機空間剪枝不能提高空間的評價子網效能;
-
黑色虛線隨著prune factor 上升 ==> 而最優空間剪枝可以提高空間的平均子網效能
-
藍色實線不隨著prune factor 上升 ==> 隨機空間剪枝不能提高超網的top10, 不能提高超網找到優質結構的能力
-
黑色實線隨著prune factor 上升 ==> 最優空間剪枝可以提高超網的top10, 即可以提高超網找到優質結構的能力
中
- GT 與supernet perf的相關性Correlation
- ==> Correlation與空間剪枝率沒有明顯的關係(無論哪種剪枝方式), 也就是增加空間剪枝率(使用小空間)不會提高相關性, 但
右
- 圖例
- avg (supernet perf)
- best (supernet perf)
- ==> 最優空間剪枝可以提高評價子網效能以及最佳子網效能, 隨機空間剪枝不一定可以
Conclusion
Summary
- 子網rank的相關性是一個很困難的問題, 不同子網間的權重共享導致固有的相互干擾, 目前的超網NAS中好像還沒有任何方法可以在權重共享的情況下提高子網rank的相關性
- 根據上一篇的結論, 子網繼承超網權重, 進行少量(10個batch)的fine-tune(不共享權重), 可以顯著提高rank的相關性
- 另一種做法是通過對空間進行適當的剪枝, 提高空間的整體子網質量, 不能提高rank相關性, 但可以提高找到優質子網的能力(baseline提高了)