Preface

A Paper A Day Keep the Doctor Away. 今天的文章是:

Relevance Factor VAE: Learning and Identifying Disentangled Factors. [paper]

本文提出的RF-VAE是BF-VAE的前作,也是同一个组的工作。RF-VAE主要基于FactorVAE,通过对隐分量中的relevant变量和nuisance变量分别取不同的约束强度形式,希望二者学习到不同的分布,并引入了一个relevance indicator变量的学习同时达到辨识隐编码中有用和无用的分量的效果。

Main Contents


Two Variables

作者认为:在Disentangled表示学习中,总是倾向于选择一个足够的大的隐空间维度,而其中只有部分的维度可以学习到对应真实变化因子的特征,这部分维度的分量称为 relevant 分量,而剩余的无用的称为 nuisance 分量。作者认为在优化上之前的工作没有区别二者,而且不能很容易地分辨两种分量。这是本文的motivation。

具体来说latent 分量应该和数据x{x}相关,它的合计推断后验应该是highly non-Gaussian。而nuisance 分量应该和x{x}独立,合计推演后验应该最终是标准高斯(所以最终导致KL vanshing)。将两种分量组成的集合分别记为R{\mathbf{R}}N{\mathbf{N}},且有RN={\mathbf{R} \cap \mathbf{N} = \emptyset}

RF-VAE (Known R)

从FactorVAE的loss考虑:

LFactorVAE=Rec(θ,v)+Eqd(x)[j=1dKL(q(zjx)p(zj))]Dimensional prior match+γKL(q(z)j=1dq(zj))TC{ \mathcal{L}_{\text{FactorVAE} } = \text{Rec}(\theta, v) + \underbrace{\mathbb{E}_{q_d(x)} \left[ \sum_{j = 1}^{d} \text{KL} \left( q(z_j | \mathbf{x}) \| p(z_j) \right) \right]}_{\text{Dimensional prior match} } + \underbrace{\gamma \text{KL}\left( q(\mathbf{z}) \| \prod_{j=1}^{d} q(z_j) \right)}_{\text{TC} } }

其中θ,v{\theta,v}分别是 Decoder 和Encoder的参数。

R{\mathbf{R}}已知的情况下,作者做出以下两点修改:(1)Dimensional prior match项,对relevant分量和nuisance分量施加不同程度的限制。(2)TC项仅针对relevant参数。loss变为:

LRF-VAE-1=Rec(θ,v)+Eqd(x)[j=1dλjKL(q(zjx)p(zj))]Dimensional prior match+γKL(q(zR)jRq(zj))TCwhereλj={λminifjRλmaxifjN(λmin<λmax){ \begin{aligned} \mathcal{L}_{\text{RF-VAE-1} } &= \text{Rec}(\theta, v) + \underbrace{\mathbb{E}_{q_d(x)} \left[ \sum_{j = 1}^{d} \lambda_j \text{KL} \left( q(z_j | \mathbf{x}) \| p(z_j) \right) \right]}_{\text{Dimensional prior match} } + \underbrace{\gamma \text{KL}\left( q(\mathbf{z}_{\mathbf{R}}) \| \prod_{j \in \mathbf{R}} q(z_j) \right)}_{\text{TC} } \\ \text{where} \quad \lambda_j &= \left\{ \begin{aligned} \lambda_{min} \quad \text{if}& \quad j \in \mathbf{R} \\ \lambda_{max} \quad \text{if}& \quad j \in \mathbf{N} \\ \end{aligned} \right. \qquad (\lambda_{min} < \lambda_{max}) \end{aligned} }

TC项的近似计算同样采取FactorVAE的Density-Ratio Tricks,使用一个Discriminator。

KL(q(zR)jRq(zj))Eq(zR)[logD(zR)1D(zR)]{ \text{KL}\left(q\left(\mathbf{z}_{\mathbf{R}}\right) \| \prod_{j \in \mathbf{R}} q\left(z_{j}\right)\right) \approx \mathbb{E}_{q\left(\mathbf{z}_{\mathbf{R}}\right)}\left[\log \frac{D\left(\mathbf{z}_{\mathbf{R}}\right)}{1-D\left(\mathbf{z}_{\mathbf{R}}\right)}\right] }

Discriminator的更新和GAN中Discriminator更新的方法一样:

maxD(Ezq(z)[logD(zR)]+EzΠjq(zj)[log(1D(zR))]){ \max _{D}\left(\mathbb{E}_{\mathbf{z} \sim q(\mathbf{z})}\left[\log D\left(\mathbf{z}_{\mathbf{R}}\right)\right]+\mathbb{E}_{\mathbf{z} \sim \Pi_{j} q\left(z_{j}\right)}\left[\log \left(1-D\left(\mathbf{z}_{\mathbf{R}}\right)\right)\right]\right) }

RF-VAE: Learning R

实际中R{\mathbf{R}}是未知的,而且也不好假定,作者引入了一个relevance indicator变量r{\mathbf{r}}r{\mathbf{r}}z{\mathbf{z}}的维度一样,而且:

rj={1ifjR0ifjN{ r_j = \left\{ \begin{aligned} 1 \quad& \text{if} \quad j \in \mathbf{R} \\ 0 \quad& \text{if} \quad j \in \mathbf{N} \end{aligned} \right. }

如果我们能学习到r{\mathbf{r}},那么我们可以得到R={jrj=1}{\mathbf{R} = \left\{ j | r_j = 1 \right\}},即可辨识relevant分量。

引入r{\mathbf{r}}之后,loss更改为:

LRF-VAE-1=Rec(θ,v)+Eqd(x)[j=1dλ(rj)KL(q(zjx)p(zj))]+γEq(z)[logD(rz)1D(rz)]+ηSr1{ \begin{aligned} \mathcal{L}_{\text{RF-VAE-1} } = \text{Rec}(\theta, v) &+ \mathbb{E}_{q_d(x)} \left[ \sum_{j = 1}^{d} \lambda(r_j) \text{KL} \left( q(z_j | \mathbf{x}) \| p(z_j) \right) \right] \\ &+ \gamma \mathbf{E}_{q(\mathbf{z})} \left[ \log \frac{D(\mathbf{r} \circ \mathbf{z})}{1 - D(\mathbf{r} \circ \mathbf{z})} \right] + \eta_{S} \| \mathbf{r} \|_{1} \end{aligned} }

其中r{\mathbf{r}}也是可学习的参数,λ(rj){\lambda(r_j)}为递减函数,λ(0)=λmax>λ(1)=λmin{\lambda(0) = \lambda_{max} > \lambda(1) = \lambda_{min}},而对r{\mathbf{r}}的L1正则化是希望它稀疏,即大部分的分量为 nuisance 分量。

但是r{\mathbf{r}}仅能取{0,1}{\{0,1\}}不便于优化,作者将它放松为连续变量r=[0,1]d{\mathbf{r} = [0,1]^{d}}。同时为了使r{\mathbf{r}}尽量取得0或者1,作者添加r{\mathbf{r}}的信息熵进行优化:H(r)=j=1d(rjlogrj+(1rj)log(1rj)){H(\mathbf{r}) = - \sum_{j=1}^{d} (r_j \log r_j + (1 - r_j) \log (1 - r_j))},整体的loss最终变为:

LRF-VAE-1=Rec(θ,v)+Eqd(x)[j=1dλ(rj)KL(q(zjx)p(zj))]+γEq(z)[logD(rz)1D(rz)]+ηSr1+ηHH(r){ \begin{aligned} \mathcal{L}_{\text{RF-VAE-1} } = \text{Rec}(\theta, v) &+ \mathbb{E}_{q_d(x)} \left[ \sum_{j = 1}^{d} \lambda(r_j) \text{KL} \left( q(z_j | \mathbf{x}) \| p(z_j) \right) \right] \\ &+ \gamma \mathbf{E}_{q(\mathbf{z})} \left[ \log \frac{D(\mathbf{r} \circ \mathbf{z})}{1 - D(\mathbf{r} \circ \mathbf{z})} \right] + \eta_{S} \| \mathbf{r} \|_{1} + \eta_{H} H(\mathbf{r}) \end{aligned} }

同时λ(rj){\lambda(r_j)}也变成[0,1]{[0,1]}上的连续函数,作者直接取为线性函数。

Discriminator更新使用的loss和之前的几乎一样,所以不再赘述。

实验

作者在3DFaces,dSprites,OvalSprites,Teapots四个数据集上,和VanillaVAE,β{\beta}-VAE,FactorVAE做了量化的对比实验,选取了三个Metric,分别是(1)FactorVAE的Metric;(2)修改的FactorVAE的Metric:仅有一个factor改变,寻找变化最大的factor,用于分类;(3)[1]中的Metric。

实验中的RF-VAE又分为两个模型,一个是给定R{\mathbf{R}}大小的RF-VAE(称为RF-VAE-0),另一个是学习r{\mathbf{r}}的RF-VAE。

实验结果

比较值得注意的实验结果有:

(1) 在dSprites上,尽管RF-VAE-0表现最好,但是它学习到的factor中,shape因子还是和其他entangled了,而RF-VAE仅学习到了三个relevant factors。作者将原因归咎于模型对离散变量还不能很好地建模。 所以作者又在OvalSprites上实验了,为了排除离散变量。。。。

(2) Teapots上,RF-VAE的各Metric表现都更差,作者认为原因是模型结构不足以表示整个数据集的所有变化。(不过这个解释我也不是很理解,作者提到这个现象和[1]中相同,并认为是一个future work)取更多的relevant factors的RF-VAE表现更好了点。

总结

RF-VAE在区分relevant分量和nuisance分量上有可取之处,并可以显式反映relevant分量数量。但是可以看到relevant分量的q(zj){q(z_j)}的建模上其实和设想的highly non-Gaussian还是有差距。因此该组就提出了BF-VAE,通过改变先验形式,并使得先验可学习的方式,扩展了RF-VAE。