StarGAN学习笔记
11 December 2019
20:32
来自 <https://zhuanlan.zhihu.com/p/44563641>
- StarGAN
StarGAN是CVPR2018最新提出来的,用于多领域的图像迁移学习。
代码地址(Pytorch):https://github.com/yunjey/StarGAN
-----------------------------------------------------------------------------------------------
Pix2Pix模型解决了有Pair对数据的图像翻译问题;CycleGAN解决了Unpaired数据下的图像翻译问题。但无论是Pix2Pix还是CycleGAN,都是解决了一对一的问题,即一个领域到另一个领域的转换。当有很多领域要转换了,对于每一个领域转换,都需要重新训练一个模型去解决,即现有的GAN模型为了实现在k个不同的风格域上进行迁移,需要构建k∗(k−1)个生成器,并且还不能跨数据集训练(标注不能复用)。StarGAN正是为了解决跨多个域、多个数据集的训练而提出的。在StarGAN中,并不使用传统的fixed translation((e.g., black-to-blond hair),而是将域信息和图片一起输入进行训练,并在域标签中加入mask vector,便于不同的训练集进行联合训练。对比如下图所示;

本文贡献:
- 提出StarGAN模型,使用单组GAN模型进行跨domain和跨数据集的训练
- 展示了mask vector技术来实现上述的训练过程
- 训练了角色的面部属性和面部表情特征的各种图片
要想让G拥有学习多个领域转换的能力,本文对生成网络G和判别网络D做如下改动:
- 在G的输入中添加目标领域信息c,即把图片翻译到哪个领域这个信息告诉生成模型。
- D除了具有判断图片是否真实的功能外,还要有判断图片属于哪个类别的能力。这样可以保证G中同样的输入图像,随着目标领域的不同生成不同的效果。
- 除了上述两样以外,还需要保证图像翻译过程中图像内容要保存,只改变领域差异的那部分。图像重建可以完整这一部分,图像重建即将图像翻译从领域A翻译到领域B,再翻译回来,不会发生变化。
其中G和D的网络训练过程如下图所示:

-----------------------------------------------------------------------------------------------
本文的损失函数
首先是GAN网络通用的损失函数Adversatial Loss,以判断输出的图像是否真实:

其次是类别损失,该损失被分为两个,训练判别网络D的时候,使用真实图片在原始领域的监督信号进行训练;而训练生成网络G的时候,使用生成之后的图片在目标领域的监督信号进行训练。其中训练D的损失如下(交叉熵损失):

训练G的损失如下:

最后一个损失函数是重建损失,主要目的是保证图片翻译过程中非关键的图片内容信息保存下来,其中损失函数如下(L-1 norm):

汇总之后是:

-----------------------------------------------------------------------------------------------
多训练集进行训练
。

-----------------------------------------------------------------------------------------------
网上其他StarGAN介绍参考:
https://blog.csdn.net/stdcoutzyx/article/details/78829232
https://www.cnblogs.com/punkcure/p/7977819.html
原文笔记:
-----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
StarGAN学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- [转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
创建时间:6.19 & 6.24 1.案例-完成文件下载 1) 什么情况下会文件下载? 浏览器不能解析的文件就下载 *使用a标签直接指向服务器上的资源 2)什么情况下需要在服务端编写文件下载 ...
- NLP中的预训练语言模型(一)—— ERNIE们和BERT-wwm
随着bert在NLP各种任务上取得骄人的战绩,预训练模型在这不到一年的时间内得到了很大的发展,本系列的文章主要是简单回顾下在bert之后有哪些比较有名的预训练模型,这一期先介绍几个国内开源的预训练模型 ...
- 07-C#笔记-运算符
1. 支持++和-- 含义和C++中相同 2. 条件运算 同C++ 3. 位运算 ^ 异或 ~ 取反 4. 支持?:运算 5. 特殊 is 判断对象是否为某一类型. If( Ford is Car) ...
- yarn rest api未授权漏洞
项目集群之前在yarn8088的web资源管理页面上看到一堆莫名的定时任务,就是黑客利用漏洞挖矿,最后禁用了8088端口. freebuff传送门: https://www.freebuf.com/v ...
- 机器学习-MNIST数据集-神经网络
#设置随机种子 seed = 7 numpy.random.seed(seed) #加载数据 (X_train,y_train),(X_test,y_test) = mnist.load_data() ...
- Ansible常用模块整理
问答题 请总结今天所学的ansible模块,以及各个模块的作用! ping ping模块用来检查目标主机是否在线 例子:ansible webserver -m ping yum yum模块用来在Ce ...
- selenium--单选框和复选框的操作
单选框操作 from selenium import webdriver import unittest class Test_radio(unittest.TestCase): def test_S ...
- selenium--拖拽页面元素
from selenium import webdriver import unittest from selenium.webdriver import ActionChains import ti ...
- ZROI 暑期高端峰会 A班 Day3 字符串
FBI Warning:本文含有大量人类的本质之一 后缀树 反正后缀树就是反串的后缀自动机的 Parent 树,就不管了. 然而 SAM 也忘了 好的假装自己会吧--dls 后缀自动机 大概记得,不管 ...
- 【Activiti学习之六】BPMN任务
环境 JDK 1.8 MySQL 5.6 Tomcat 7 Eclipse-Luna activiti 6.0 一.任务任务表示流程中将要完成的工作. 1.任务继承 2.任务类型Service Tas ...