1.目的

仅使用一个模型来执行多个域的图像到图像的转换

2.贡献

  • 提出了一种全新的生成对抗网络StarGAN,该网络只使用一个生成器和一个鉴别器来学习多个域之间的映射,并从各个域的图像中有效地进行训练;
  • 演示了如何使用掩模向量方法(mask vector method)成功学习多个数据集之间的多域图像转换,并使得StarGAN控制所有可用的域标签;
  • 使用StarGAN进行面部属性转换和面部表情合成任务,并对结果进行了定性和定量分析,结果显示其优于基准线模型。

3.关键点

为了保证生成器G能够有效在多个域之间转换,目标域的标签随机给定。

4.网络结构

网络的结构仿照Cycle-GAN的设置,使用两层步长为2的卷积层进行下采样(降维),6个残差块连接,然后使用两层步长为2的卷积层进行上采样。生成器使用了实例归一化,但是判别器没有用正则化。判别器网络文中使用的是patch-GAN。
文中在每一层都使用了实例归一化,除了最后的输出层
分类器的激活函数使用了leakyrelu,负的一侧的斜率为0.01.

5.loss设置

对抗loss

生成器的目标是最小化对抗loss,判别器的目标是最大化对抗loss

域分类loss

生成器和判别器的目标都是最小化域分类loss,域分类loss有两个,real image的域分类loss和fake image的域分类loss,前者是为了训练判别器,后者是为了训练生成器。对于一个给定的输入图片x(属于C1域)和域c,生成器的目标是输出一张图片y,恰好属于c域。

real image domain classification loss(训练D)

fake image domain classification loss(训练G)

重建loss

通过最小化域分类loss和对抗loss,生成器能够生成符合目标域的真实图片,但源域和目标域的图片内容可能不一致,因此引入了重建loss的概念。

意思就是利用已经生成的目标域图片与源域的域标签结合生成源域图片,然后计算此时生成的源域的图片和输入时的源域图片之间的L1loss,G的目标是最小化L1loss。

总的loss

此时LD与LG均是最小化。

补充

为了提高训练的效率和训练的稳定性以生成更高质量的image,文中将对抗loss换成了WGAN中的对抗loss

原因

在(近似)最优判别器下,最小化生成器的loss等价于最小化之间的JS散度,而由于几乎不可能有不可忽略的重叠,所以无论它们相距多远JS散度都是常数,最终导致生成器的梯度(近似)为0,梯度消失。

WGAN的知识介绍:

改进后的GAN相比原始GAN的算法实现流程却只改了四点

  • 判别器最后一层去掉sigmoid
  • 生成器和判别器的loss不取log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c
  • 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行

6.不同数据集的域标签该如何表示

问题1:数据集1的图片标签有年龄,性别,头发颜色等信息,但却缺乏表情信息;数据集2的图片有年龄,性别,表情等信息,但是却缺乏头发颜色的信息。

解决办法:

引入了mask vector ,假设有n个数据集,每个数据集标签或类别并集的数量为T,则建立一个T*n的向量。当使用数据集1的时候,c1的长度为T,使用后0、1表示数据集的类别或标签的信息,剩余的n-1个列向量全部置为0.

7.训练star-Gan时候的输入数据形式

生成器的输入包含两个部分,一部分是输入图像imgs,大小为(batch_size, n_channel, cols, rows);一部分是目标领域的标签domain,大小为(batch_size, n_dim)。为了将这两部拼接,需要通过repeat操作来对domain进行扩展,将其扩展为(batch_size, n_dim, cols, rows),因此,生成器输入的大小为(batch_size, n_channel + n_dim, cols, rows),生成器的输出为(batch_size, n_channel, cols, rows)。判别器的输入为图像imgs,大小为(batch_size, n_channel, cols, rows),判别器的输出分为两部分,一部分是图像的真假判断,大小为(batch_size, 1, s1, s2),另一部分为图像的类别划分,大小为(batch_size, n_dim)。

StarGAN快速阅读相关推荐

  1. 如何阅读一本书 pdf_如何2个小时内快速阅读一本书?

    今天是世界读书日,朋友圈又被各大商家卖书和读者买书的消息刷屏了. 很多人好奇我好像不工作一样,为啥还有时间看书.其实大家的时间都是一样的,只是我读书的速度比一般人快一点罢了. 那我是怎么做到的呢?趁着 ...

  2. caj在线阅读_用翻译软件快速阅读大量英文文献

    前言 对于一些引用的英文文献,我们需要快速地了解整篇文献讲了什么内容,来判断是否可以作为"国内外研究现状"来进行详细分析.通常文献都是CAJ或者PDF格式的,这样格式文献的缺点在于 ...

  3. 201904快速阅读术

    在看过了几本数之后,发现原来培养读书的习惯好像也不太难,"将读书融入生活,框定读书时间" 生活中,我确实也是这样执行了.利用每天上下班的时间听书,有些觉得可以读快的书籍用了1.5倍 ...

  4. 如何阅读一本书 pdf_如何快速阅读一本书?

    / 01 / 阅读的重要性不言而喻.芒格说过,"我见过的聪明人,没有一个不读书的,一个都没有."但是读什么样的书?如何过目不忘?怎样高效阅读?却是一门学问. 大一时我读了500本书 ...

  5. 快速阅读软件工程后的几个问题

    快速阅读完软件工程这本书后,关于书中的一些问题. 1.在书中21页关于单元测试的相关内容中完整定义,通过查资料,其定义为对软件中的最小可测试单元进行检查和验证.但是,如何对一个程序进行一个步骤完整的测 ...

  6. 【视频学习】12堂快速阅读课,10倍提升阅读效率

    12堂快速阅读课,10倍提升阅读效率 视频下载链接:https://download.csdn.net/download/qq_36749728/19827075 先导课-阅读缓慢的普通人,也能实现& ...

  7. 学习方法推荐——快速阅读

    快速阅读是什么? 速读(rapid reading),或称"快速阅读",现大多叫做"全脑速读".所谓的快速阅读,是指在规定的极短时间内能够作到积极.有目的.有方 ...

  8. 快速阅读等三种读书方法

    快速阅读法 当拿到一本书,应该在基本了解这本书的大体内容后,再决定是否值得花时间去读. 那么,有没有一种快速阅读的方法呢?快速阅读法的关键是在眼停(瞳孔不运动时)的瞬间,能感知到较多的词汇量.如同我们 ...

  9. 快速阅读——《认知篇》

    关于快速阅读的思考学习,我们需要建立正确的认知,掌握核心技能,最后实践应用.本文是博主学习了速读之后的一点收获总结,此为<认知篇>,讲述了传统的认知错误,解释了关于速读的好处,以及在进行速 ...

最新文章

  1. mysql批量导入 导出数据_MySQL批量导入导出数据
  2. android130 android启动
  3. proe3.0安装教程
  4. 浏览器卡怎么办_【十全十美】宽带断线、wifi连不上怎么办?自助排障帮到你!...
  5. ajax jquery php_基于Ajax jquery的使用php登录
  6. P3706-[SDOI2017]硬币游戏【高斯消元,字符串hash】
  7. 内存泄漏和内存溢出的优化
  8. 前端学习(1152):let经典面试题2
  9. python列表切片赋值_Python中对切片赋值原理分析
  10. 修改项目图标_北京2022冬奥会和冬残奥会体育图标发布
  11. Azure CLI 简单入门
  12. Python 自带性能强悍的标准库 itertools
  13. 晶体结构可视化软件Vesta简介
  14. C语言中字符串转数字的方法
  15. python配色_Python数据分析之Seaborn(配色方案)
  16. skyline三维地图与arcgis二维地图联动
  17. HDU 4489 (DP递推计数)
  18. android模拟器命令大全,雷电安卓模拟器命令行整理贴
  19. linux使用grep查找文件内容,Linux中使用grep命令搜索文件名及文件内容的方法
  20. FreeSWITCH背后的故事(译)

热门文章

  1. stm32项目平衡车详解(stm32F407)下
  2. 【DS实践 | Coursera】Assignment 3 | Applied Plotting, Charting Data Representation in Python
  3. 矿业工程毕业论文题目
  4. [51nod1299]监狱逃离
  5. HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者
  6. 奇瑞鲍思语:未来新能源小车出行发展潜力巨大
  7. 《无极限之危情速递》观后感
  8. 第4章 控制执行流程
  9. Google Earth Engine 教程——栅格矢量数据转化和导出
  10. 用java编写租车系统代码_java实现租车系统