【VAE论文解读系列】FactorVAE: Disentangling by Factorising(ICML 2018)


相关资料

动机

FactorVAE的作者深度分析了原始VAE中的KL散度项,得到如下形式:
$$
\mathbb{E}{p{\text {data }}(x)}[K L(q(z \mid x) | p(z))]=I(x ; z)+K L(q(z) | p(z))
$$

可以发现,如果像Beta VAE一样用参数$\beta$来乘法这个KL散度,那么他会同时惩罚散度项$K L(q(z) | p(z))$互信息$I(x ; z)$,这既有positive的影响,也有negative的影响

  • 好的一方面:惩罚$K L(q(z) | p(z))$可以提高表征$z$的解耦(disentangled)能力
  • 坏的一方面:惩罚互信息$I(x ; z)$会导致我们的表征z包含输入x的信息减少,降低了重构(reconstruction)能力。

证明过程:

注:互信息$I(X;Y)$表示在知道随机变量Y的值后,X的不确定性的减少量。$I(x;z)$的值越小,说明z中包含x的信息越少,之后想通过z重构出x的难度越大。

FactorVAE

FactorVAE的模型结构如下图所示:

β-VAE直接对两项一起惩罚,会导致disentanglement效果好,而重构效果就会下降,所以FactorVAE希望将其分开。

FactorVAE的思路是在原始VAE的lower bound后面加上一个TC项 $T C(z)=K L(q(z) | \bar{q}(z))$(其中$\bar{q}(z):=\prod_{j=1}^{d} q\left(z_{j}\right)$)来促进表征$z$的每个维度之间尽可能独立,提高的解耦能力。

FactorVAE的优化目标如下:
$$
\begin{aligned}
\frac{1}{N} \sum_{i=1}^{N}\left[\mathbb{E}_{q\left(z \mid x^{(i)}\right)}\left[\log p\left(x^{(i)} \mid z\right)\right]\right.&\left.-K L\left(q\left(z \mid x^{(i)}\right) | p(z)\right)\right] \
&-\gamma K L(q(z) | \bar{q}(z))
\end{aligned}
$$

其中N表示训练集${x^{(1)},\cdots,x^{(N)}}$的样本总数,由于$T C(z)=K L[q(z) | \bar{q}(z)]$与数据集$x$无关,所以不涉及N

做实验时使用了 density ratio trick 技巧
$$ T C(z)=K L[q(z) | \bar{q}(z)]=E_{q(z)}\left[\log \frac{q(z)}{\bar{q}(z)}\right] \approx E_{q(z)}\left[\log \frac{D(z)}{1-D(z)}\right]
$$


Author: SHWEI
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source SHWEI !
评论
 Current
【VAE论文解读系列】FactorVAE: Disentangling by Factorising(ICML 2018) 【VAE论文解读系列】FactorVAE: Disentangling by Factorising(ICML 2018)
相关资料 Paper:https://arxiv.org/pdf/1802.05983.pdf A Paper in 5 mins — FactorVAE 知乎:论文阅读FactorVAE 动机FactorVAE的作者深度分析了原始V
2022-03-04
Next 
Ubuntu 20.04通过docker安装微信和QQ Ubuntu 20.04通过docker安装微信和QQ
前言(๑•̀ㅂ•́)و✧ Ubuntu上的微信和QQ一直很难装,我之前尝试了很多方法(有些是基于网页版登录微信的,有些是用wine的),但我试了都不太行,坑点很多,搞不好就把系统搞崩了。今天发现用docker安装微信和QQ非常简单,所以想分
2022-03-04
  TOC