論文閱讀20.05-第四周

Rethinking Performance Estimation in Neural Network Search

作者自己寫的筆記

這篇文章認爲,NAS的主要時間消耗都放在了採樣出來的網絡的訓練上面了,而直覺意義上的減少層數、分辨率、迭代次數不能保證精度與實際精度的一致性。事實上,把搜索過程中每一個子網絡的訓練配置當作參數的話,這篇文章的工作就是搜索出一種子網絡訓練方法,使得子網絡的訓練不太耗時,同時訓練出來的精度能代表真實的精度(Spearman排序相關度)。
maxbΩrs(Rf,Rb)+λT(Gb)\max_{b\in\Omega}r_s(R_f,R_b)+\lambda\overline{T(\mathcal{G}_b)}
文章接下來的重點就是如果儘可以減少求解這個優化問題所需要的時間

很不幸,對於每一個bb要計算它的目標函數都需要訓練所有可能的模型結構G\mathcal{G},據某項研究表明,所有結構中採樣100個,就能對一組參數配置bb進行足夠準確的評價。

但是即使是100個,每個訓10h的話,評估一個bb也要1000h。那下一步就要從採樣哪些bb、多少bb上來做文章。這個時候就有以下兩點原則:

  • 對於任何一個參數,稍微多采樣一些訓練時間少的bb
  • 對於一個不重要的參數,直接定爲最節省時間的配置

基於以上原則,在一開始,文章先按與Flops負相關的方式獨立決定了每個配置參數的獨立採樣概率,保證了Flops少的採樣概率高。而後,對於採樣到的部分配置樣本集訓練一個用於迴歸的隨機森林。每個分點由一個參數和一個閾值確定。之後可以在森林裏面計算出每個參數的重要程度,然後將最不重要的參數固定成最小值繼續擴增樣本。直到只有一個重要的參數爲止。
MIP算法流程
文章用搜索出來的BPE去結合相關的NAS算法,時間快了很多。但是考慮到訓練BPE也需要>100GPU days,因此這個對比我個人覺得並不公平。另外,在進行不同任務、不同搜索域搜索時能不能遷移過去,我覺得還是需要討論的。

文章還分析了BPE的預測結果與真實採樣之間的相關性。對於越重要的參數,相關性是越高的,但是許多其他參數的線條就太平坦了,我覺得他這樣的優化方法最後是不是就着重關心某兩個參數了?
不同重要性參數預測分析
另外文章還討論了one-shot網絡方法。許多文章說one-shot的訓練結果不能代表真實精度。文章則指出one-shot訓練結果在全局相關性上差,但是在局部還行,所以就不穩定,很容易受到初始點什麼的影響。

文章存疑的問題:
1、隨機森林算法的具體實現可以看一下
2、每個參數獨立地按Flops進行採樣,但是flops不能由單個參數決定,其他參數在這個時候起到什麼作用
3、與Darts等帶有權值共享的方法結合的時候,怎麼利用BPE
4、文中提到的局部相關性還沒仔細研究
5、文章搜出的BPE,對於不同任務、不同搜索域都是通用的嗎

GreedyNAS: Towards Fast One-Shot NAS with Greedy Supernet

supernet起到代理評價子網絡結構的作用;
一般人認爲所有子網絡結構都需要準確評價,因此需要均等訓練;
但是所有的子網絡結構有很多,同時訓練好太難了;
而我們的目標也只是想找到一個最優的子網絡結構,所以其實只需要把一部分支路評價好就行了;
那些明顯很弱的直接扔了就好了。

某種意義上來說,這種方法我感覺是uniform和gumble softmax方法的折衷,既不會說是一直平均,也不會過度關注某一個樣本。而是所有結構只分爲兩類:有希望的好結構無希望的壞結構。這樣只從有希望的好結構裏面去採樣網絡訓練,不就可以提升超網絡的訓練效率了。

但是,怎麼樣知道一個結構是好的。理論上應該有一個充分訓練的超網絡讓我們評判一個結構好/壞,但是我們只能用當前超網絡做近似評判。從這個超網絡中採樣出m個結構,可以用排列組合計算出裏面至少有k條好結構的概率還是挺高的。假設我們認爲前60%都是好網絡,10個裏面有至少5個的概率爲83.38%。我們把採樣的10個網絡在1000張圖片組成的代理集上驗證一下並取loss最小的5條路徑進行訓練。

實驗也討論了這個1000張圖片的代理驗證是否合理。在網絡經過訓練的情況下是與真實精度高相關的,因此該算法在訓練時前10k次迭代(warmup)是普通的均勻採樣,目的是獲得一個能夠起到代理評判的超網絡。
關於代理指標的相關性

爲了提高對於已經採樣到的結構的探索充分探索,算法建立了一個候選池(優先隊列/最小堆)來保存採樣過的好網絡。這個候選池有三個作用:

  • 隨機從候選池裏面採樣或是從所有路徑採樣,這個概率控制探索-開發比值,在後期會提高採樣到好網絡的概率
  • 根據這個候選池的更新程度決定訓練終止,而非給定迭代次數
  • 在NSGA-II搜索階段,用候選池中最好的N個結構初始化種羣,能比隨機初始化有更好性能

這篇文章的實驗都是在ImageNet上做的,主要是想和SPOS作對比。在搜索域上,應該是爲了有更強烈的SOTA所以加上了SE模塊,但是沒有SPOS原本對於通道數和精度的搜索。在同樣搜索域的比較上,這個方法搜索時的效率更高,搜索出來的網絡結構也更高。
實驗結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章