点击我爱计算机视觉标星,更快获取CVML新技术


本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载。

选自Towardsdatascience

作者:George Seif

机器之心编译

参与:高璇、杜伟

神经架构搜索(NAS)已经在图像分类和分割任务中显示出一定的成功。而作为利用神经架构搜索生成生成对抗网络(GAN)的方法,AutoGAN 相比于现有的 SOTA GAN 模型具有很大的优势。本文首先介绍了 GAN 的工作原理以及目前的手工设计方法,然后展示了 AutoGAN 如何利用神经架构搜索来自动寻找最佳的 GAN 架构。

自从生成对抗网络(GAN)在 NIPS 2014 大会上首次发表以来,它就一直是深度学习领域的热门话题。

其中一个特别的原因是:GAN 能够基于很少的现有内容创造全新的内容。正是这种创造力使 GAN 一族变得如此强大。GAN 已被证明能够将这种创造力应用于诸多不同的实际应用中:

  • 生成穿特定服饰者的图像。

    非常适合在虚拟平台上将服装在线展示给客户;

  • 艺术品创作;

  • 电影和视频游戏的重制和质量改进;

  • 加强对暗物质等非常复杂的高深物理课题的研究。

GAN 的应用案例不胜枚举。

因为 GAN 极具实用价值,因此投入了大量资源,以弄清楚它们的工作机制以及如何设出计最佳的 GAN 网络。最后,经过几年的发展和探索,AutoML 和神经架构搜索(NAS)进入了 GAN 领域。

GAN 工作原理

生成对抗网络(GAN)属于「生成」模型范畴。这意味着它们能够生成全新的「有效」数据。我们所说的有效数据是指,网络的输出应该是我们期望得到的数据。

为了说明这一点,举个例子,我们希望生成一些用于训练图像分类网络的新图像。当然,对于这类应用,我们希望自身的训练数据尽可能逼真,甚至与其他图像分类训练数据集的风格极其相似。

下图显示了 GAN 生成的一组图像的示例。它们看起来非常逼真!如果不告诉我们这是计算机生成的,则很可能信以为真!

ProGAN 的输出示例。图源:https://arxiv.org/pdf/1710.10196.pdf 

为了做到这一点,GAN 构建了两个独立且对抗的网络:生成器和判别器。当仅输入一个噪声图像阵列时,生成器经过训练可以创建逼真的图像。判别器经过训练可以对图像是否真实进行判别。

GAN 的真正能力源于它们遵循的对抗训练风格。生成器网络的权重是根据判别器的损失来学习的。因此,生成器以这样的方式进行训练:对于它生成的图像,很难判断是否真实。与此同时,图像越真实,判别器越能判别图像真伪,无论它们在肉眼看来有多相似。

因此,GAN 构建了一种反馈回路,其中生成器帮助训练判别器,判别器帮助训练生成器,两者相互促进。下图 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 算法。图源:https://arxiv.org/pdf/1707.07012.pdf

AutoGAN 也遵循完全相同的学习方案,并且特别注重构建生成器网络,因为它在寻找最佳分类网络(用作判别器)方面做了更多的工作。

正如作者在论文中所指出的,训练 GAN 本身就会由于设计原因而导致训练结果不稳定,而精细的网络构建对于流程的顺利进行至关重要。考虑到这一点,AutoGANs 的搜索空间要比 NAS 的有限得多。AutoGAN 的生成器搜索空间不能从许多不同类型和大小的卷积块中采样并跳跃连接,而是设置为:

  • 二进制值跳跃,指示当前单元是否从前一个单元获取附加跳跃连接;

  • 基本卷积块,决定是否包括前激活或后激活;

  • 归一化类型的选择:

    批归一化、实例归一化、无归一化;

  • 要使用的上采样类型:

    双线性上采样、最近邻上采样或 2 步幅反卷积;

  • 是否使用单元内的附加跳跃连接。

AutoGAN 生成器网络的搜索空间。图源:https://arxiv.org/pdf/1908.03835v1.pdf

有了这个更易控制的搜索空间,应用 NAS 来寻找最佳的生成器架构变得更加简单和稳定,因为 NAS 的搜索范围和复杂程度要小很多。

使训练更有效的另一种技术是使用多级架构搜索(Multi-Level Architecture Search,MLAS)而不是常规的层次架构搜索(SLAS)。使用常规 SLAS,将使用单个 RNN 控制器一次构建整个 NAS 网络。但是使用 MLAS,网络实际上是逐步建立的。

MLAS 以自下而上的方式搜索,分别为每个单元执行架构搜索。因此,每个单元将采取各自的 RNN 控制器进行搜索。从某种意义上说,这也简化了搜索过程,因为 NAS 一次只关注网络的一个特定部分,而不是复杂的整体。

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

凭借其精密的新训练设置和细粒度、集中的单元搜索空间,AutoGAN 能够实现 SOTA 结果。具体来说,它为基于人类判断生成高视觉质量的新图像设置了新的标准。

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


NAS交流群

关注最新最前沿的AutoML、NAS技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

(请务必注明:NAS)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

利用NAS寻找最佳GAN:AutoGAN架构搜索方案专为GAN打造相关推荐

  1. Python黄金相关性市场探析——如何利用相关性寻找最佳建仓时机!

    近期,国际金价持续创新高,也激发了很多人黄金投资的热情.目前国内黄金市场存在实物黄金.纸黄金.黄金T+D.黄金期货.黄金ETF.黄金股.现货黄金等品种,交易规则错综复杂,不仅要判断对趋势,还要为爆仓. ...

  2. 【读点论文】EfficientNetV2: Smaller Models and Faster Training 训练感知的神经架构搜索+自适应的渐近训练方法优化训练(TPU,大数据量)

    EfficientNetV2: Smaller Models and Faster Training Abstract 本文介绍了EfficientNetV2,这是一个新的卷积网络系列,与以前的模型相 ...

  3. ENAS:通过参数共享实现高效的神经架构搜索《EfficientNet Neural Architecture Search via Parameter Sharing》

    本文总结多篇相关博客:https://www.sohu.com/a/222705024_129720.https://zhuanlan.zhihu.com/p/60592822.https://blo ...

  4. ICCV NAS Workshop 最佳论文提名:通过层级掩码实现高效神经网络架构搜索

    点击我爱计算机视觉标星,更快获取CVML新技术 机器之心发布 作者:Faen Zhang.Mi Zhang等 本文介绍了由创新奇智公司联合密歇根州立大学合作开发的高效神经网络架构搜索算法 HM-NAS ...

  5. 神经架构搜索(NAS)2020最新综述:挑战与解决方案

    终于把这篇NAS最新的综述整理的survey放了上来,文件比较大,内容比较多.这个NAS的survey是A Comprehensive Survey of Neural Architecture Se ...

  6. 神经网络架构搜索(NAS)综述 | 附AutoML资料推荐

    本文是一篇神经网络架构搜索综述文章,从 Search Space.Search Strategy.Performance Estimation Strategy 三个方面对架构搜索的工作进行了综述,几 ...

  7. 神经网络架构搜索(NAS)基础

    网络架构搜索(NAS)已成为机器学习领域的热门课题.商业服务(如谷歌的AutoML)和开源库(如Auto-Keras[1])使NAS可用于更广泛的机器学习环境.在这篇博客文章中,我们主要探讨NAS的思 ...

  8. AutoML系列 | 03-神经网络架构搜索(NAS)综述

    本文是对 "Neural Architecture Search: A Survey"的翻译,这篇Paper 很好的总结分析了 NAS 这一领域的研究进展. 摘要 在过去几年中,深 ...

  9. 《神经架构搜索NAS》最新进展综述,25页pdf

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 来源于:专知 [导读]本文为大家整理了神经架构搜索NAS的最新进展综述,神经架构搜索(NAS)自 ...

最新文章

  1. shell中if [ -e/d/f ..... ]的解释
  2. mysql char 和varchar哪种效率高_MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?...
  3. Spring的PropertyPlaceholderConfigurer事例应用
  4. python open找不到文件的原因_浅谈python在提示符下使用open打开文件失败的原因及解决方法...
  5. 2010年基于Linux的10大技术趋势
  6. [architecture]-ARM SMMU学习概念总结一篇就够了
  7. spring-boot--整合thymeleaf模板
  8. 从新手到Flutter架构师,一篇就够!学习路线+知识点梳理
  9. Pycharm常见问题
  10. HDU-4313-Matrix(离线并查集)
  11. Proxy 简答实现 ViewModel 和 View
  12. js或css指定元素点击时内容不可被选中
  13. 网管利器:七大免费网络工具
  14. 雨滴式的显示图片 (cloud 转贴) (转)
  15. 符号Symbol介绍及应用
  16. 电脑需要装杀毒软件吗?两个理由看完你做决定
  17. mybatis-plus(五)-----中文文档
  18. Tableau 添加加权平均参考线
  19. STM32 BOOT模式配置以及作用
  20. web前端常见面试题总结

热门文章

  1. HighCharts入门
  2. C. 啊对对对 (南阳理工oj—21第二次招新赛)
  3. 计算机学业水平测试题及答案初中,初中信息技术学业水平测试——选择题
  4. html个人主页_前端性能优化实践 之 百度App个人主页优化
  5. jni jvm 内存泄漏_解析Java的JNI编程中的对象引用与内存泄漏问题
  6. 外卖和快递行业数据_外卖和快递骑手管理“上轨道”
  7. android 网络编程面试题,Android面试题整理
  8. python length-1_TypeError:使用基本操作时,只有length1数组可以转换为Python标量
  9. mapreduce复制连接的代码_MapReduce:在大型集群上简化数据处理(2)
  10. linux挂载ntfs分区报错,Linux下挂载NTFS分区和挂载分区的方法