

【VAE论文解读系列】FactorVAE: Disentangling by Factorising(ICML 2018)
source link: https://weisenhui.top/posts/59663.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

FactorVAE的作者深度分析了原始VAE中的KL散度项,得到如下形式:
$$
\mathbb{E}{p{\text {data }}x}[K Lq(z∣x | pz)]=Ix;z+K Lq(z | pz)
$$
可以发现,如果像Beta VAE一样用参数β来乘法这个KL散度,那么他会同时惩罚散度项KL(q(z)|p(z))和互信息I(x;z),这既有positive的影响,也有negative的影响
- 好的一方面:惩罚KL(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项 TC(z)=KL(q(z)|ˉq(z))(其中ˉq(z):=∏dj=1q(zj))来促进表征z的每个维度之间尽可能独立,提高的解耦能力。
FactorVAE的优化目标如下:
1NN∑i=1[Eq(z∣x(i))[logp(x(i)∣z)]−KL(q(z∣x(i))|p(z))] −γKL(q(z)|ˉq(z))
其中N表示训练集x(1),⋯,x(N)的样本总数,由于TC(z)=KL[q(z)|ˉq(z)]与数据集x无关,所以不涉及N
做实验时使用了 density ratio trick 技巧
TC(z)=KL[q(z)|ˉq(z)]=Eq(z)[logq(z)ˉq(z)]≈Eq(z)[logD(z)1−D(z)]
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK