經典再讀 | NASNet:神經架構搜索網絡在圖像分類中的表現

  • 2019 年 10 月 4 日
  • 筆記

(圖片付費下載於視覺中國)

作者 | Sik-Ho Tsang

譯者 | Rachel

編輯 | Jane

出品 | AI科技大本營(ID:rgznai100)

【導讀】從 AutoML 到 NAS,都是企業和開發者的熱門關注技術,以往我們也分享了很多相關內容。而這篇文章將對 Google Brain 發佈的 NASNet 進行介紹。NASNet 在 CVPR2018 發表,至今已經有超過400次引用。

在神經架構搜索中,作者在較小的數據集上對神經網絡架構的模塊進行搜索,之後將該網絡結構遷移到一個更大的數據集上。在 NASNet 中,作者首先對 CIFAR-10 中最佳的卷積層或神經元進行搜索,之後通過將該神經元複製多次並連接在一起以應用在 ImageNet 數據集上。該研究還提出了「ScheduledDropPath」 這一新的正則化技術,該方法有效地改善了 NASNet 的生成效果。相較於以往的神經網絡架構,NASNet 生成的神經網絡模型更簡潔,運算複雜度更低(以每秒浮點運算次數衡量)。

1、神經元上的神經架構搜索(Neural Architecture Search, NAS)

可縮放的 CIFAR10 和 ImageNet 模型架構

如上圖所示, NASNet 僅對模型的整體結構進行了設置,具體的模塊或神經元並未預定義,其定義是通過強化學習搜索方法完成的。例如,序列重複的次數 N 和初始的卷積核形狀都是自由參數,用於模型的縮放。

網絡中的神經元分為普通神經元(normal cell)和下採樣神經元(reduction cell)兩種:

  • 普通神經元:返回維度相同的特徵映射的卷積層
  • 下採樣神經元:返回的特徵映射的維度的高和寬均除以2

在 NASNet 中,僅對上述兩種神經元的結構或內部特徵進行搜索,搜索過程使用一個 RNN 控制器進行控制。

2、控制器模型架構(Controller Model Architecture)

使用控制器模型架構迭代搭建由卷積神經元組成的模塊

在 NASNet 中,由 RNN 構成的控制器通過使用兩個初始的隱藏狀態,迭代地對餘下的卷積神經元的結構進行預測,具體步驟如下:

  • 步驟1: 從 hi, hi-1 或之前創建的模塊的隱藏狀態中選擇一個隱藏狀態
  • 步驟2: 重複步驟1,再選擇一個隱藏狀態
  • 步驟3: 為步驟1中選擇的隱藏狀態選擇一個運算方式;
  • 步驟4: 為步驟2中選擇的隱藏狀態選擇一個運算方式;
  • 步驟5: 選擇一個運算以結合步驟3和步驟4的輸出,並作為一個新的隱藏狀態

其中,步驟3和步驟4可選的運算包括:

上述運算僅針對一個模塊。

在該部分使用的 RNN 控制器為一個包含100個隱藏神經元的單層 LSTM 網絡,在每一次預測中,該網絡包含 2*5B 個對於兩類卷積神經元的 softmax 預測,一般取 B=5 。

RNN 控制器產生的 10B 個預測都分別對應一個概率。一個子網絡(child network)的聯合概率是這10B個softmax單元的概率乘積。RNN控制器使用這一聯合概率計算梯度。

作者使用子網絡的驗證準確度對RNN控制器的梯度進行調整和更新,使得RNN控制器給效果較好的子網絡賦予較高的概率,給效果較差的子網絡賦予較低的概率。

NASNet 搜索空間縮略圖

網絡的主要結構通過多次迭代模塊(block)生成,如上圖所示。模塊包含三個操作:控制器選擇一對隱藏狀態(深灰色部分),對隱藏狀態的操作(黃色部分)以及一個結合操作(綠色部分)。從模塊中得到的隱藏狀態被存入可能的隱藏狀態的集合中,用於後續的迭代過程。

總而言之,在該部分中,NASNet通過使用RNN控制器嘗試找到一個最佳的操作組合來得到一個效果較好的神經元,以替代傳統的手工調參方法。

3、NASNet-A, NASNet-B 和 NASNet-C

對神經網絡結構的搜索使用了500個GPU,共持續了4天,運行了2000個GPU時長,最終得到了多個候選的卷積神經元,最終形成了三種不同結構的普通神經元和下採樣神經元,包括NASNet-A, NASNet-B和NASNet-C。

NASNer-A

NASNet-B(包含4個輸入和4個輸出)

NASNet-C

4、實驗結果

4.1 ScheduledDropPath

在訓練過程中,作者使用了 ScheduledDropPath 這一正則化方法。在該方法中,神經元的每個路徑都依據一個線性增長的值進行dropout。該方法顯著提升了訓練的準確率。

4.2 CIFAR-10

CIFAR-10

使用截斷(cutout)的數據增強方法的 NASNet-A(7@2304) 模型將錯誤率降低至 2.4%,超越了包括 DenseNet 和 Shake-Shake 在內的現有模型。其中,7代表 N=7,表示神經元的重複次數,2304代表網絡的倒數第二層使用的卷積層的數量。

4.3 ImageNet

作者將 CIFAR-10 的模型結構遷移到了 ImageNet, 但對網絡的權重重新進行了訓練。

準確率與計算量(左圖)和參數數量(右圖)的對比

在模型效果相近時,相較於其他的模型, NASNet 使用了更少的浮點計算和參數。另外,在 CIFAR-10 中得到的卷積神經元在 ImageNet 上展現了很好的泛化能力。

從上表可以發現,規模最大的模型在 ImageNet 上的的準確率達到了 82.7% ,比在此之前表現最佳的模型 DPN 高出1.2%,與未公開的研究中的模型相比較, NASNet和 SENet達到了相同的準確率。

在限制計算設置的情形下 NASNet 和其他模型的對比

從上表可以看到, NASNet 在模型規模相似或具有更小網絡的情形下獲得了比已有模型更好的表現,包括 Inception-v1, MobileNetV1 和 ShuffleNetV1。

4.4 MS COCO Object Detection

mAP 在 COCO mini-val 數據集和 test-dev 數據集上的表現

NASNet 得到的圖片結果展示

通過使用 Faster R-cnn, NASNet-A 的效果超越了 MobileNetV1, ShuffleNet V1, ResNet 和 Inception-ResNet-v2。

原文鏈接:

https://medium.com/@sh.tsang/review-nasnet-neural-architecture-search-network-image-classification-23139ea0425d

(*本文為AI科技大本營編譯文章,轉載請微信聯繫 1092722531)