AutoGAN: Neural Architecture Search for Generative Adversarial Networks
生成对抗网络(GAN)可以用于生成、风格迁移、数据增强、超分辨率等任务。今天介绍一篇 ICCV 2019 的 paper: “AutoGAN: Neural Architecture Search for Generative Adversarial Networks”。这篇文章第一次把 NAS 和 GAN 结合,想要用神经网络结构搜索(NAS)的方法搜一个GAN 的网络结构。
作者是来自 Texas A&M University 和 MIT-IBM Watson AI Lab 的 Xinyu Gong, Shiyu Chang, Yifan Jiang, Zhangyang Wang,代码开源在这里。
作者指出,将 NAS 和 GAN 结合,会遇到下面的问题:
问题1: GAN 由生成器 G 和判别器 D 组成。那么应该先固定住其中一个的结构,搜另一个吗?还是说这两个应该一起同时搜呢?
如果先固定一个搜另一个,可能会导致两者之间的不平衡;而如果两个一起搜,GAN 的训练不稳定,可能会遇到 Mode collapse 之类的问题。
作者的解决方法是: 只搜 G ,但是 D 并不是一成不变的。当 G 变的越来越深的时候, D 也会堆叠一些预先确定的 block 来变深。
问题2: 没有一个好的评价指标来给搜索过程提供反馈。
GAN 常用的指标是 Inception score (IS) 和 FID score,由于 FID score 计算比较慢,作者就选择用 Inception score 作为 RL 的 award。
搜索空间
下面介绍 AutoGAN 的搜索空间。作者采用了 Multi-Level Architecture Search (MLAS) 的策略,就是生成器由不同的 cell 组成,在搜索的时候一个 cell 对应一个 RNN controller 。搜索空间如下图所示:
第 s 个 cell 的搜索空间就可以由一个形状为 (s+5) 的元组 ( s k i p 1 , . . . , s k i p s , C , N , U , S C ) (skip_1, ..., skip_s, C, N, U, SC) (s