可以看到,猫变狗,单车变摩托了。效果看上去有点尴尬,但毕竟是初步效果是有了。
但这篇论文的主要贡献是提出了一个“Contrast distance”。

主要思想

我要从小猫变小狗,变的小狗与真实像狗要像,但是到底像到什么程度呢?输入是猫,那么起码生成的小狗,与真实的小狗的相像程度,要大于与其输入的猫的相像程度吧。其实就是一个triple loss的思想。我们要想生成的是狗,希望生成的狗输入真实狗的那一类,那么这两只狗的距离,肯定要小于生成的狗与输入的猫的距离。因为狗与猫是不同类,他们的距离属于类间距离。所以这种”Contrast distance”就相当于类间距离大于类内距离。

损失

对于G来说就有三个损失,除了最简单的 重建损失,还有GAN损失(用LSGAN来让稳定性高点),最后就是这里的重点 对比损失了。比较简单的就是下面这样写:

∥fx∼fy′∥>∥fy′∼fy¯∥

\|f_x\sim f_{y'}\| > \|f_{y'}\sim \bar{f_{y}}\|
因为我们要比较的距离不是直接在raw image上进行比较,起码是semantic上的距离吧。所以就用一个 Dcy D_{c_y}来提取语义信息,并在特征上进行约束。为了避免模式塌陷,用 f¯y \bar f_{y},即抽取多张真实的狗图,提取特征再取个平均,而不是任意抽一张。
那么距离的具体定义:

Q(fy′,fx,fy¯)=−loge−∥fy′−fy¯∥2e−∥fy′−fy¯∥2+e−∥fy′−fx∥2

Q(f_{y'},f_x, \bar{f_y})=-\log\frac{e^{-\|f_{y'}-\bar{f_y}\|_2}}{e^{-\|f_{y'}-\bar{f_y}\|_2}+e^{-\|f_{y'}-f_x\|_2}}
可以看到,如果 ∥fy′−fy¯∥2 \|f_{y'}-\bar{f_y}\|_2 比 ∥fy′−fx∥2 \|f_{y'}-f_x\|_2 小的越多,那么 Q Q值就越小。所以G就最小化QQ,而 Dcy D_{c_y}就最大 Q <script type="math/tex" id="MathJax-Element-10">Q</script>就行。

值得注意的是,这里只需要用一个cycle网络就行。原因就是因为加了Q约束。

隐藏层加类别选择的方法

这个还是挺常用的,就是你如果要进行对G加入一定的条件,比如这里是要求让G生成狗,那么你在latent representation中直接加入“one-hot”类型的特征就行。不过如果是在隐藏层特征中加入“标签”,比如这里 1*64的被扩展成 16*16*64。当然不能胡乱扩展,扩展方式是,每个spaital size的点,都有one-hot这么多通道。可以这样理解,对于每个点来说,64个通道,只有一个值是1,其余全部为0。相当于这个点是被赋予了“狗”的标签。扩展的16*16*64, 每次只有一个面(假设是第3个)是1,其余63个面全为0。经过网络训练后,会自动认为第3个通道面为1的话,就专门提取一些有助于变成狗的特征。(以后有更好的解释再补充吧。。)其实这在很多地方都这样弄,比如Generative Adversarial Text to Image Synthesis, 在D的隐藏层也是这样加入类别选择的。

Contrast GAN--- 实现CycleGAN无法实现的“眼一瞎, 猫变狗”,“手一抖,单车变摩托”相关推荐

  1. pix2pixhd_一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

    人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artifi ...

  2. 一文读懂GAN, pix2pix, CycleGAN和pix2pixHD

    人员信息 主讲嘉宾 姓名:朱俊彦(Jun-Yan Zhu) 现状:麻省理工学院博士后(PostDoc at MIT),计算机科学与人工智能实验室(Computer Science and Artifi ...

  3. 如何用深度学习生成图片(GAN, pix2pix, CycleGAN和pix2pixHD)

    本文翻译.总结自朱俊彦的线上报告,主要讲了如何用机器学习生成图片. 来源:Games2018 Webinar 64期 :Siggraph 2018优秀博士论文报告 人员信息 主讲嘉宾 姓名:朱俊彦(J ...

  4. 【万物皆可 GAN】CycleGAN 原理详解

    [万物皆可 GAN]CycleGAN 原理详解 概述 CycleGAN 可以做什么 图片转换 图片修复 换脸 CycleGAN 网络结构 CycleGAN 损失函数 概述 CycleGAN (Cycl ...

  5. [人工智能-深度学习-63]:生成对抗网络GAN - 图片创作:普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  6. 恶狗变萌犬,路人妹子变老婆:日本开源GAN“插件”,想P哪里点哪里 | Demo

    花栗子 发自 凹非寺 量子位 出品 | 公众号 QbitAI 这是一只面露凶光的哈士奇. 但它凶不过三秒,只要在眼睛上刷一刷: 就回归了呆萌的本性. 机智的你可能已经发现,是左下角那只 (有点像博美的 ...

  7. 新版pycharm,亮瞎我的狗眼

    如题

  8. GAN Guides

    Coding Skill目录下的所有Tutorials.Notes.Guides博客都会不定期迭代更新 文章目录 What's GAN Traditional Function 变分自动编码器(VAE ...

  9. 商汤实习面试准备(已上岸)

    简介 个人从牛客网,知乎等网站收集了一些近一年内商汤实习计算机视觉算法工程师(见习研究员)的面经,总结如下. 面经及回答 关于BN层.可学习参数,BN层的作用,在训练阶段和预测阶段的有什么不同,了解G ...

最新文章

  1. 科技部5个6G重点项目
  2. 2017-9-15Opencv 杂
  3. 计算机视觉与模式识别国际期刊整理
  4. js如何获取jwt信息_学习后端鉴权系列: 基于JWT的会话管理
  5. Python简单前序创建二叉树及二叉树的遍历
  6. 2019一起走,健康幸运全都有
  7. c#子线程和主线程创建窗体时顶层显示的区别
  8. CVPR 2020 | 北航提出:通过由粗到精特征自适应进行跨域目标检测,表现SOTA!
  9. 谷歌暗示android wear未来或兼容ios系统!腾讯,传谷歌今年5月将推出iOS版本Android Wear...
  10. php mysql某值相同时_php - Mysql3个字段,任何一个字段的值相同则为重复,语句应该怎么写?...
  11. 设计模式原则之四:迪米特法则
  12. python创建类的实例化_在C中实例化python类#
  13. 如何进行信息化项目需求调研
  14. gmail如何配置163邮箱服务器端口,hotmail,gmail,live,QQ,163,yahoo邮箱服务器及端口号,outlook,foxmail 设置...
  15. 前端标注软件-pxcook像素大厨使用心得
  16. outlook邮箱显示一直启动中_Outlook发送邮件一直停留在发件箱的解决办法
  17. 用html做一个分类目录网站,分类目录网站做外链
  18. 中学生计算机编程大赛有哪些,学了编程可以参加哪些含金量高的比赛?
  19. 网页短链接的实现原理
  20. 大道至简 | 设计 ViT 到底怎么配置Self-Attention才是最合理的?

热门文章

  1. linux驱动摸索-- LCD显示(mini2440_T35)
  2. Java之有限状态机
  3. 谷歌浏览器如何新标签打开
  4. 什么是FreeMarker?
  5. Apache-Plc4x-Modbus-Tcp学习记录(三)
  6. #软件构造 Java中的正则
  7. Windows系统之建网站
  8. openstack实例之间大报文分片不生效
  9. python不能复制粘贴_【Python】Python代码不用怕复制粘贴
  10. 解决使用mybatis-plus时,生成的SQL大写变小写加下划线