ICCV 2019 將於 10.27-11.2 在韓國首爾召開,本次會議總共接受 1077 篇,總提交 4303 篇,接收率 25%。廈門大學媒體分析與計算實驗室共有 6 篇論文接受其中兩篇為 oral。
本文是論文一作鄭俠武對論文《multinomial distribution learning for effective neaural architecture search》的解讀。該論文由廈門大學媒體分析與計算實驗室(紀榮嶸團隊)、深圳鵬城實驗室合作完成,旨在降低神經網路結構檢索(NAS)中搜尋消耗的計算量。
論文程式碼:https://github.com/tanglang96/MDENAS
摘要
近年來,透過神經架構搜尋(NAS)演算法生成的架構在各種計算機視覺任務中獲得了極強的的效能。然而,現有的 NAS 演算法需要再上百個 GPU 上執行 30 多天。在本文中,我們提出了一種基於多項式分佈估計快速 NAS 演算法,它將搜尋空間視為一個多項式分佈,我們可以透過取樣-分佈估計來最佳化該分佈,從而將 NAS 可以轉換為分佈估計/學習。
除此之外,本文還提出並證明了一種保序精度排序假設,進一步加速學習過程。在 CIFAR-10 上,透過我們的方法搜尋的結構實現了 2.55%的測試誤差,GTX1080Ti 上僅 4 個 GPU 小時。在 ImageNet 上,我們實現了 75.2%的 top1 準確度。
背景介紹
給定資料集,神經架構搜尋(NAS)旨在透過搜尋演算法在巨大的搜尋空間中發現高效能卷積架構。NAS 在各個計算機視覺領域諸如 影像分類,分割,檢測等取得了巨大的成功。
圖一:神經網路結構檢索
如圖一顯示,NAS 由三部分組成:搜尋空間,搜尋策略和效能評估:傳統的 NAS 演算法在搜尋空間中取樣神經網路結構並估計效能,然後輸入到搜尋策略演算法中進行更新,一直迭代至收斂。儘管取得了顯著進步,但傳統的 NAS 方法仍然受到密集計算和記憶體成本的限制。
例如,強化學習(RL)方法 [1] 需要在 20,000 個 GPU 上訓練 4 天,以此訓練和評估超過 20,000 個神經網路。最近 [2] 中提出的可微分的方法可以將搜尋空間鬆弛到連續的空間,從而可以透過在驗證集上的梯度下降來最佳化體系結構。然而,可微分的方法需要極高的 GPU 視訊記憶體,並且隨著搜尋空間的大小線性增長。
主要方法
1. 精度排序假設
大多數 NAS 方法使用標準訓練和驗證對每個搜尋的神經網路結構進行效能評估,通常,神經網路必須訓練到收斂來獲得最終的驗證集的評估,這種方式極大的限制了 NAS 演算法探索搜尋空間。但是,如果不同結構的精度排序可以在幾個訓練批次內獲取,為什麼我們需要在將神經網路訓練到收斂?
例如下圖二,我們隨機取樣四個網路結構(LeNet,AlexNet,ResNet 和 DenseNet)在不同的次數下,在訓練集和測試集中的效能排名是一致的(效能排名保持為 ResNet-18> DenseNet-BC> AlexNet> LeNet 在不同 網路和訓練時代)。
圖 2 精度排序假設
基於這一觀察,我們對精度排序提出以下假設:在訓練過程中,當一個網路結構 A 的精度比網路結構 B 要好,那麼當收斂的時候,網路結構 A 的表現也優於網路結構 B.
2. 搜尋空間
在搜尋空間上,我們主要延續了 [2] 中的搜尋空間,
圖 3 搜尋空間
具體搜尋空間如圖 3 所示:(a)單元可以堆疊起來形成一個卷積網路,或者遞迴連線形成一個迴圈網路。(b)一個單元(cell)作為最終架構的基石,單元是由 N 個有序節點組成的全連線有向無環圖。
每個節點都是一個特徵(神經網路的卷積特徵或者其他特徵),每個有向邊是對該節點的某種運算。假設每個單元有兩個輸入節點和一個輸出節點。對於卷積單元,輸入節點被定義為前兩層的單元輸出 [1][2]。透過對所有中間節點應用及連操作(concatenation)來獲得最終的單元的輸出。
3. 搜尋演算法
針對精度排序假設,我們設計了一套基於多項式分佈學習的神經網路結構檢索演算法,首先對於整個搜尋空間,我們假設圖 3 中的搜尋空間為一個多項式分佈,最開始的時候,每一個多項式分佈的初始機率值保持一致,即假設有 8 個可選的操作,那麼搜尋空間中每一個的機率為 1/8。在訓練的時候,每一個訓練的 epoch,我們首先對網路結構進行取樣。取樣結束後,對於一個節點輸入的操作為具體邊對應取樣的點:
進行取樣後,進行訓練以及測試,在搜尋空間中我們記錄下每一個操作被取樣的次數以及精度。並且計算針對訓練批次的差分以及精度的差分:
利用計算好的差分,我們更新每一個操作的機率:
從上面的公式中,對於搜尋空間中的兩個操作,我們主要進行下面的比較,當一個操作 A 與另外一個操作 B 之間進行比較,當 A 的訓練批次比 B 要少,但是精度卻更高,我們認為 A 比 B 要好,所以增加 A 的機率的同時的減少 B 的機率,反之亦然:當 A 比 B 要差,把 A 的機率分給 B。
最後當多項式分佈僅有一個選擇,或者墒少於一定的值的時候(在實驗中,基本上 150 個 epoch 之後基本上結構就會穩定不變),我們認為演算法收斂。
實驗
精度排序假設的論證
我們首先對精度排序假設進行論證,論證方式為:隨機從搜尋空間中取樣網路結構,訓練這些網路結構,計算每一箇中間 epoch 與最終收斂時候的 epoch 的排序精度。其中評價指標為 kendall』s tau:具體闡述了兩個排序之間的準確度,兩個排序中保持一致的對數。
圖 4 精度排序假設實驗。
在上圖中我們可以發現,kendall's Tau 在所有的 epoch 中保持了很高的準確度(kendall』s Tau 範圍為 [-1,1],0 代表兩個 rank 的一致的機率為 50%。),特別的,我們計算 kendall's Tau 的平均值為 0.47,代表不同的 epoch,評價指標的準確度為 74%。
神經網路結構檢索實驗
根據之前的文章 [1][2][3],我們主要設定了三個實驗,(1) 直接在 cifar10 上面搜尋,訓練以及測試,(2) 在 cifar10 上搜尋,將網路結構進行遷移,遷移到 ImageNet 資料集進行訓練測試。(3)直接在 ImageNet 上搜尋訓練以及測試。
對應的實驗結果為:
(1)搜尋資料集:cifar10;訓練資料集:cifar10;測試資料集:cifar10;
該實驗具體搜尋時間上的效能指標以及測試錯誤率如下表顯示:
搜尋到最好的結構為:
(2)搜尋資料集:cifar10;訓練資料集:ImageNet;測試資料集:ImageNet;該實驗具體搜尋時間上的效能指標以及測試錯誤率如下表顯示:
(3)搜尋資料集:ImageNet;訓練資料集:ImageNet;測試資料集:ImageNet;
該實驗具體搜尋時間上的效能指標以及測試錯誤率如下表顯示:
對應的網路結構為:
結論
在本文中,我們介紹了第一種基於分散式學習神經網路結構搜尋演算法。我們的演算法基於新穎的精度排序假設,該假設能夠進一步縮短搜尋時間,從而利用比較早期訓練過程中的架構效能的排序來最佳化搜尋演算法。從我們的假設中受益,提出的搜尋演算法大大降低了計算量,同時在 CIFAR-10 和 ImageNet 上表現出了出色的模型精度以及高效的搜尋效率。此外,我們提出的方法可以直接在 ImageNet 上進行搜尋,相比於人類設計的網路和其他 NAS 方法更優越。
[1] Elsken T, Metzen J H, Hutter F. Neural architecture search: A survey[J]. arXiv preprint arXiv:1808.05377, 2018.
[2] Liu H, Simonyan K, Yang Y. Darts: Differentiable architecture search[J]. arXiv preprint arXiv:1806.09055, 2018.
[3] Han Cai and Ligeng Zhu and Song Han ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware. International Conference on Learning Representations 2019.
[4] Xiawu Zheng, Rongrong Ji∗ , Lang Tang , Baochang Zhang, Jianzhuang Liu, Qi Tian Multinomial Distribution Learning for Effective Neural Architecture Search. ICCV 2019