利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造

機器之心發表於2019-10-07

神經架構搜尋(NAS)已經在影像分類和分割任務中顯示出一定的成功。而作為利用神經架構搜尋生成生成對抗網路(GAN)的方法,AutoGAN 相比於現有的 SOTA GAN 模型具有很大的優勢。本文首先介紹了 GAN 的工作原理以及目前的手工設計方法,然後展示了 AutoGAN 如何利用神經架構搜尋來自動尋找最佳的 GAN 架構。

自從生成對抗網路(GAN)在 NIPS 2014 大會上首次發表以來,它就一直是深度學習領域的熱門話題。

其中一個特別的原因是:GAN 能夠基於很少的現有內容創造全新的內容。正是這種創造力使 GAN 一族變得如此強大。GAN 已被證明能夠將這種創造力應用於諸多不同的實際應用中:

  • 生成穿特定服飾者的影像。

    非常適合在虛擬平臺上將服裝線上展示給客戶;

  • 藝術品創作;

  • 電影和視訊遊戲的重製和質量改進;

  • 加強對暗物質等非常複雜的高深物理課題的研究。

GAN 的應用案例不勝列舉。

因為 GAN 極具實用價值,因此投入了大量資源,以弄清楚它們的工作機制以及如何設出計最佳的 GAN 網路。最後,經過幾年的發展和探索,AutoML 和神經架構搜尋(NAS)進入了 GAN 領域。

GAN 工作原理

生成對抗網路(GAN)屬於「生成」模型範疇。這意味著它們能夠生成全新的「有效」資料。我們所說的有效資料是指,網路的輸出應該是我們期望得到的資料。

為了說明這一點,舉個例子,我們希望生成一些用於訓練影像分類網路的新影像。當然,對於這類應用,我們希望自身的訓練資料儘可能逼真,甚至與其他影像分類訓練資料集的風格極其相似。

下圖顯示了 GAN 生成的一組影像的示例。它們看起來非常逼真!如果不告訴我們這是計算機生成的,則很可能信以為真!

利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造

ProGAN 的輸出示例。圖源:https://arxiv.org/pdf/1710.10196.pdf 

為了做到這一點,GAN 構建了兩個獨立且對抗的網路:生成器和判別器。當僅輸入一個噪聲影像陣列時,生成器經過訓練可以建立逼真的影像。判別器經過訓練可以對影像是否真實進行判別。

GAN 的真正能力源於它們遵循的對抗訓練風格。生成器網路的權重是根據判別器的損失來學習的。因此,生成器以這樣的方式進行訓練:對於它生成的影像,很難判斷是否真實。與此同時,影像越真實,判別器越能判別影像真偽,無論它們在肉眼看來有多相似。

因此,GAN 構建了一種反饋迴路,其中生成器幫助訓練判別器,判別器幫助訓練生成器,兩者相互促進。下圖 GAN 的結構圖說明了這一點:
利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造

生成對抗網路的結構圖。

注意,生成器只是一個輸出影像的 CNN,而判別器只是一個輸出類概率的 CNN 分類網路,非常簡單。由於這種簡單性,大多數 GAN 架構實際上只是其他 SOTA 深度網路的副本。生成器可以採用類似調整後 U-Net 的形式,而判別器通常採用 ResNet、DenseNet 或類似的體系結構。

這樣做的好處是可以簡化部分問題。研究人員可以簡單地借鑑先前已驗證的網路設計,並將重點放在 GAN 的演算法設計和訓練機制上。

而侷限性就是:如果當前的網路設計不是最適合 GAN 的呢?GAN 可以自行執行,但是專門為 GAN 設計的改進網路結構可以進一步改善 GAN 效能。

使用 AutoGAN 尋找最佳 GAN

神經架構搜尋(NAS)是另一個熱門的深度學習主題。NAS 是一種搜尋最佳網路架構的演算法。

大多數 NAS 演算法都通過下列方式工作:

  1. 首先定義一組可能用於我們網路的「構建塊」;

  2. 然後使用迴圈神經網路(RNN)控制器對這些構建塊進行取樣,將它們組合在一起,建立一種端到端架構;

  3. 在特定資料集上訓練和評估新構建的網路;

  4. 根據評估,調整 RNN 選擇的構建塊,即 RNN 將選擇一個新集合,保留有助於提升準確率的塊和配置,不能提升準確率的塊和配置替換掉或直接刪除;

  5. 重複步驟 3 到 4 多次,直到找到最佳架構。

這種型別的 NAS 已成功應用於影像分類語義分割任務中。

利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造

NAS 演算法。圖源:https://arxiv.org/pdf/1707.07012.pdf

AutoGAN 也遵循完全相同的學習方案,並且特別注重構建生成器網路,因為它在尋找最佳分類網路(用作判別器)方面做了更多的工作。

正如作者在論文中所指出的,訓練 GAN 本身就會由於設計原因而導致訓練結果不穩定,而精細的網路構建對於流程的順利進行至關重要。考慮到這一點,AutoGANs 的搜尋空間要比 NAS 的有限得多。AutoGAN 的生成器搜尋空間不能從許多不同型別和大小的卷積塊中取樣並跳躍連線,而是設定為:

  • 二進位制值跳躍,指示當前單元是否從前一個單元獲取附加跳躍連線;

  • 基本卷積塊,決定是否包括前啟用或後啟用;

  • 歸一化型別的選擇:

    批歸一化、例項歸一化、無歸一化;

  • 要使用的上取樣型別:

    雙線性上取樣、最近鄰上取樣或 2 步幅反摺積;

  • 是否使用單元內的附加跳躍連線。

利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造

AutoGAN 生成器網路的搜尋空間。圖源:https://arxiv.org/pdf/1908.03835v1.pdf

有了這個更易控制的搜尋空間,應用 NAS 來尋找最佳的生成器架構變得更加簡單和穩定,因為 NAS 的搜尋範圍和複雜程度要小很多。

使訓練更有效的另一種技術是使用多級架構搜尋(Multi-Level Architecture Search,MLAS)而不是常規的層次架構搜尋(SLAS)。使用常規 SLAS,將使用單個 RNN 控制器一次構建整個 NAS 網路。但是使用 MLAS,網路實際上是逐步建立的。

MLAS 以自下而上的方式搜尋,分別為每個單元執行架構搜尋。因此,每個單元將採取各自的 RNN 控制器進行搜尋。從某種意義上說,這也簡化了搜尋過程,因為 NAS 一次只關注網路的一個特定部分,而不是複雜的整體。

利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造

AutoGAN 的 RNN 控制器。圖源:https://arxiv.org/pdf/1908.03835v1.pdf 

憑藉其精密的新訓練設定和細粒度、集中的單元搜尋空間,AutoGAN 能夠實現 SOTA 結果。具體來說,它為基於人類判斷生成高視覺質量的新影像設定了新的標準。

原文連結:https://towardsdatascience.com/automatically-finding-the-best-neural-network-for-your-gan-c0b97a5949f2

相關文章