天天看點

神經網絡架構搜尋——二值可微分搜尋(BATS)

二值可微分搜尋(BATS)

      • 摘要
      • 方法
        • 搜尋空間重定義
          • 标準 DARTS 搜尋空間的問題
          • 二值神經網絡搜尋空間
        • 搜尋的正則化和穩定性
          • DARTS 搜尋的不穩定分析
          • 溫度正則(temperature regularization)
        • 二值搜尋政策
      • 實驗
        • 消融實驗
        • 二值網絡架構
        • CIFAR
        • ImageNet
本文為三星發表在 ECCV 2020 的基于二值網絡搜尋的 NAS 工作(BATS),論文題目:BATS: Binary ArchitecTure Search。通過結合神經網絡架構搜尋,大大縮小了二值模型與實值之間的精度差距,并在CIFAR 和 ImageNet 資料集上的實驗和分析證明了所提出的方法的有效性。
  • 論文連結:BATS: Binary ArchitecTure Search
  • 源碼連結(即将開源):https://github.com/1adrianb/binary-nas

摘要

本文提出了二進制架構搜尋(BATS),這是一個通過神經架構搜尋(NAS)大幅縮小二進制神經網絡與其實值對應的精度差距的架構。實驗表明,直接将NAS 應用于二進制領域的結果非常糟糕。為了緩解這種情況,本文描述了将 NAS 成功應用于二進制領域的 3 個關鍵要素:

  • (1) 引入并設計了一個新的面向二進制的搜尋空間。
  • (2) 提出了一個新的控制和穩定搜尋拓撲結構的機制。
  • (3) 提出并驗證了一系列新的二進制網絡搜尋政策,以實作更快的收斂和更低的搜尋時間。

實驗重新結果證明了所提出的方法的有效性和直接在二進制空間中搜尋的必要性。并且,在CIFAR10、CIFAR100 和 ImageNet 資料集上設計了 SOTA 的二進制神經網絡架構。

方法

搜尋空間重定義

标準 DARTS 搜尋空間的問題

标準 DARTS 搜尋空間下搜尋得到的網絡結構二值化訓練是無法收斂的,原因如下:

  • 深度可分離卷積(SepConv)二值化難。首先,實數深度可分離卷積本身就是普通标準卷積的“壓縮”版本,其次,經過二值化後進一步對深度可分離卷積進行了近似操作。是以,深度可分離卷積二值化存在“雙重近似問題”。
  • 1x1卷積 & bottlneck 塊 二值化難。因為關鍵的FeatureMap資訊,由于1x1卷積權重值少和bottlneck所處的重要位置被二值化後無法有效傳遞下去。
  • DilConv & SepConv 二值化難。标準的 DARTS 搜尋空間定義的

    DilConv

    SepConv

    操作包含的卷積序列個數不同。

    DilConv

    包含兩個卷積序列,

    SepConv

    包含四個卷積序列。導緻訓練過程中兩者的收斂速度不同,并且會是以放大二值化過程中的梯度衰減現象(論文是這樣描述的,不過具體原因不清楚)
二值神經網絡搜尋空間

二值神經網絡搜尋空間與标準 DARTS 搜尋空間對比如下圖所示:

神經網絡架構搜尋——二值可微分搜尋(BATS)

主要存在以下幾方面的修改:

  • 删除了 1x1 卷積。
  • 重新配置設定了深度可分離卷積中 Group Size 與 Channel 的關系。标準的深度可分離卷積中

    #groups = #in_channel

    。本文中,CIFAR資料集上預定義Group卷積為

    12 Groups x 3 Channels = 36 Channels

    ;ImageNet 資料集上預定義Group卷積為

    16 Groups x 5 Channels = 80 Channels

  • 每個opetation隻包含一個卷積序列,便于學習和實作低延時。
  • 每個卷積操作都加上

    Skip-Connect

    操作,有利于保持FeatureMap資訊的傳遞和保留。

搜尋的正則化和穩定性

DARTS 搜尋的不穩定分析

盡管 DARTS 取得了成功,但根據随機種子的不同,DARTS 的精度在運作之間可能會有很大的差異。事實上,在有些情況下,随機搜尋獲得的架構甚至比搜尋得到的架構通過表現的更好。此外,特别是當訓練時間較長或在較大的資料集上進行搜尋時,DARTS可能會出現

Skip-Connect

富集的問題。常用的解決方法包括:

  • 在架構搜尋過程中對跳連應用dropout
  • 通過保留每個單元最多2個跳連作為後處理步驟,簡單地促成機率第二高的操作

但是,這種機制仍然會導緻大量的随機性,而且并不總是有效的:例如,它可能會用池化層(沒有學習能力)取代跳過連接配接,或者搜尋的架構跳連包含的太少。當搜尋是在二進制域中直截了當地進行時,這樣的問題就更加明顯了。鑒于在搜尋過程中,節點 j 的輸入是通過對所有輸入邊的權重和來獲得的,為了最大限度地提高資訊流,架構參數 α 傾向于收斂到相同的值,使得最終架構的選擇存在問題,并且容易受到噪聲的影響,導緻拓撲結構的性能可能比随機選擇更差。此外,搜尋高度偏向于實值操作(池化和跳連),使得搜尋在早期階段可以提供更大的收益。

溫度正則(temperature regularization)

為了緩解上述問題,并使得搜尋程式更具辨識力,迫使其做出 “harder” 的決策,本文借鑒知識蒸餾的思路,建議使用溫度因子 T<1 的正則政策,定義從節點i到j的流程如下公式所示:

f i , j ( x i ) = ∑ o ∈ O exp ⁡ ( α i , j o / T ) ∑ o ′ ∈ O exp ⁡ ( α i , j o ′ / T ) ⋅ o ( x i ) f_{i, j}\left(\mathbf{x}_{i}\right)=\sum_{o \in O} \frac{\exp \left(\alpha_{i, j}^{o} / T\right)}{\sum_{o^{\prime} \in O} \exp \left(\alpha_{i, j}^{o^{\prime}} / T\right)} \cdot o\left(\mathbf{x}_{i}\right) fi,j​(xi​)=o∈O∑​∑o′∈O​exp(αi,jo′​/T)exp(αi,jo​/T)​⋅o(xi​)

采用溫度正則方法可以使架構參數的分布不那麼均勻,更加尖銳(即更有辨識力)。在搜尋過程中,由于資訊流是使用權重進行聚合的,是以網絡不能從所有資訊流中提取資訊,來平等地(或接近平等地)依賴所有可能的操作。相反,為了確定收斂到一個滿意的解決方案,它必須将最高的機率配置設定給一個非0操作的路徑,由一個次元溫度(T <1)強制執行。這種行為也更接近評估過程,進而減少搜尋(網絡從所有路徑中提取資訊)和評估之間的性能差異。

神經網絡架構搜尋——二值可微分搜尋(BATS)

上圖中,圖1描述了給定單元在不同溫度下的架構參數分布。對于低溫(T=0.2),網絡被迫做出更多的判别性決策,這反過來又使它減少了對 Skip-Connect 的依賴。圖2 進一步證明了這一點,它描述了在不同溫度下搜尋過程結束時,在 Normal Cell 中各操作被選擇的機率。

二值搜尋政策

盡管二值網絡具有加速和節省空間的特點,但與實值網絡相比,二值網絡的訓練仍然比較困難,其方法通常需要一個預訓練階段或仔細調整超參數和優化器。對于搜尋二值網絡的情況,直接實作二值權重和激活的架構搜尋,在大多數嘗試中,要麼導緻退化的拓撲結構,要麼訓練簡單地收斂到極低的精度值。此外,直接在實域中執行搜尋,然後對網絡進行二值化是次優的。

為了緩解這個問題,本文提出了一個兩階段的優化過程,在搜尋過程中,激活是二值化的,而權重是實值化的,一旦發現了最佳架構,我們在評估階段也要對權重進行二值化。【更具體地說,在評估過程中,首先從頭開始訓練一個具有二值激活和實值權重的新網絡,然後對權重進行二值化。最後,在測試集上對完全二值化的網絡進行評估。】這是因為實值網絡的權重通常可以被二值化,而不會顯著降低精度,但激活的二值化就不一樣了,由于可能的狀态數量有限,網絡内部的資訊流急劇下降。是以,本文提出将問題有效地分成兩個子問題:權重和特征二值化,在搜尋過程中,嘗試解決最難的一個問題,即激活的二值化。一旦完成了這一點,權重的二值化以下總是會導緻精度的小幅下降(~1%)。

實驗

消融實驗

神經網絡架構搜尋——二值可微分搜尋(BATS)

二值網絡架構

神經網絡架構搜尋——二值可微分搜尋(BATS)

CIFAR

神經網絡架構搜尋——二值可微分搜尋(BATS)

ImageNet

神經網絡架構搜尋——二值可微分搜尋(BATS)
神經網絡架構搜尋——二值可微分搜尋(BATS)
神經網絡架構搜尋——二值可微分搜尋(BATS)

繼續閱讀