GAN Dissection: Visualizing and Understanding Generative Adversarial Networks 该论文介绍了一个可视化和理解生成网络学得结构的框架,通过定义一些可解释的单元并通过干涉这些单元来探究生成网络中的因果关系。

GANpaint工具

本文还提供了一个非常有意思的demo,只要鼠标划过,GAN 就可以立即在你指定的地方画出云彩、草地、门和树等景物,并直接改变构图以保持图像的「合理性」。

可以去demo地址
选中「draw」功能和特定的对象,如tree,就能在图中随意用画笔涂抹,GAN会在涂抹区域自动生成树木。选中「remove」功能和特定的对象,如grass,GAN会在涂抹区域自动删除草地。读者可以自己尝试一下。
GAN paint app 的工作原理是直接激活或者去激活深度网络中的神经元组,这些神经元被训练用来生成图像。左边每个按钮(如 door、brick 等)都对应20个神经元。该app表明,通过学习绘画,GAN网络还能学习树、门还有屋顶等对象。通过直接切换神经元,你可以观察该网络建模的视觉世界的结构。
下面来看看这篇论文。


Abstract

生成对抗网络(GAN)近期在很多现实世界任务中取得了巨大成就,很多 GAN 的变体都在样本质量和训练稳定性上获得了很大的进展。然而,对GAN的可视化和理解仍然是缺乏探究的课题。AN 网络是如何表征视觉世界的?导致GAN输出结果失真的原因是什么?架构选择如何影响GAN学习?回答这些问题能够帮助我们发展新的理论洞察和更好的模型。
在 MIT CSAIL 主导的这项工作中,研究者展示了在单元、对象和场景级别上可视化和理解GAN的框架。研究者首先通过基于分割的网络剖析方法(network dissection method)识别出一组和对象概念很相关的可解释单元。然后通过评估人类干预(控制输出中的对象)的能力来量化可解释单元的因果效应。最后,通过将发现的对象概念嵌入到新图像中来测试这些单元和周围事物之间的语境关系。研究者展示了通过该框架实现的多种实际应用,从对比不同层、模型和数据集的内部表征,到通过定位和移除导致失真的单元来改善GAN,从而实现交互式地控制场景中的对象。


大体思路

先看下网络结构:

作者的目的是为了探究在生成器的生成过程中Object(e.g tree)是如何被encode的。
z是从低纬空间中采样的一个latent vector
x是生成器生成的图像
r是生成器中某一个层的输出。
r=h(z) 并且 x=f®=f(h(z))=G(z)
既然r包含了生成图像x的所有信息,那么r中就包含了可以推理并且生成出c类(e.g tree)的信息。
之前的问题就变成了这些信息是如何被encode到r中的。
作者试图理解r是否以某种方式明确地表示c,其中可以将位置P处的r分解为两个分量

在位置P处是否生成Object c主要取决于rU,Pr_{U,P}rU,P​
作者将feature map的每一个channel定义为一个nuit U表示所有感兴趣(与Object c相关)的unit的集合,U‾\overline{U}U是它的补集。
主要通过以下两种方式来探究r的结构:

  • Dissection: 通过计算每个class与独立的unit之间的一致性来验证在r中是否有c的显示表示。
  • Intervention:通过激活/抑制unit来验证units的因果集和units与Object class之间的因果关系。

CHARACTERIZING UNITS BY DISSECTION

首先关注表示中的各个独立单元,ru,Pr_{u,\mathbb{P}}ru,P​是unit u的feature map中一个通道,大小为hxw。
之前的分类网络发现,当对unit进行上采样和阈值处理时,许多单元和分类任务相似。收到这个启发,作者选择了一个概念世界(universe of concepts)c∈C\mathbb{C}C,我们为每个类都有一个语义分割Sc(x)。之后用下面的公式计算unit的thresholded map与class的segmentation map的IoU

之后将ru,Pr_{u,\mathbb{P}}ru,P​上采样到output img的大小得到ru,P↑r_{u,\mathbb{P}}^{\uparrow}ru,P↑​,并通过(ru,P↑r_{u,\mathbb{P}}^{\uparrow}ru,P↑​>tu,ct_{u,c}tu,c​)得到一个binary mask,如Figure 2a所示。Sc(x)是img中是否存在class c的binary mask。
之后就可以根据IoU的大小得到concept 与unit的关联度,并用和unit最相关的concept标记unit。
这里concept和unit有点绕,我个人的理解是将concept理解为一个类(e.g tree),就是将该unit标记为tree。

当我们发现某个类与一些units很匹配,那么之后就要问到底是哪个unit来触发该类的生成了。


MEASURING CAUSAL RELATIONSHIPS USING INTERVENTION

为了回答上面的问题,作者通过抑制/激活r的中部分unit来验证是否生成c。
通过设置rU,Pr_{U,P}rU,P​ = 0来抑制这些units,设置rU,Pr_{U,P}rU,P​=k来激活。k是一个常量,且每个class不同。

如果xix_ixi​包含Object而xax_axa​中不包含,则该Object是由这些units生成的。

作者定义生成class c时units的作用average causal effect(ACE)

因为obj的生成依赖的是多个units的集合,所以我们需要找到使ACE最大的units set。


Finding sets of units with high ACE

因为U有太多的子集,使用贪心算法是不现实的。于是定义了一个α\alphaα∈[0,1]d[0,1]^d[0,1]d其中每个维度αu\alpha_uαu​表示对unit u的干预程度。

rU,pr_{\mathbb{U},p}rU,p​是位置P的所有channel的featuremap
⨀\bigodot⨀将α\alphaα应用到rU,pr_{\mathbb{U},p}rU,p​
并用L2loss来约束α\alphaα


Result


更多细节请参考论文地址
代码已经开源项目地址

GAN Dissection: Visualizing and Understanding Generative Adversarial Networks相关推荐

  1. (转)ICLR 2019 《GAN DISSECTION: VISUALIZING AND UNDERSTANDING GENERATIVE ADVERSARIAL NETWORKS》

    ICLR 2019 <GAN DISSECTION: VISUALIZING AND UNDERSTANDING GENERATIVE ADVERSARIAL NETWORKS> ICLR ...

  2. 论文笔记:GAN Dissection: Visualizing and Understanding Generative Adversarial Networks

    翻译过来就是"解剖GAN".本文主要对GAN生成图像过程进行了可视化,提供了理论支撑和可解释性. motivation 作者称,在论文<Network dissection: ...

  3. 自动驾驶轨迹预测论文阅读(三)Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    [略读]GUPTA A, JOHNSON J, FEI-FEI L, et al., 2018. Social GAN: Socially Acceptable Trajectories with G ...

  4. Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译

    Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks 中文翻译 如有异议,请多指教,非专业 ...

  5. 【速读】Social GAN : Socially Acceptable Trajectories with Generative Adversarial Networks

    Social GAN : Socially Acceptable Trajectories with Generative Adversarial Networks Paper:https://ope ...

  6. Understanding Generative Adversarial Networks (GAN)

    http://www.gatsby.ucl.ac.uk/~balaji/Understanding-GANs.pdf

  7. GAN系列:代码阅读——Generative Adversarial Networks 李宏毅老师GAN课程P1+P4

    看了一上午简直要头疼死.GAN之前没接触过,学习的时候产生了很多乱七八糟的联想.从上篇文章开始,很多内容都是自己的理解,估计有很多错误,以后学习中发现了可能会回来修改的. 找的是机器之心i的代码:ht ...

  8. 论文阅读:Social GAN: Socially Acceptable Trajectories with Generative Adversarial Networks

    转载自 凌空的桨https://blog.csdn.net/baidu_36669549/article/details/85986628 翻译稿---链接 参考---Social GAN:利用GAN ...

  9. 深度学习之生成式对抗网络 GAN(Generative Adversarial Networks)

    一.GAN介绍 生成式对抗网络GAN(Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一.它源于2014年发表的论文:& ...

最新文章

  1. python如何启动前端_python- 前端进阶
  2. 双击SDK Manager.exe和AVD Manager.exe时,弹出提示:failed to execute tools\android.bat解决办法
  3. OpenKruise v0.8.0 版本发布:K8s 社区首个规模化镜像预热能力
  4. NC反弹的小demo
  5. outlook错配置账户到exchange后的删除办法
  6. ehchache验证缓存过期的api_Ehcache缓存配置
  7. Java微服务篇3——Lucene
  8. 【编程语言】Ruby完全自学手册
  9. 解决“远程会话已断开连接,因为访问被拒绝导致许可证存储的创建失败,请使用提升的权限运行远程桌面客户端”问题
  10. 火狐 和 谷歌Google Chrome 内核浏览器 跨域问题
  11. 游戏中的网络同步机制——Lockstep
  12. URL Protocol- -(coolice)
  13. RK3568平台开发系列讲解(蓝牙篇)蓝牙通讯协议PhoneBookAccessProfile(PBAP)同步通讯录
  14. 中国一百大姓,您排第几?
  15. GitHub Desktop 百度云分享
  16. 流量变现的10种方式
  17. 数据库基本概念、DBMS、DBS
  18. SSM源码分析之23种设计模式(策略模式和模板模式)
  19. 【转】高清混合矩阵应用于佛山市政府大礼堂会议系统解决方案
  20. ods转html android,SAS--output delivery system--ods html

热门文章

  1. 今天给大家分享的是关于地理空间的数据分析
  2. 电动机故障诊断——数据预处理
  3. [os]pkg 解包和打包
  4. 都铎王朝第一至四季/全集The Tudors迅雷下载
  5. 详解关于ROBOCON比赛中有刷电机设计
  6. lammps下载 Ubuntu 安装
  7. office公式乱码
  8. t4b代码生成_Ef+T4模板实现代码快速生成器
  9. 85.CSS水波背景动画特效
  10. 易语言网页另存为html,易语言Html对象取网页body文本源码