快速,準確和輕量的帶有神經架構搜索的超分辨率網絡

 

Fast, Accurate and Lightweight Super Resolution with Neural Architecture Search

by Xiaomi AI

論文地址:https://arxiv.org/pdf/1901.07261v2.pdf

發表日期: 24/1/2019

項目地址:https://github.com/falsr/FALSR

1 簡介

本模型的優勢是:

1. 發佈了幾種快速、準確和輕量級的超分辨率架構和模型,它們與最近的當前最優方法效果相當; 

2. 通過在 cell 粒度上結合宏觀和微觀空間來提升彈性搜索能力; 

3. 將超分辨率建模爲受限多目標優化問題,並應用混合型控制器來平衡探索(exploration)和利用(exploitation);

4. 生成高質量模型,其可在單次運行中滿足給定約束條件下的各種要求。 

此外,研究者還開放了預訓練的模型和評估代碼,他們在 GitHub 中提供了 FALSR A、B 和 C 三個預訓練模型,同時也提供了一些示例數據集,包括 B100、Set14 和 Urban100 等。發佈的模型基於 TensorFlow

2 網絡結構 

與大部分 NAS 方法類似,本研究提出的方法包含三個主要模塊:彈性搜索空間、混合模型生成器和基於不完全訓練的模型評估器。 與 [Lu et al., 2018; Chu et al., 2019] 類似,本研究也使用 NSGA-II [Deb et al., 2002] 來解決多目標問題。但該研究的特點在於,它會使用混合型控制器和基於 cell 的彈性搜索空間(可支持宏觀和微觀搜索)。 

該研究在處理超分辨率任務時考慮了三個目標: 

  • 反映模型性能的量化度量指標(PSNR) 
  • 評估模型計算成本的量化度量指標(mult-adds) 
  • 參數量 

此外,該研究還考慮了以下約束: 

  • 滿足人類視覺感知的最小 PSNR 
  • 資源限制下的最大 mult-adds

3 彈性搜索空間

本研究的搜索空間旨在執行微觀和宏觀搜索。微觀搜索用於在每個 cell 的搜索空間的中選擇有潛力的單元,可看作是特徵提取器。而宏觀搜索旨在搜索不同 cell 的跳接,其作用是結合選定層級的特徵。此外,研究者使用 cell 作爲最小搜索元素有兩個原因:設計靈活性、通用的表徵能力。 

通常,超分辨率任務可分爲三個子步驟:特徵提取、非線性映射和重建。由於大部分深度學習方法主要關注第二部分,因此該研究將其搜索空間設計用於描述非線性映射,其他部分保持不變。圖 1 展示了該研究中提出的超分辨率任務主要基礎結構。一個完整的模型包括預定義的特徵提取器(具備 32 個 3 × 3 卷積核的 2D 卷積)、來自微觀搜索空間的 n 個單元塊和來自宏觀搜索空間的跳接、上採樣和重建。

 

 

 (CSDN編輯器有毒。。換行始終不出來,吐槽。。)

3.1 細胞層級的圍觀搜索空間

卷積:2D卷積,成組的卷積{2,4}, 反轉的bottleneck塊,展開率2.

通道:{16,32,48,64}

卷積核:{1,3}

細胞內殘差連接:{True,Flase}

重複塊:{1,2,4}

因此,對於n個細胞塊的微空間的大小是192^n。

3.2 內部細胞宏觀搜索空間

宏搜索空間定義不同單元塊之間的連接。具體地,對於第i個單元塊CB_{i},存在n+1-i個連接選擇,以構建從CB_{i}的輸入到其後續單元塊3的信息流。此外,我們使用C_{i}^j來表示從CB_{i}輸入到CB_{j}的路徑。如果它們之間存在連接路徑,則設置C_{i}^j= 1,否則爲0.因此,n個單元塊的宏空間的大小是2^{n(n+1)/2}。總之,總空間的大小爲192^n\times 2^{n(n+1)/2}


註釋:我們的上採樣塊包含32個3x3濾波器的2D卷積,跟隨的是一個單位步長的3x3卷積。i從1開始。

 

4 模型生成器

我們的模型生成器是一個混合控制器,包括強化學習(RL)和進化算法(EA)。 EA部分處理迭代過程,RL用於帶來利用。具體而言,迭代由NSGA-II [Deb et al。,2002]控制,其包含四個子過程:羣體初始化,選擇,交叉和變異。爲避免冗長,我們僅涵蓋NSGA-II的變體。

4.1模型元編碼

一個模型由兩部分表示:前向連接的元胞及其信息連接。我們使用運算符集中的運算符索引來編碼元胞,使用嵌套列表來描述連接。即,給定具有n個細胞的模型M,其相應的染色體可以由(Mmic,Mmac)描繪,其中Mmic和Mmac定義如下,

                                                                         

4.2 初始化

我們從N個羣體開始,我們強調細胞的多樣性。實際上,爲了生成模型,我們從S中隨機採樣一個單元並重復n次。在N大於S的大小的情況下,模型被任意採樣而不重複單元。至於連接,我們從分類分佈中進行抽樣。在每個類別中,我們統一選擇,即
p~U(0,1)。爲了形式化,連接是基於以下規則構建的

4.3評價選擇

我們計算[Chu和Yu,2018]中提到的擁擠距離,以使我們的模型均勻分佈,並且我們應用tournament選擇(k = 2)來控制進化壓力。

4.4交叉

爲了鼓勵探索,在微觀和宏觀空間同時進行單點交叉。給定兩個模型A(Mmic(A),Mmac(A))和B(Mmic(B),Mmac(B)),可以生成新的染色體C,

 其中i和j分別選擇微觀和宏觀基因的位置。非正式地說,交叉程序對開發的貢獻大於探索。

4.5突變

我們再次應用分類分佈來平衡探索和開發。
探索

爲了鼓勵探索,我們將隨機變異與輪盤賭選擇(RWS)結合起來。由於我們將超分辨率視爲一個多目標問題,因此FLOPS和參數數量是兩個目標,可以在元編碼可用後立即進行評估。特別地,我們還從分類分佈中採樣以確定突變策略,即隨機突變或通過輪盤轉輪選擇來突變以處理FLOPS或參數。形式上,

每當我們需要通過RWS改變模型M時,我們保持Mmac不變。每個單元共享相同的運算符集S,我們在S上執行RWS n次以生成Mmic。嚴格地說,鑑於Mmac,執行完整的RWS(涉及192n模型)是難以處理的。相反,它可以基於S(涉及192個基本運算符)近似。
此外,我們在RWS之前以對數方式縮放FLOPS和參數數量。

開發

爲了增強利用,我們應用強化驅動的突變。
我們使用神經控制器進行變異,如圖2所示。具體來說,M_{mic}的嵌入特徵被連接起來,然後被注入3個全連接的層以生成M_{mac}。最後一層有n(n+1)/2個神經元來表示連接,其輸出表示爲O^{mac}
網絡參數可以分爲兩組,\theta^{mac}\theta^{mic}。爲單元j選擇Si的概率是p(cell_i = S_i | \theta ^{mic}),對於連接C_{i}^j = 1,我們有       

                                                      p(cell_i = S_i | \theta ^{mic}) = O^{mac}_{(i-1)*(n+1-0.5*i)+j}

因此,Cell 1樣本梯度g(θ)可以如下計算:


 在等式6中,Ri和Rj是打折的累積獎勵。在這裏,我們設置折扣參數γ= 1.0。

5 評估

評估者計算控制器生成的模型的分數。最初,我們嘗試訓練RNN迴歸器來預測模型的性能,並在先前的管道執行中收集數據。但是,其驗證錯誤太高而無法繼續。相反,每個模型都訓練了相對較短的時間,以粗略地區分各種模型。在不完整的訓練結束時,我們評估測試數據集上的均方誤差。

 

6 實驗

 

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