Beta-TCVAE
FactorVAE와 유사하게 total correlation (TC) term을 이용하여 feature 간의 independence를 유도한다. 다른 점은 FactorVAE는 TC를 VAE loss에 추가하였기 때문에 lower bound를 loosely 정하는 반면, Beta-TCVAE는 KL term을 decompose하여 TC term을 계산한다. 즉, lower bound가 바뀌지 않는다.
구현한 코드를 보니 위 loss 식을 그대로 구현해놓았다. 예를 들어,
- KL term (KL(P||Q))들은 모두 E[log(P) - log(Q)]의 꼴로 바꾸어서 계산한다.
- q(z|n)은 n에 대한 Gaussian parameters가 주어졌을 때 z의 likelihood를 구한다.
이때 추정하기 어려운 것이 q(z)인데 E[q(z|n)]를 모든 n에 대해서 계산할 수 없기 때문이다. 간단하게는 batch 단위만큼 monte-carlo approximation을 이용하여 계산하고 전체 batch에 대한 running_mean을 구하면 된다. 논문에서는 sampling한 batch를 재활용하는 minibatch-weighted sampling을 제안하였다. 이 방법은 batch_size가 m인 batch에서 m개의 sample에 대한 m개 sample의 likelihood (즉, m^2개)로 q(z)를 추정하는 것이다.
References
[1] R. T. Q. Chen et al., Isolating Sources of Disentanglement in VAEs, NeurIPS 2018