本文对《Deep Convolutional Inverse Graphics Network》的主要内容进行翻译和记录。
1 引言
深度学习在从图像中自动学习层次化表征任务上取得了显著成效。但如何产生数据的最优表征方面的工作相对较少。
许多不同的关于表征学习的理论和应用研究中,均体现出对表征相同的要求:不变性(invariance)、有意义性(meaningfulness)、抽象性(abstraction)和解耦性(disentanglement)。Bengio指出解耦表征(disentangled representation)具有编码变化对真实世界中的变化是稀疏的特点,即数据的不同解释性分布往往相互独立地变化,连续的真实世界序列的变化往往一次只对应少量隐藏特征的变化。
逆图形视觉(“vision as inverse graphics”)模型对提供这些特征的图像进行表征。计算机图形学(computer graphics)包含从场景的紧凑描述(图形编码, graphics code)映射到图像的函数。该类图形编码通常是解耦的,从而可以通过对变换(如对象位置、姿势、照明、纹理和形状等)的细粒度控制来渲染场景。这些编码被设计为容易且可解释地表征真实数据序列,以便在软件中紧凑地表征常见变换。这一标准与Bengio的类似。图形编码可以方便地与理想表征的属性对齐。
最近的逆图形研究遵循了一个通用策略:定义具有隐藏参数的概率或确定性模型,通过推理或优化算法找到给定观测下最合适的潜在参数集。但这些方法无法自动生成可解释的图形编码,也难以再现三维图像。
本文提供了一种学习复杂变换(如平面外旋转、光照变化等)的可解释图形编码的方法。给定一组图像,本文使用一个混合编码器-解码器模型学习解耦不同变换的表征。为了实现这一点,本文采用一个具有多层卷积核反卷积操作的深度有向图模型,并基于随机梯度变分贝叶斯算法(Stochastic Gradient Variational Bayes, SGVB)进行训练。
本文提供一种训练策略以鼓励图形编码层的每组神经元表征特定的变换。为了学习解耦表征,我们将数据划分成包含激活变换和未激活变换的小批次进行训练,而非想监督学习一样提供目标值。目标函数确保图像重构质量。比如,点头的面部图像具有仰角激活,但其形状、纹理及其他仿射变换未激活。通过这样的数据训练迫使图形编码层中选定的神经元表征特定的激活变换。给定一张人脸图像,本文模型可以重新生成与输入不停姿势和光照的图像。
2 相关工作
具体参考文献这里不做赘述,请参考原文。
3 模型
如图1,深度卷积逆图像网络的基本架构包含两部分:一个捕捉给定数据x的图形编码Z的分布的编码器和一个学习给定Z产生近似的条件分布的解码器。Z是包含分解的隐藏变量
(如姿势、光照、形状等)的解耦表征。

记编码器输出为,用于参数化变分近似分布
,Q是多变量正态分布。这样做 有两个好处:(1)样本相对Q的参数的梯度可以通过重参数技巧容易地获得;(2)三维扫描仪数据上训练的不同金泰新装模型具有相同的多变量正态隐藏分布。给定连接
和
的参数
,分布参数
和隐藏编码Z可以表示为
3.1 针对特定变换的训练
本工作的主要目标是学习数据的具有解耦和具有语义解释性的隐藏变量的表征。
一个对于场景信息的表征的自然选择是图像引擎中已经使用的表征设计。如果说人脸图像能拆分成姿势、光照、形状等变量来解构,那么自然可以选择这些变换来构造表征。图2给出了尝试学习的表征。

为实现这一目标,设计训练流程如下:将数据组织成只对应单个场景变量变化(方位角、仰角、光源方位)的小批量数据(mini-batch)。这些场景变化是现实世界中存在的,我们称其为外部变量(extrinsic variables), 分别由编码中的表征。
此外还生成外部变量固定,其他面部属性变化的小批量数据。这些批次数据包含相同观察条件和姿势下的不同人脸图像。这些内在属性,如身份、形状、表情等,用剩余的隐藏变量表征。
本方法基于SGVB训练,但对编码器输出及梯度训练进行了一些关键的调整,具体训练流程如下:
1. 从期望变化集合{方位角、仰角、光源方位、内在属性}中随机选择一个潜在变量记为
2. 随机选择一个对应变量变化的小批次数据;
3.将小批次中的每个样例输入网络并学习其隐藏表征;
4.计算本批次中所有表征向量的均值;
5.在将编码器输出输入解码器前,将编码向量中所有非选定变化的值()用所有向量的均值替代,即这些输出被钳制(clamped);
6.根据SGVB计算重构误差并在解码器中反向传播;
7.关于的梯度替换为其与平均值的差值(解释详见3.2),关于
的梯度不变;
8.用修正过的梯度在编码器中反向传播
由于内在属性的表征远高于外在表征,因此需要更多的训练。因此在选择批次时变化时,方位角:仰角:光照角度:内在属性=1:1:1:10。该比例是广泛测试后得出的在本文两个数据集上均有效的比例。
该训练方式通过钳制一个神经元外的所有神经元的输出,迫使解码器仅使用该神经元的值的改变来重构该批次的变化。
该训练方式使得网络的隐藏变量与对应生成参数具有很强的等变性(equivariance),如图6。从而编码器能够轻松获取真实生成参数。
3.2 不变性目标(Invariance Targeting)
通过一次只包含一种变换的数据进行训练,以鼓励特定的神经元包含特定的信息,这是等变形。同时我们希望明确阻止这些神经元对其他信息的学习,希望其对其他变换具有不变性(invariance)。由于每批小批量训练数据中只包含一种变化,因此不变性目标可以看做编码器的除指定神经元外的神经元(及对应其他变换的神经元)应当给出相同输出。
为了使DC-IGN实现上述特性,对于所有对应非激活变换的神经元,用其与均值的差值的"误差梯度"来训练。 可以简单地将次梯度视为
4 实验
本文基于Paysan等人获取的12000各批次的三维人脸数据训练,每个批次包含20张人脸,身份、姿势和照明存在随机变化。训练时使用rmsprop学习算法,元学习率为0.0005,动量衰减0.1,权重衰减0.01。
此外为了研究提出算法在其他数据集上的适用性,也训练网络用于重构Aubry提取的三维椅子图像。该数据集中元素存在较大差异,包括椅子的款式、360度的视角等。
4.1 三维人脸数据集
解码器网路学习一个近似渲染引擎,如图3、4。给定一个静态测试图像,编码器生成描述描述场景变量的Z,可以独立控制这些变量用解码器生成新图像。图5定性说明了网络在平滑线性流形上表征姿势和光照的能力,说明本文算法能够解耦复杂变换。图5中给出了测试集随机子集的变换的推断和真实值。



4.1.1 和耦合表征(Entangled Representations)比较
比较解耦表征算法和耦合表征算法的重构性能。耦合表征算法采用与DC-IGN结构相同,基于常规SGVB训练,但没有采用本文训练方式的网络。如图3,给网络提供一个输入,尝试用解码器生成不同方位角的图像。在耦合表征算法中,为了确认哪些隐藏表征和方位角相关,将方位角变化的小批量数据输入编码器进行编码,并计算该批次编码的方差,方差最大的隐藏编码被认为和方位角关系最密切,记为。之后改变两个模型各自得到的
生成新的图像。图4表明采用解耦标称对新视角图像重建很关键。
4.2 椅子数据
数据集包含1375把不同椅子的CAD三维模型渲染的静态图像。这些椅具不同款式、纹理、角度等。训练集使用1200把椅子的图像,测试集使用剩余150把椅子的图像,即网络从未见过测试集椅子。图像调整为150*150像素的灰度图。
用表征椅子的平面旋转的方位角,其他变化表征为
。DC-IGN实现了
的重构均方误差。
图6给出提出网络对未见过的椅子在不同角度的渲染。一些椅子生成时能够有平滑的过渡,生成不同的中间姿势。但对有一些椅子似乎只捕捉到关键帧(keyframes)的表征,旨在几个角度上又清晰的输出。

5 讨论
本文表明通过静态图像训练具有可解释图形编码表征的深度卷积逆图形网络是可能的。通过在变分自编码器中利用深度卷积和反卷积结构,本文模型可以使用随机变分目标函数的反向传播进行端到端的训练。本文提出一种训练方式迫使网络学习解耦的可解释的表征。基于三维人脸数据,展示了学习到的表征的不变性和等变性。
为了将本文方法拓展到更复杂的场景,可能需要利用更深的结构以处理大量类别对象。设计基于时空的卷积结构来捕捉更复杂的动作变换也具有吸引力。此外,目前的SGVB公式仅适用于连续隐藏变量,可能有必要将公式拓展以处理离散分布或者拓展到循环设定。模型中的解码器也可以用特定域的解码器替代进行细粒度的基于模型的推理。