本博客是论文 Unsupervised Disentangling of Appearance and Geometryby Deformable Generator Network的翻译,因作者水平有限,可能存在部分不准确的地方,还请读者不吝赐教。
摘要
待补充
1 引言
待补充
2 相关工作
待补充
3 模型和学习算法
3.1 模型
图1: 模型的示意图。该模型包含两个生成器网络:一个外观生成器和一个几何生成器。这两个生成器通过变形函数组合在一起以生成最终图像。变形函数包括图像坐标的几何变换操作和微分插值操作。refine 操作是可选的,用于改善变形函数。
所提出的模型包含两个生成器网络:一个外观生成器和一个几何生成器,它们通过变形函数组合在一起以生成最终图像或视频帧,如图1所示。假设任意图像或视频帧 X∈RDx×Dy×3X\in \R^{D_x×D_y ×3}X∈RDx?×Dy?×3 生成了两个独立的潜在矢量,Za∈RdaZ^a\in \R^{d_a}Za∈Rda? 控制外观,Zg∈RdgZ^g\in \R^{d_g}Zg∈Rdg?控制几何信息。通过改变几何潜向量ZgZ^gZg,固定外观潜向量ZaZ^aZa,可以转换对象的几何信息,例如以一定角度旋转对象或者更改其形状。另一方面,通过改变ZaZ^aZa固定ZgZ^gZg,可以更改对象的身份或类别,同时保持其几何信息不变,例如相同的视角或相同的形状。模型可以被表示为:
X=F(Za,zG;θ)=Fw(Fa(Za;θa),Fg(Zg;θg))+?(1)X=F(Z^a,z^G;\theta)=F_w(F_a(Z^a;\theta_a),F_g(Z_g;\theta_g))+\epsilon \tag{1}X=F(Za,zG;θ)=Fw?(Fa?(Za;θa?),Fg?(Zg?;θg?))+?(1)
其中,Za~N(0,Ida)Z^a~N(0,I_{d_a})Za~N(0,Ida??),Zg~N(0,Idg)Z^g~N(0,I_{d_g})Zg~N(0,Idg??),?~N(0,σ2ID)(D=Dx×Dy×3)\epsilon~N(0,\sigma^2I_D)(D=D_x × D_y × 3)?~N(0,σ2ID?)(D=Dx?×Dy?×3) 是独立的。FwF_wFw?是变形函数,使用几何生成器 Fg(Zg;θg)F_g(Z^g;\theta_g)Fg?(Zg;θg?) 生成的位移对外观生成器Fa(Za;θa)F_a(Z^a;\theta_a)Fa?(Za;θa?) 生成的图像进行变形来生成最终的输出图像 X。
3.2 变形函数
翘曲函数通常包括用于图像坐标的几何变换操作和可微分插值(或重采样)操作。几何变换描述了源坐标中每个位置(u,v)的目标坐标(x,y)。几何运算仅修改图像中像素的位置,而不会更改颜色或照明。因此在提出的模型中,外观信息和几何信息自然地被两个生成器解开了。
几何变换?\phi?可以是空间仿射网络[16]中使用的刚性仿射映射,也可以是非刚性变形映射,在我们的工作中使用非刚性的情况。具体来说,就是使用形状生成器 Fg(Zg;θg)F_g(Z^g;\theta_g)Fg?(Zg;θg?) 为输出的变形之后的图像X中的每个网格(x,y) 的坐标位移(或者说密集光流场)。可变形映射中的逐点变换可以表示为:
(uv)=Φ(Zg,θg)(xy)=(x+dxy+dy)(2)\begin{pmatrix}u\\v\end{pmatrix}=\Phi(Z^g,\theta_g)\begin{pmatrix}x\\y\end{pmatrix}=\begin{pmatrix}x+dx\\y+dy\end{pmatrix}\tag{2}(uv?)=Φ(Zg,θg?)(xy?)=(x+dxy+dy?)(2)
这里(u,v) 是由外观生成器Fa(Za;θa)F_a(Z^a;\theta_a)Fa?(Za;θa?)生成的图像的坐标。
由于通过公式(2)计算的坐标不一定是整数,变形之后的输出图像X的每一个像素值可以通过一个可微分差值运算来得到。设Xa=Fa(Za;θa)X_a=F_a(Z^a;\theta_a)Xa?=Fa?(Za;θa?) 表示由外观生成器生成的图像,则变形函数可以表示为:
X(x,y)=FI(Xa(x+dx,y+dy))(3)X(x,y)=F_I(X_a(x+dx,y+dy))\tag{3}X(x,y)=FI?(Xa?(x+dx,y+dy))(3)
这里FIF_IFI?表示可微分的插值函数。使用一个可微的双线性插值来计:
X(x,y)=∑jDy∑iDxXa(i,j)M(1?∣u?i∣)M(1?∣v?j∣)(4)X(x,y)=\sum_j^{D_y}\sum_i^{D_x}X_a(i,j)M(1-\begin{vmatrix}u-i\end{vmatrix})M(1-\begin{vmatrix}v-j\end{vmatrix})\tag{4}X(x,y)=j∑Dy??i∑Dx??Xa?(i,j)M(1?∣∣?u?i?∣∣?)M(1?∣∣?v?j?∣∣?)(4)
这里的M(.)=max(0,.),双线性插值进行反向传播的详细信息可以在文献[16]中找到。
位移(dx,dy)用于可变形卷积网络[7]。坐标位移(dx,dy)的计算称为光流估计[14、3、32、9、15、29]。除了估算光流之外,我们的工作还涉及建模和生成光流。
位移(dx,dy)可能是由于场景中对象的运动或相对于场景中3D对象的视点的变化而引起的。将运动和3D模型合并到几何生成器中是很自然的,ZgZ_gZg?的更改或变化取决于运动和3D信息。
3.3 推断和学习
为了学习这种可变形的生成器模型,我们引入了两个潜在矢量的学习和推理算法,而无需设计和学习额外的推理网络。我们的方法受到生成器网络的最大似然学习算法[12]的启发。具体来说,可以通过最大化训练数据集 {Xi,i=1,…,N}\left\{X_i,i=1,\dots,N\right\}{
Xi?,i=1,…,N}上的对数似然来对模型进行训练:
L(θ)=1N∑i=1Nlog?p(Xi;θ)=1N∑i=1Nlog?∫p(Xi,Zia,Zig;θ)dZiadZig(5)L(\theta)=\frac{1}{N}\sum_{i=1}^N\log p(X_i;\theta)=\frac{1}{N}\sum_{i=1}^N\log\int p(X_i,Z_i^a,Z_i^g;\theta)dZ_i^adZ_i^g\tag{5}L(θ)=N1?i=1∑N?logp(Xi?;θ)=N1?i=1∑N?log∫p(Xi?,Zia?,Zig?;θ)dZia?dZig?(5)
我们可以通过下面与EM算法相关的著名结果来估计 L(θ)L(\theta)L(θ)的梯度:
??θlog?p(X;θ)=1p(X;θ)??θ∫p(X,Za,Zg)dZadZg=Ep(Za,Zg∣X;θ)[??θlog?p(X,Za,Zg;θ)](6)\frac{\partial}{\partial\theta}\log p(X;\theta)=\frac{1}{p(X;\theta)}\frac{\partial}{\partial \theta}\int p(X,Z^a,Z^g)dZ^adZ^g=E_{p(Z^a,Z^g | X;\theta)}\left [\frac{\partial}{\partial\theta}\log p(X,Z^a,Z^g;\theta)\right ]\tag{6}?θ??logp(X;θ)=p(X;θ)1??θ??∫p(X,Za,Zg)dZadZg=Ep(Za,Zg∣X;θ)?[?θ??logp(X,Za,Zg;θ)](6)
由于等式(6)中的期望值通常在分析上难以处理,因此我们采用Langevin 动态算法从后验分布p(Za,Zg∣X;θ)p(Z^a,Z^g | X;\theta)p(Za,Zg∣X;θ)提取样本并计算蒙特卡洛平均值以估计期望项。对于每个观测值X,可以通过Langevin dynamics 算法交替从p(Za,Zg∣X;θ)p(Z^a,Z^g | X;\theta)p(Za,Zg∣X;θ) 采样潜在向量 ZaZ^aZa和 ZgZ^gZg :固定ZgZ^gZg 从p(Za∣X;Zg,θ)∝p(X,Za;Zg,θ)p(Z^a | X; Z^g,\theta)∝p(X,Z^a; Z^g,\theta)p(Za∣X;Zg,θ)∝p(X,Za;Zg,θ)中采样ZaZ^aZa,然后固定ZaZ^aZa从(Zg∣X;Za,θ)∝p(X,Zg;Za,θ)(Z^g | X;Z^a,\theta)∝p(X,Z^g; Z^a,\theta)(Zg∣X;Za,θ)∝p(X,Zg;Za,θ)。每一个采样步骤,潜在向量按照如下方式更新。
Zt+1a=Zta+δ22??Zalog?p(X,Zta;Ztg,θ)+δεtaZt+1g=Ztg+δ22??Zglog?p(X,Ztg;Zta,θ)+δεtg(7)Z^a_{t+1}=Z^a_t+\frac{\delta^2}{2}\frac{\partial}{\partial Z^a}\log p(X,Z_t^a;Z_t^g,\theta)+\delta\varepsilon_t^a\\ \quad\\ Z_{t+1}^g=Z^g_t+\frac{\delta^2}{2}\frac{\partial}{\partial Z^g}\log p(X,Z_t^g;Z_t^a,\theta)+\delta\varepsilon_t^g\tag{7} Zt+1a?=Zta?+2δ2??Za??logp(X,Zta?;Ztg?,θ)+δεta?Zt+1g?=Ztg?+2δ2??Zg??logp(X,Ztg?;Zta?,θ)+δεtg?(7)
t是Langevin 采样的步数,εta\varepsilon_t^aεta? εtg\varepsilon_t^gεtg?是独立的标准高斯噪声,用于防止采样陷入局部模式,δ\deltaδ是步长。完整数据对数似然可以估计为:
log?p(X,Za;Zg,θ)=log[p(Za)p(X∣Za,Zg,θ)]=?12σ2∥X?F(Za,Zg;θ)∥2?12∥Za∥2+C1log?p(X,Zg;Za,θ)=log[p(Zg)p(X∣Za,Zg,θ)]=?12σ2∥X?F(Za,Zg;θ)∥2?12∥Zg∥2+C2(8)\log p(X,Z^a;Z^g,\theta)=log\left[ p(Z^a)p(X|Z^a,Z^g,\theta)\right]\\\quad\\=-\frac{1}{2\sigma^2}\begin{Vmatrix}X-F(Z^a,Z^g;\theta)\end{Vmatrix}^2-\frac{1}{2}\begin{Vmatrix}Z^a\end{Vmatrix}^2+C_1\\\quad\\\log p(X,Z^g;Z^a,\theta)=log\left[ p(Z^g)p(X|Z^a,Z^g,\theta)\right]\\\quad\\=-\frac{1}{2\sigma^2}\begin{Vmatrix}X-F(Z^a,Z^g;\theta)\end{Vmatrix}^2-\frac{1}{2}\begin{Vmatrix}Z^g\end{Vmatrix}^2+C_2\tag{8}logp(X,Za;Zg,θ)=log[p(Za)p(X∣Za,Zg,θ)]=?2σ21?∥∥?X?F(Za,Zg;θ)?∥∥?2?21?∥∥?Za?∥∥?2+C1?logp(X,Zg;Za,θ)=log[p(Zg)p(X∣Za,Zg,θ)]=?2σ21?∥∥?X?F(Za,Zg;θ)?∥∥?2?21?∥∥?Zg?∥∥?2+C2?(8)
其中C1C_1C1?和C2C_2C2?是归一化常数。可以表明,在足够多的采样步骤下,被采样的ZaZ^aZa和ZgZ^gZg遵循其联合后验分布。
通过MCMC从后验分布中获取公平的样本非常耗费计算资源。在本文中,我们运行持久采样链。也就是说,每次迭代的MCMC采样均从先前迭代中采样的ZaZ^aZa和ZgZ^gZg开始。持续更新的结果是链条足够长,可以从后验分布中进行采样,而且热初始化极大地减轻了MCMC采样的计算负担。文献[34]研究了基于持续MCMC的随机梯度下降的收敛性。
对于每个训练样本XiX_iXi?,我们根据等式(7)运行Langevin dynamic 算法,获得相应的后验样本ZiaZ^a_iZia?和ZigZ^g_iZig?。然后将样本用于等式(6)中的梯度计算。更精确地,关于参数θ\thetaθ的对数似然的梯度通过蒙特卡洛近似法估算:
??θL(θ)≈1N∑i=1N??θlog?p(Xi,Zia,Zig;θ)=1N∑i+1N1σ2(Xi?F(Zia,Zig;θ))??θF(Zia,Zig;θ)(9)\frac{\partial}{\partial\theta}L(\theta)\approx\frac{1}{N}\sum_{i=1}^N\frac{\partial}{\partial\theta}\log p(X_i,Z_i^a,Z^g_i;\theta)\\\quad\\=\frac{1}{N}\sum_{i+1}^N\frac{1}{\sigma^2}(X_i-F(Z_i^a,Z_i^g;\theta))\frac{\partial}{\partial\theta}F(Z_i^a,Z_i^g;\theta)\tag{9}?θ??L(θ)≈N1?i=1∑N??θ??logp(Xi?,Zia?,Zig?;θ)=N1?i+1∑N?σ21?(Xi??F(Zia?,Zig?;θ))?θ??F(Zia?,Zig?;θ)(9)
整个算法通过两个步骤进行迭代:
(1)通过Langevin dynamic 算法推断潜在向量的推断步骤(2)通过随机梯度下降学习网络参数θ\thetaθ的学习步骤。这两个步骤中的梯度计算均由反向传播提供支持。算法1详细介绍了学习和推理算法:
算法一 |
---|
Require:
- 训练样本 {Xi∈RDx×Dy×3,i=1,2,……,N}\{X_i\in\R^{D_x ×D_y ×3},i=1,2,\dots\dots,N\}{ Xi?∈RDx?×Dy?×3,i=1,2,……,N}
- Langevin dynamic 算法的步数l
- 学习迭代次数T
Ensure
-
需要学习的参数为θ\thetaθ
-
推断的潜在向量 {Zia,Zig,i=1,……,N}\{Z_i^a,Z_i^g,i=1,\dots\dots,N\}{ Zia?,Zig?,i=1,……,N}
(1)让 t=0,初始化参数 θ\thetaθ
(2)初始化{Zia,Zig,i=1,……,N}\{Z_i^a,Z_i^g,i=1,\dots\dots,N\}{ Zia?,Zig?,i=1,……,N}
repeat
(3)推断反向传播:对于每一个i,运行l步的 Langevin dynamic 算法,交替的从p(Zia∣Xi;Zig,θ)p(Z_i^a|X_i;Z^g_i,\theta)p(Zia?∣Xi?;Zig?,θ)中采样ZiaZ_i^aZia?,同时固定ZigZ_i^gZig?;从p(Zig∣Xi;Zia,θ)p(Z_i^g|X_i;Z_i^a,\theta)p(Zig?∣Xi?;Zia?,θ)中采样,同时固定ZiaZ_i^aZia?。从当前的ZiaZ_i^aZia?和ZigZ_i^gZig?开始,每一步都遵循等式(7)。
(4)学习的反向传播(learning back-propagation):更新参数:θt+1←θt+ηtL′(θt)\theta_{t+1}\leftarrow\theta_t+\eta_tL^{\prime}(\theta_t)θt+1?←θt?+ηt?L′(θt?)。ηt\eta_tηt?是学习率,这里的L′(θt)L^{\prime}(\theta_t)L′(θt?)通过公式(9)计算。
(5)让 t←t+1t\leftarrow t+1t←t+1
until t=T
3.4 可变形的变分自编码器
所提出的可变形发生器方案对于不同模型是通用的。实际上,我们的方法也可以被VAE [17]学习,通过利用额外的推断网络通过重新参数化来推断(Za,Zg)(Z^a,Z^g)(Za,Zg),以获得可变形的变分自编码器。具体来说,我们学习另一个q(Za,Zg∣X;?)q(Z^a,Z^g | X;\phi)q(Za,Zg∣X;?)来近似难处理的后验条件p(Za,Zg∣X;θ)p(Z^a,Z^g | X;\theta)p(Za,Zg∣X;θ),在近似分布中,假设外观和几何的潜向量是独立的高斯向量,即:q(Za,Zg∣X;?)=q(Za∣X;?)q(Zg∣X;?)q(Z^a,Z^g|X;\phi)=q(Z^a|X;\phi)q(Z^g|X;\phi)q(Za,Zg∣X;?)=q(Za∣X;?)q(Zg∣X;?),其中均值和方差由带有参数?\phi?的推断网络建模。这种可变形的VAE模型是对提出的可变形生成器框架的自然扩展。我们在4.1.1节中显示了一些初步结果。注意,通过为形状和外观设计一个单独的鉴别器网络,提出的方案也可以用于对抗性学习方法[10]。我们将其留作下一步工作。在此工作中,为了简单起见,我们将重点放在当前的学习和推理算法上,以便我们不求助于额外的网络。
4 实验
待补充
5 结论
待补充