CONTROLLING GENERATIVE MODELS WITH CONTINUOUS FACTORS OF VARIATIONS

375 阅读5分钟

背景概要

latent space 隐空间

可以理解成对数据压缩后的表示,这种压缩只保留较为关键的特征点而忽略一些不重要的信息。 在卷积网络中,降采样后的矩阵就可以视为latent space;在编码器-解码器网络中,编码器编码出的矩阵就可以视为latent space;简单来讲,隐空间就是对关键特征的浓缩概括。

1.jpg 在实际应用中,我们通常会对编码出的隐空间进行各种插值,以生成输出,隐空间蕴含的关键信息,对于模型生成的对象有着重要影响。

本文思想

本文的核心,在于通过找到隐空间中能够对输出目标的属性有具体影响的direction,来推进隐空间的可解释性,这也是迈向理解生成模型学习到的具体表征的重要一步。
也就是为了解释,latent space到底如何蕴含影响目标属性值的特征?latent space和属性值存在着什么样的映射关系?如何直观地表示这一关系和过程?

介绍

问题诠释

  • 在生成模型(如生成图像)的应用场景中,我们缺乏更具体的、针对于某属性值的控制生成。
  • 对于影响生成对象属性的因子t,人们往往局限于离散因子(比如类别),缺乏对连续因子(比如size)的精确控制。
  • 若能对连续型属性的影响因子t进行研究,会更有助于我们具体地解释生成模型中latent space的意义。

Contributions

  • 通过对影响图像属性的连续性因子t的研究,提出了一种在生成模型的latent space中寻找可解释方向的方法。
  • 表明了可以通过在线性方向sample latent space的方式来控制图像属性。
  • 提出了一种新的用于逆生成模型的重建loss(输出图像和真实图像的差异)计算方法。
  • 通过图像流形的几何形状解释了为什么逆生成是困难的。
  • 研究了解纠缠对生成模型控制能力的影响。

相关工作

文章旨在生成模型的潜在空间中寻找可解释的方向来控制生成,与两类方法区分:

  • GAN-like model
  • auto-encoder

Method

如何找到图像属性和latent space之间的映射关系呢?
给定生成模型 G:zZIG:z∈Z → IZZ 是latent space,II 是图片。
给定变化函数Tt:IITt : I → I,若TT用于翻转,则参数 tt 是角度值。
给定z0z0,生成图片 I=G(z0)I = G(z0),目标是找到zTzT,使 G(zT)Tt(I)G(zT)≈Tt(I),此时对比 z0z0zTzT 的差值和当前变化函数 TT 的参数值tt即可评估latent space针对该属性的direction。

Latent space轨迹的构造

z^=arg minzZ,zdL(I,G(z))\hat z = {\underset {z\in Z, ||z|| ≤ \sqrt{d}}{\operatorname {arg\,min}}}\,L(I, G(z))

未使用像素级的均方误差和像素交叉熵作为损失函数,因为latent space维度较低,不能表征高维的纹理流形特征,而像素级的错误难以察觉这一点。降低了高频权重的误差惩罚。
L(I1,I2)=F{I1I2}F{σ}2=(I1I2)σ2L(I_1, I_2) = ||F\{I_1 − I_2\}F\{σ\}||^2 = ||(I_1 − I_2) ∗ σ||^2

1.png

Encoding model of the factor of variation in the lantent space

在生成轨迹的数据后,我们需要定义一个模型,来描述变化因子t是如何在latent space中编码的。文章提出了一个核心假设,即参数因子t可以由latent code沿u轴坐标的投影预测出来,也就是可以通过与向量u做点积提取出来。

t=f(z)=g(z,u)t = f(z) = g(\langle z,u\rangle)
t=f(θ,u)(z)=gθ(z,u)t = f_{(θ,u)}(z) = g_θ(\langle z,u\rangle)

但是,实际的t值我们是没有的,但是我们可以使用算法1构建的数据集来量化 δtδt

δt=f(θ,u)(zδt)f(θ,u)(z0)δt = f_{(θ,u)}(z_{δt}) - f_{(θ,u)}(z_0)

模型通过训练学习到了这样的映射,也就自然知道了t是如何在latent space中被编码的了。

实验

定量评估

  • 通过我们的方法,获取描述对应变量因子的direction uu
  • 从分布中sample出latent code zz
  • 选定 tt 值,用 zz,u+tuz - \langle z, u\rangle + tu 生成图片(使latent code表征出来的图像对应的因子值为t)
  • 测量生成图片的真实变量因子值 tt'
  • 计算 tt'tt 之间的标准差。

数据集

  • dSprites:二进制图像。黑色背景中间有白色形状,可以体现出目标在位置、尺度和方向上的变化。
  • ILSVRC:包含1000个不同类别的120万幅图像。

Results on BIGGAN

对10类对象进行了定量分析,选取的变化因子用于三种转换:水平移动、垂直移动、放缩。
分析发现,我们可以通过方法中发现的latent space中的direction来控制物体的位置和大小,且与某些变化因子对应的方向在不同类别之间是共享的。

1.png 蓝色表示测量到的变换参数的分布,红色表示该分布相对于t的标准差。越接近说明我们找到的direction越正确。
而BigGAN将latent code分成了6个部分分别注入,由图可以看到,level 1的平方范数最大,其对变化的空间因子影响最多。

1.png

Conclusions

  • 生成模型越来越强大,但对生成过程的控制很少,且其潜在表征缺乏可解释性。
  • 在此背景下,论文提出了一种方法来在这些模型的latent space中提取有意义的方向,并使用它们来精确地控制生成的图像的一些属性。
  • 论文用直观的变化因素(平移和尺度)来验证提出的表征方式和映射方法是否正确。
  • 理解了属性特征是如何在latent space中被表征的、表征是如何映射的,是迈向理解生成模型学习表征的重要一步。

*讲论文后的感悟

读论文的重点,是发现文章要定义的问题,将核心问题概括出来!讲论文的时候,要注意跨度,不要被论文带着走,对于概念性的东西要循序渐进,对于定义的问题和其具体的解决方法,要搭建好递进的桥梁,给听众直观的感受,能够时刻听起来有“理所当然”的感觉。