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個單元塊,存在個連接選擇,以構建從的輸入到其後續單元塊3的信息流。此外,我們使用來表示從輸入到的路徑。如果它們之間存在連接路徑,則設置= 1,否則爲0.因此,n個單元塊的宏空間的大小是。總之,總空間的大小爲。
註釋:我們的上採樣塊包含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所示。具體來說,的嵌入特徵被連接起來,然後被注入3個全連接的層以生成。最後一層有個神經元來表示連接,其輸出表示爲。
網絡參數可以分爲兩組,和。爲單元j選擇Si的概率是,對於連接 = 1,我們有
因此,Cell 1樣本梯度g(θ)可以如下計算:
在等式6中,Ri和Rj是打折的累積獎勵。在這裏,我們設置折扣參數γ= 1.0。
5 評估
評估者計算控制器生成的模型的分數。最初,我們嘗試訓練RNN迴歸器來預測模型的性能,並在先前的管道執行中收集數據。但是,其驗證錯誤太高而無法繼續。相反,每個模型都訓練了相對較短的時間,以粗略地區分各種模型。在不完整的訓練結束時,我們評估測試數據集上的均方誤差。
6 實驗