机器之心报道

参与:魔王

自编码器(AE)与生成对抗网络(GAN)是复杂分布上无监督学习最具前景的两类方法,它们也经常被拿来比较。人们通常认为自编码器在图像生成上的应用范围比 GAN 窄,那么自编码器到底能不能具备与 GAN 同等的生成能力呢?这篇研究提出的新型自编码器 ALAE 可以给你答案。目前,该论文已被 CVPR 2020 会议接收。

论文地址:https://arxiv.org/pdf/2004.04467.pdf

GitHub 地址:https://github.com/podgorskiy/ALAE

自编码器是一种无监督方法,它通过同时学习编码器-生成器图将「生成性」和「表征性」结合起来。关于自编码器有两个疑问尚未得到解决:

自编码器是否具备和 GAN 同等的生成能力?

自编码器能否学习解耦表征(disentangled representation)?

最近,来自美国西弗吉尼亚大学的研究者提出一种新型自编码器 Adversarial Latent Autoencoder (ALAE),试图解决以上问题。ALAE 是一个通用架构,它能够利用近期 GAN 在训练方面的改进。研究者表示 ALAE 具备与 GAN 相当的生成能力,且能够学习解耦表征。

利用 ALAE 通用架构,该研究设计了两个自编码器:一种基于 MLP 编码器,另一种基于 StyleGAN 生成器,即 StyleALAE。

研究者对这两个架构的解耦能力进行了验证,发现 StyleALAE 不仅能够生成与 StyleGAN 生成质量相当的 1024x1024 人脸图像,在同样分辨率条件下,它还可以基于真实图像生成人脸重建和操纵结果。

研究者认为,ALAE 是首个性能匹配甚至超过生成器架构的自编码器

ALAE 到底效果如何呢?我们来看展示图:

StyleALAE 的风格混合效果。

感兴趣的读者可以自己运行 demo,不过你需要 CUDA capable GPU、v1.3.1 及以上版本的 PyTorch 和 cuda/cuDNN 驱动,详情参见 GitHub 地址。

新型通用自编码器 ALAE

研究者观察到每个 AE 方法都使用同样的假设:潜在空间的概率分布应与先验相关,自编码器应该与之匹配。而 StyleGAN 相关论文证明,中间潜在空间应当具备更好的解耦能力。

于是研究者通过修改原始 GAN 范式设计了一种新型 AE 架构:

允许基于数据学得的潜在分布解决耦合问题 (A),并使用对抗策略学习输出数据分布 (B),以保留 GAN 的生成能力;为了实现 (A) 和 (B),该研究提出将 AE reciprocity 置于潜在空间中 (C),以避免使用在数据空间中运行的基于简单 l_2 范数的重建损失(对于图像空间来说它们通常是次优选择)。

如下图 1 所示,研究者将生成器 G 和判别器 D 分别分解成两个网络:F、G 和 E、D。

图 1:ALAE 架构。

此外,研究者还展示了 ALAE 与其他自编码器的关联,详见下表:

StyleALAE

研究者使用 ALAE 构建了一个自编码器,该自编码器使用的是基于 StyleGAN 的生成器。具体架构如下图 2 所示:

图 2:StyleALAE 架构。StyleALAE 编码器中的实例归一化(IN)层用来提取多尺度风格信息,并通过可学习的多重线性映射(multilinear map)将它们组合成为一个潜在代码 w。

实现

ALAE 的算法训练过程参见下图:

ALAE 效果如何?

该研究在多个数据集上评估了 ALAE 的性能,实验代码和数据参见 GitHub 地址。

在 MNIST 上的性能

研究者使用 MNIST 数据集训练 ALAE,并使用特征表示来执行分类、重建和分析解耦能力的任务。

表 2:不同方法在 MNIST 分类任务上的性能。

图 3:MNIST 重建效果。

StyleALAE 学习风格表征的能力

研究者在 FFHQ、LSUN 和 CelebA-HQ 数据集上评估 StyleALAE 的性能。

表 3:不同方法在 FFHQ 和 LSUN 数据集上的 FID 分数。

表 4:不同方法的感知路径长度(PPL),表示表征解耦程度。

图 5:FFHQ 重建结果。StyleALAE 对未见过的图像的 1024×1024 重建结果。

图 6:StyleALAE 的 FFHQ 生成结果(1024 × 1024 分辨率)。

图 9:StyleALAE 的风格混合效果。「coarse styles」从 Source 图像中复制了高级特征,如姿势、大致发型和脸型,从 Destination 图像中复制了所有颜色(眸色、发色和光照);「middle styles」从 Source 图像中复制了较小型的面部特征例如发式、眼睛睁/闭,从 Destination 图像中复制了脸型;「fine styles」从 Source 图像中复制了颜色和微结构。

图 8:不同方法在 CelebA-HQ 数据集上的重建结果。第一行是真实图像;第二行:StyleALAE;第三行:Balanced PIONEER;第四行:PIONEER。

从图中可以看出,StyleALAE 的生成结果更加清晰,失真度也最低。

旋钮编码器c代码_人脸合成效果媲美StyleGAN,而它是个自编码器相关推荐

  1. 旋钮编码器c代码_非常稳定的旋转编码器解码程序(C51源代码)

    在网上下载过很多种编码器解码程序,使用后感觉都不够稳定,特别是旋转速度稍快时,经常会出现错误解码.为此,经过分析编码器输出波形特点,结合其它解码程序的优点,编写如下代码,不用中断,也可以不用定时器.经 ...

  2. 旋钮编码器c代码_旋转编码器EC11驱动

    旋转编码器EC11驱动 /*-------->>>>>>>>--------注意事项:EC11旋转编码器的扫描时间间隔控制在1~4ms之间, 否则5ms ...

  3. 旋钮编码器c代码_求旋转编码器c程序

    编码器涵盖很多种类,不知你具体要求的哪种?我也曾折腾过一段时间EC11型的,给你个从网上找来的,参考吧(在我板上能运行) //通过编码开关(旋转编码器)控制数码管的加减一 #include #defi ...

  4. python1000行代码_写个人脸识别程序员,C可能要两千行代码,Java两百!但是Python只需二十行即可!...

    今天给大家介绍一个世界上最简洁的人脸识别库 face_recognition,你可以使用 Python 和命令行工具进行提取.识别.操作人脸. 基于业内领先的 C++ 开源库 dlib 中的深度学习模 ...

  5. python实现人脸识别复杂么_人脸识别没有那么复杂,Python一行代码就可以办到

    今天给大家分享一个,用一行python代码实习人脸识别. 环境要求: Ubuntu17.10 Python 2.7.14 环境搭建: 1. 安装 Ubuntu17.10 > 安装步骤在这里 2. ...

  6. python 人脸检测_厉害了,用Python一行代码实现人脸识别

    编辑推荐: 来源于微信号datanami,从环境搭建到人脸识别,图文以及代码叙述详细,希望对大家有帮助. 摘要: 1行代码实现人脸识别,1. 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图 ...

  7. python实现人脸识别代码_手把手教你用1行代码实现人脸识别——Python Face_recogni...

    摘要: 1行代码实现人脸识别,1. 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片.其中每个人一张图片,图片以人的名字命名.2. 接下来,你需要准备另一个文件夹,里面是你要识别的图片.3 ...

  8. python 人脸检测 大胡子_Python | 50行代码实现人脸检测

    信息安全公益宣传,信息安全知识启蒙. 加微信群回复公众号:微信群:QQ群:16004488 加微信群或QQ群可免费索取:学习教程 教程列表见微信公众号底部菜单 现在的人脸识别技术已经得到了非常广泛的应 ...

  9. python有什么好玩的代码_可以用 Python 编程语言做哪些神奇好玩的事情?

    Python作为一种应用极为广泛的语言,几乎在任何领域都能派上用场.想做Web有Flask/Django/Tornado:想做分布式有Celery:想做手机App有Kivy:想做数据分析有Pandas ...

最新文章

  1. Vivado中IP核生成文件
  2. linux下拒绝用户登录,Linux系统用户管理之禁止用户登录
  3. WinCE 自由拼音输入法的测试
  4. HDU - 1754 I Hate It(Splay-区间最大值)
  5. 【转】介绍设置Session失效的几种方法
  6. ps眼睛糖果滤镜插件 - Alien Skin Eye Candy 7 for Mac
  7. Github Clone to local files
  8. python的学习笔记/002-5(2018-5-21)
  9. 面试时遇到一致性哈希算法这样回答会让面试官眼前一亮
  10. EasyCVR通过Ehome协议接入部分设备显示离线排查报告
  11. 网络工程师考试视频教程
  12. rust炼油机怎么搞_rust挖油机在哪个位置 | 手游网游页游攻略大全
  13. centos6查看运行服务器,centos如何查看端口是否开放_网站服务器运行维护,centos,端口...
  14. python处理word文档中的某页_Python快速设置Word文件中指定段落为目录标题
  15. java初学求一个数的绝对值
  16. 【翻译】DataHub:流行的元数据架构讲解
  17. Data Parallelism vs. Model Parallelism
  18. [C陷阱]getchar的返回值是int而不是char
  19. 计算机数据采集 的优点,浅谈数据采集器的硬件特点及作用
  20. 初探自动遍历测试工具-AppCrawler

热门文章

  1. PHP md5和js md5保持一致的方法
  2. mysql中systimestamp_oracle数据库中timestamp是什么数据类型
  3. mysql 介绍 知乎_SQL介绍——Mysql
  4. 6 redhat 查看rtc时间_RTC 月度小报 9 月 | WebRTC M77、RTC大会即将开幕、实时码流加速...
  5. python制作中秋贺卡_中秋节到了,送你一个Python做的Crossin牌“月饼”
  6. 使用tensoflow serving来部署模型推理节点
  7. java中如何关闭文件,在Java中捕获IOException后如何关闭文件?
  8. c# 拷贝结构体_C#学习之Partial、结构体、枚举
  9. c语言地图导航代码大全,C语言实训—电子地图导航系统源代码.docx
  10. html 注册插件,HTML 插件