論文將搜索空間從整體網絡轉化爲卷積單元(cell),再按照設定堆疊成新的網絡家族NASNet。不僅降低了搜索的複雜度,從原來的28天縮小到4天,而且搜索出來的結構具有擴展性,在小模型和大模型場景下都能使用更少的參數量和計算量來超越人類設計的模型,達到SOTA
來源:【曉飛的算法工程筆記】 公衆號
論文: Learning Transferable Architectures for Scalable Image Recognition
Introduction
論文作者在ICLR 2017使用強化學習進行神經網絡架構搜索獲得了很好的表現,但該搜索方法需要計算資源很多,在CIFAR-10上需要800塊GPU搜索28天,幾乎不可能在大型數據集上進行搜索。因此,論文提出在代理數據集(proxy dataset)上進行搜索,然後將網絡遷移到ImageNet中,主要亮點如下:
- 遷移的基礎在於搜索空間的定義,由於常見的網絡都是重複的結構堆疊而成的,論文將搜索空間從整個網絡改成單元(cell),再按設定將單元堆疊成網絡。這樣做不僅搜索速度快,而且相對而言,單元結構通用性更高,可遷移
- 論文搜索到的最好結構稱爲NASNet,達到當時的SOTA,在CIFAR-10提升了2.4%top-1準確率,而遷移到ImageNet提升了1.2%
- 通過堆疊不同數量的單元(cell)以及修改單元中的卷積核數量,可以得到適應各種計算需求的NASNets,最小的NASNet在ImageNet top-1準確率爲74.0%,比最好的移動端模型高3.1%
- NASNets學習到的圖片特徵十分有用,並且能夠遷移到其它視覺任務中。Faster-RCNN使用最大的NASNets能直接提高4%,達到SOTA 43.1%mAP
Method
論文的神經網絡搜索方法沿用了經典強化學習方法,具體可以看我之前的論文解讀。流程如圖1,簡而言之就是使用RNN來生成網絡結構,然後在數據集上進行訓練,根據收斂後的準確率對RNN進行權重調整
論文的核心在於定義一個全新的搜索空間,稱之爲the NASNet search space。論文觀察到目前優秀的網絡結構,如ResNet和Inception,其實都是重複模塊(cell)堆疊而成的,因此可以使用RNN來預測通用的卷積模塊,這樣的模塊可以組合堆疊成一個系列模型,論文主要包含兩種單元(cell):
- Normal Cell,卷積單元用來返回相同大小的特徵圖,
- Reduction Cell,卷積單元用來返回寬高縮小兩倍的特徵圖
圖2爲CIFAR-10和ImageNet的網絡框架,圖片輸入分別爲32x32和299x299,Reduction Cell和Normal Cell可以爲相同的結構,但論文發現獨立的結構效果更好。當特徵圖的大小減少時,會手動加倍卷積核數量來大致保持總體特徵點數量。另外,單元的重複次數N和初始的卷積核數量都是人工設定的,針對不同的分類問題
單元的結構在搜索空間內定義,首先選取前兩個低層單元的輸出和作爲輸入,然後the controller RNN預測剩餘的卷積單元結構block,單個block預測如圖3所示,每個單元(cell)由B個block組合成,每個block包含5個預測步驟,每個步驟由一個softmax分類器來選擇對應的操作,block的預測如下:
- Step 1,在,和單元中之前的block輸出中選擇一個作爲第一個隱藏層的輸入
- Step 2,選擇第二個隱藏層的輸入,如Step 1
- Step 3,選擇用於Step 1中的輸入的操作
- Step 4,選擇用於Step 2中的輸入的操作
- Step 5,選擇用於合併Step 3和Step 4輸出的操作,併產生新的隱藏層,可供後面的block選擇
Step 3和4中選擇的操作包含了如上的一些主流的卷積網絡操作,而Step 5的合併操作主要包含兩種:1) element-wise addition 2) concatenation,最後,所有沒有被使用的隱藏層輸出會concatenated一起作爲單元的輸出。the controller RNN總共進行次預測,前作爲Normal Cell,而另外則作爲Reduction Cell
在RNN的訓練方面,既可以用強化學習也可以用隨機搜索,實驗發現隨機搜索僅比強化學習得到的網絡稍微差一點,這意味着:
- NASNet的搜索空間構造得很好,因此隨機搜索也能有好的表現
- 隨機搜索是個很難打破的baseline
Experiments and Results
The controller RNN使用Proximal Policy Optimization(PPO)進行訓練,以global workqueue形式對子網絡進行分佈式訓練,實驗總共使用500塊P100來訓練queue中的網絡,整個訓練花費4天,相比之前的版本800塊K40訓練28天,訓練加速了7倍以上,效果也更好
圖4爲表現最好的Normal Cell和Reduction Cell的結構,這個結構在CIFAR-10上搜索獲得的,然後遷移到ImageNet上。在獲得卷積單元后,需要修改幾個超參數來構建最終的網絡,首先上單元重複數N,其次上初始單元的卷積核數,例如爲單元重複4次以及初始單元的卷積核數爲64
對於搜索的細節可以查看論文的Appendix A,需要注意的是,論文提出DropPath的改進版ScheduledDropPath這一正則化方法。DropPath是在訓練時以一定的概率隨機丟棄單元的路徑(如Figure 4中的黃色框連接的邊),但在論文的case中不太奏效。因此,論文改用ScheduledDropPath,在訓練過程中線性增加丟棄的概率
Results on CIFAR-10 Image Classification
NASNet-A結合隨機裁剪數據增強達到了SOTA
Results on ImageNet Image Classification
論文將在CIFAR-10上學習到的結構遷移到ImageNet上,最大的模型達到了SOTA(82.7%),與SENet的準確率一致,但是參數量大幅減少
圖5直觀地展示了NASNet家族與其它人工構建網絡的對比,NASNet各方面都比人工構建的網絡要好
論文也測試了移動端配置的網絡準確率,這裏要求網絡的參數和計算量要足夠的小,NASNet依然有很搶眼的表現
Improved features for object detection
論文研究了NASNet在其它視覺任務中的表現,將NASNet作爲Faster-RCNN的主幹在COCO訓練集上進行測試。對比移動端的網絡,mAP達到29.6%mAP,提升了5.1%。而使用最好的NASNet,mAP則達到43.1%mAP,提升4.0%mAP。結果表明,NASNet能夠提供更豐富且更通用的特徵,從而在其它視覺任務也有很好的表現
Efficiency of architecture search methods
論文對比了網絡搜索方法的性能,主要是強化學習方法(RL)和隨機搜索方法(RS)。對於最好網絡,RL搜索到的準確率整體要比RS的高1%,而對於整體表現(比如top-5和top-25),兩種方法則比較接近。因此,論文認爲儘管RS是可行的搜索策略,但RL在NASNet的搜索空間表現更好
CONCLUSION
論文基於之前使用強化學習進行神經網絡架構搜索的研究,將搜索空間從整體網絡轉化爲卷積單元(cell),再按照設定堆疊成新的網絡NASNet。這樣不僅降低了搜索的複雜度,加速搜索過程,從原來的28天縮小到4天,而且搜索出來的結構具有擴展性,分別在小模型和大模型場景下都能使用更少的參數量和計算量來超越人類設計的模型,達到SOTA
另外,由於搜索空間和模型結構的巧妙設計,使得論文能夠將小數據集學習到的結構遷移到大數據集中,通用性更好。而且該網絡在目標檢測領域的表現也是相當不錯的
Appendix NASNet-B & NASNet-C
論文還有另外兩種結構NASNet-B和NASNet-C,其搜索空間和方法與NASNet-A有點區別,有興趣的可以去看看原文的Appendix
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公衆號【曉飛的算法工程筆記】