AutoGAN: Neural Architecture Search for Generative Adversarial Networks阅读笔记

本文是ICCV2019的一篇文章,第一次将GAN利用网络架构搜索(NAS)来实现,非常有启发意义,遂写一篇阅读笔记。
网络架构搜索在图像分类等问题上均取得了一定的成功,这篇文章首次将NAS应用于GAN生成问题。我们定义了生成器结构变量的搜索空间,并使用一个RNN控制器来指导搜索,通过参数共享和动态重置来加速搜索过程。以inception得分作为奖励,引入多级搜索策略,以渐进的方式进行搜索。实验验证了该算法对无条件图像生成任务的有效性。

  1. 介绍
    GAN取得了极大成功,然而,如何设计GAN的骨架结构却相对没受到多少重视,但是随着GAN的结构不断复杂化,在相对复杂任务上也能达到不错的效果。因此,对GAN的结构进行优化是很有必要的。
    近些年,人们对如何自动化的设计神经网络架构产生了浓厚兴趣,神经结构搜索(Neural architecture search, NAS)已经在图像分类任务中得到了成功的开发和评估,最近在图像分割方面也取得了成功。这些方法所发现的架构优于人类设计的模型。然而,直接将现有NAS的思想从图像分类/分割移植到GAN是行不通的。首先,GAN结构本身就很很不稳定,将NAS应用到GAN上又会增加模型训练的难度。另一个重要的挑战是,虽然验证的准确性使NAS在图像分类中成为一个自然的奖励选项,但是选择一个好的度量来评估和指导GAN搜索过程就不那么简单了。
    本文提出了autoGAN,主要贡献如下:
  2. 定义了搜索空间来捕捉GAN的结构变化。并利用一个RNN控制器来引导模型搜索,并基于参数共享策略,在搜索过程中进一步提出了参数动态重置策略,以提高训练速度。
    2.基于IS得分,基于强化学习方法对autoGAN进行优化。
  3. 本文进一步将多层架构搜索(MLAS)引入到AutoGAN中,MLAS以自底向上的顺序方式,使用beam搜索执行搜索的多个阶段
  4. 相关工作
  5. NAS
    NAS旨在自动找到一个最优的网络架构来代替现有的手工设计的架构。
    一个NAS网络包括三个重要的组件:搜索空间,优化算法和代理任务。对于搜索空间,通常有两种分类:直接搜索整个架构(宏搜索),或者搜索单元并以一种定义好的方式将它们堆叠起来(微搜索)。对于优化算法,常用的选择包括增强学习、进化算法、贝叶斯运算化、随机搜索和基于梯度的运算化方法。对于代理任务,设计代理任务是为了在训练过程中有效地评估被发现的体系结构的性能。大多数NAS算法通过控制器的onepass生成网络结构(宏搜索)或单元(微搜索)。最近的一项工作[37]将多级搜索引入到NAS的图像分类任务中,使用beam search。具体流程是先找到较小的cell,再在这些cell里面找到最好的k个表现的候选cell,下一轮则是以此为基础找到更大的cell。
  6. GAN
    GAN包括一个生成器以及一个鉴别器,在许多问题上都达到了很优秀的效果。
    autoGAN RNN搜索流程3. 主要思路
    AutoGAN的主要思路是通过一个循环神经网络来从搜索空间里来构建生成器,我们做了多项调整,以应对GAN的特殊任务所带来的独特挑战。接下来从搜索空间,代理任务以及优化算法三方面来做具体分析。
  7. 搜索空间
    AutoGAN基于多层架构的研究策略,其中生成器由多个单元组成。这里我们使用(s+5)元素元组,将第s个cell进行分类,这些元素元组被分成了以下五类:
    在这里插入图片描述:二进制值跳跃,指示当前单元是否从前一个单元获取附加跳跃连接;
    C:基本卷积块,决定是否包括前激活或后激活;
    N:归一化类型的选择:批归一化、实例归一化、无归一化;
    U:要使用的上采样类型:双线性上采样、最近邻上采样或 2 步幅反卷积;
    SC:是否使用单元内的附加跳跃连接。
    在这里插入图片描述
  8. 代理任务
    Inception分数(IS)和FID分数是GANs的两个主要评价指标。由于计算FID分数耗时较长,我们选择每个派生子模型的is作为更新控制器的奖励。
    参数共享策略可以很好的提高NAS的效率,故基于参数共享策略,本文进一步为AutoGAN引入了参数动态重置策略。但是GAN在长时间训练后往往会出现模型崩溃的现象,根据经验,我们观察到模态崩溃时训练损失(铰链损失)的方差通常变得非常小。
    基于这一观察结果,我们设置了一个移动窗口来存储最近的训练损失值,对于鉴别器和生成器都是如此。一旦被评估的训练损失的标准偏差小于预先定义的阈值,当前迭代的共享GAN的训练将被终止。共享GAN模型的参数将在当前迭代更新控制器后重新初始化。注意,在这一过程中,本文没有重新初始化RNN控制器的参数,因此它可以继承历史知识,继续指导架构搜索。通过动态重置,搜索过程的效率大大提高。
  9. 优化算法
    有两套参数AutoGAN: RNN控制器的参数(用θ表示);共享GAN参数搜索生成器和一致鉴别器(用ω表示)。它是两个阶段之间的交替过程。
    第一阶段将训练ω共享GAN的ω几个迭代次数,来修正θ。对于共享GAN训练过程的每个训练迭代,RNN控制器将采样一个候选体系结构。一旦记录的训练损失的标准偏差下降到阈值以下,则将动态重置的flag设置为true,共享GAN的训练过程将立即被加速。注意,在当前epoch的控制器训练完成之前,共享GAN不会被重新初始化。第二阶段训练θ来修正ω:控制器将首先采样K子共享生成器。再分别计算每个生成器的IS得分,并把这些得分作为奖励,RNN控制器将通过移动平均基线的强化学习进行更新。经过培训阶段的筛选,将从被剔除的架构中挑选出top k的架构。同时,一个新的控制器将被小型化,以进行下一阶段的架构搜索。
  10. 优化算法
    使训练更有效的另一种技术是使用多级架构搜索(Multi-Level Architecture Search,MLAS)而不是常规的层次架构搜索(SLAS)。使用常规 SLAS,将使用单个 RNN 控制器一次构建整个 NAS 网络。但是使用 MLAS,网络实际上是逐步建立的。
    MLAS 以自下而上的方式搜索,分别为每个单元执行架构搜索。因此,每个单元将采取各自的 RNN 控制器进行搜索。从某种意义上说,这也简化了搜索过程,因为 NAS 一次只关注网络的一个特定部分,而不是复杂的整体。
    实验:
    autoGAN在cifar-10上进行了大量的实验,实验证明autoGAN达到了sota。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值