華中科大提出EAT-NAS方法:顯著提升大規模神經模型搜索速度

神經模型搜索(Neural Architecture Search,NAS)是一種自動化的模型結構搜索方法,旨在代替深度學習專家選擇最優的網絡模型結構。傳統的NAS方法都是針對小規模數據庫設計的,直接遷移到大型數據庫上無法保證模型的預測效果。針對這一缺陷,華中科大與地平線合作提出了一種針對大規模NAS問題的彈性結構遷移方法EAT-NAS,該方法大大加快了在如ImageNet這種大型數據庫上的搜索進程。與現有的大規模NAS方法相比,EAT-NAS在八塊Titan X配置的機器上僅需要5天就可以完成整個搜索過程,顯著減少了搜索時間,並且得到的最優模型仍具有較高的準確度。我們對該方法做了簡要介紹,本文是AI前線第67篇論文導讀。

背景

由人類專家設計神經網絡架構,通常需要繁瑣的實驗過程還容易出現錯誤。爲了讓這個過程更加高效化,許多神經結構搜索方法(Neural Architecture Methods,NAS)被提出。先不說結果如何,大部分NAS方法都需要非常昂貴的計算資源。例如2017年ICLR的論文《Neural architecture search with reinforcement learning》使用了800塊GPU在CIFAR-10圖像分類任務上花費了28天的時間進行搜索。CIFAR-10只是一個非常小規模的數據庫,而實際應用的情景往往都是大規模的數據,因此NAS方法在大規模數據庫上的侷限性成爲了阻礙其發展的關鍵因素。

許多現有的NAS方法通過在小規模數據庫上進行結構搜索,然後針對大規模數據庫對深度和寬度進行手動調整。這一機制廣泛的應用於NAS領域。但是由於大規模數據庫與小規模數據庫之間域的不同,在小規模數據庫上的模型搜索算法應用於大規模數據庫時,並不能保證其效果。
在這篇論文中,作者針上述的限制,提出了一種更合理的解決方案。作者使用遷移學習的方法從將針對小規模任務的結構應用到大規模任務上並進行微調。更詳細地,作者使用了基於彈性框架的NAS方法——聯賽選擇,即首先使用現有的方法在小數據庫上搜索神經框架,然後將上一步得到的框架作爲初始化種子再在大型數據庫上進行搜索。

總得來說,這篇文章的亮點主要可概括爲:

  1. 提出一種彈性結構遷移機制(Elastic Architecture Transfer Machanism)用來彌補大規模任務和小型任務上進行結構搜索的差異。

  2. 由於使用了小規模數據庫上的最優模型作爲大型任務的初始化種子,該方法有效節省了在大規模數據庫上進行模型搜索的時間。

  3. 在節省了計算資源的情況下,最終的模型仍然能達到不錯的性能。

相關方法

本文提出的EAT-NAS方法,是在基於進化算法(Evolutionary Algorithm,EA)的NAS方法上進行改進的。進化算法在NAS領域的應用非常廣泛,其詳細算法如下表所示:

image

該算法首先在搜索空間中使用隨機生成的P模型對種羣進行初始化,隨後將每個模型在數據庫上進行訓練和評估以獲得模型的準確率。在每個進化週期裏,S是從種羣中隨機採樣的模型。其中分數最高的模型M_best和分數最低的模型M_worst會被選出進行下一步處理。對M_best添加一些變換即可得到變異的模型,變異的模型會被添加到種羣中進行訓練、評價,同時M_worst會被移除。上述的搜索進程便被稱爲聯賽選擇算法。最終,再對前k個效果最好的模型進行重訓練,選擇其中最好的模型即可完成整個搜索過程。

本文算法

在將模型結構用於大規模數據庫時,許多NAS方法只不過是依賴人類專家的先驗知識,手動地修改模型的寬度和深度。與這些方法不同,EAT-NAS對基本模型結構的各個元素進行微調得到最終可以適應大規模數據庫的模型,這些元素包括結構、尺度、操作等。通過使用在小規模數據庫上搜索得到的基本模型,EAT算法可以有效地加速大規模任務上模型的搜索進程。

1 算法框架

image

圖 1 彈性結構遷移算法框架

EAT-NAS的基本思想如上圖所示,首先使用進化算法在小型任務上搜索最優模型,然後將其作爲第二階段的初始化種子,再使用進化算法對大規模任務進行搜索。由於使用了小任務上的最佳模型對大任務的初始種羣做初始化,在大規模任務上的搜索進程明顯會比從零開始的收斂速度快得多。作者使用了種羣質量判別函數(Population Quality)以便在進化過程中對模型種羣做出更好的評價。此外,作者在第二階段使用了後代結構生成器(offspring architecture generator)來產生新的結構。爲了同時對模型的準確度和尺寸進行優化,作者使用了Pareto優化進行求解,Pareto優化是多目標優化問題中一種求最優解集的方法。

2 搜索空間

對於結構搜索來說,確定一個好的搜索空間是非常必要的。作者使用了MobileNetV2作爲骨架網絡,整個網絡的結構如下圖所示:

image

圖 2 基於MobileNetV2的骨幹網絡結構

網絡被分爲了多個block,每個block的結構彼此不同,它們各自包含了多個層,每個層表示一種在當前block中進行的多次的操作。對於每個block,作者給出了更詳細的選擇條件:

  • 卷積操作:深度可分離卷積(SepConv)、膨脹率爲{3,6}的移動反轉瓶頸卷積(MBConv)。

  • 卷積核大小:3X3,5X5,7X7

  • 跳躍連接:每層之間是否添加跳躍連接。

  • 寬度因子:輸出相對於輸入的寬度擴張比率[0.5, 1.0, 1.5, 2.0]

  • 深度因子:每個block包含的層數[1, 2, 3, 4]

其中,每個block的第一層默認丟棄降採樣和寬度擴張操作。

作者在搜索空間中使用了編碼的方式表示網絡結構,以便對神經結構進行操作。整個網絡可以使用一個block集合來表示:

image

每個block包含了上述的五個元素,因此使用一個元組對其進行表示:

image

所有對網絡結構進行的操作都通過改變編碼的形式進行。

3 種羣質量

在訓練過程中,僅根據模型預測的精確度不足以判斷其是否收斂。尤其是在搜索空間中,參數是共享的,這就更加難以判斷精度的提高是由於參數共享還是由於更好的模型性能。因此作者提出了一種自定義的函數近似地評估模型種羣質量:

image

其中,acc_mean表示種羣中模型的平均精確度,std表示模型精度的標準差,w是由超參數進行控制的權重因子:

image

4 規模搜索

許多NAS方法都會基於先驗知識,將模型的規模設爲一個固定值。EAT-NAS則在深度和寬度層面上,都對模型的結構進行了搜索。爲了加速搜索的過程,作者使用了兩種不同的方法分別在深度和寬度層面進行參數共享。

  • 寬度層面的共享算法如下表所示,除了共享的參數以外,K_l的其餘參數均使用隨機初始化。

image

  • 深度層面的共享方法如下所示,其中U和W分別是含有l_u層的兩個相關的block的參數,這裏使用W的參數對U進行共享。image是一個服從正態分佈的參數隨機初始化函數。

image

5 後代結構生成器

在完成了基礎模型結構的搜索後,需要將基本結構遷移到大規模任務上。作者使用了後代結構生成器(Offspring Architecture Generator,OAG)從模型種羣中生成新的模型種羣,OAG會將基礎模型作爲新種羣的初始化種子。同時,作者還定義了一個新的變換函數,通過添加一些擾動,使得輸入框架可以更加輕量並同質化。算法3是該變換函數的詳細過程:

image

在使用後代結構生成器產生新的種羣後,再使用算法1中的進化算法進行最優化搜索,最終即可得到適用於大規模任務的模型結構。

實驗結果

在CIFAR-10數據庫上進行搜索

在CIFAR-10上的實驗可以分爲兩步:結構搜索和結構進化。CIFAR-10包含5w張訓練圖像和1w張測試圖像。作者對原始訓練集進行2/8劃分,分別作爲驗證集和訓練集。CIFAR-10的測試集僅用來在完成最後的模型搜索後進行測試。實驗過程中使用了標準的預處理和數據增強步驟。所有的圖像都使用了通道均值與標準差進行白化。訓練過程的詳細參數可以參閱論文。

作者最終選擇了前8個訓練好的模型進行重訓練,挑選其中精確度最高的作爲基本結構。最終基本結構達到了96.42%的平均測試精度,模型參數大小僅爲2.04M,平均精度的標準差爲0.05。

遷移到ImageNet數據庫

這裏使用了上一步得到的基礎模型作爲ImageNet任務的種子來生成新的模型。搜索進程在整個ImageNet數據庫上進行。作者使用OAG在基本結構的基礎上產生了64個新的結構。CIFAR-10上得到的基本結構和遷移到ImageNet上網絡結構如下圖所示:

image

圖 3 基本網絡框架與經過彈性遷移後的框架

在ImageNet數據庫上,整個進化過程經過100次突變循環即達到了收斂。也就是說,在基本模型的基礎上,算上最開始的64個模型,僅採樣了164個模型即找到了最優模型。而在類似的MnasNet中則需要採樣約8k個模型纔可達到最優,是EAT-NAS的50倍。最終的模型精度如下表所示,EATNet表示本文提出方法得到的模型。

image

總結

總的來說,EAT-NAS算法使用了一種很巧妙的設計,將模型在小規模數據庫上學習到的信息用於大規模數據庫上的模型搜索。作者將遷移學習的思想與進化算法相結合,在基本沒有損失模型性能的基礎上,極大地加速了整個優化進程。

論文原文鏈接:

EAT-NAS: Elastic Architecture Transfer for Accelerating Large-scale Neural Architecture Search

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