목록Research/Disentanglement (6)
숟가락 그만 얹어
Disentanglement는 해결 가능한 문제인가? [1] 논문에서는 이론적인 증명 (inductive bias 없이는 어렵다...)과 여러 모델이 진정한 의미에서의 disentangled representation을 생성하는지 실험적으로 관찰하였다. 1. 실제로 모델이 uncorrelated posterior를 생성하는가? Sampled representation (z ~ N(mu, sigma))이라면 regularizer strength에 따라 correlation이 조절된다. 그러나 mean representation (mu)은 오히려 strength가 커질수록 correlated 되는 경향을 보인다. 2. 여러 disentanglement metric 간에 연관성이 있는가? 대체로 그렇다. 3...

VAE loss에 aggregated posterior를 prior에 가깝게 하는 loss를 추가한다. 새로운 loss를 추가하는 건 그럴 수도 있다고 생각하는데 이게 왜 좋은지에 대한 설명이 잘 이해가 안 간다. (ELBO의 non-convexity가 variational inference의 global minimum을 달성하기 어렵게 한다고 한다.) 여러모로 a given sample q(z|x)에 대해 prior에 맞추는 것보단 aggregated latents q(z) 덩어리를 prior에 맞추는 것이 batch_dim으로도 indepenence를 enforce하여 얻는 이득이 많은 것 같다. 논문에서 마지막 loss term을 계산하기 위해 q(z)의 covariance를 p(z)의 covari..

볼 때마다 새로운 VAE... 내 언어로 제대로 정리해보자. VAE의 목적은 데이터 분포 p(x)를 만드는 것이고 x는 latent z의 조합으로 생성할 수 있다는 가정이 있다. x를 생성하는 순서는 먼저 1) p(z)에서 z를 sampling하고 2) z를 p(x|z)로 decoding한다. 문제는 p(z)를 Gaussian이라 가정한다 하더라도 모든 경우에 대해서 위 적분을 계산할 수 없다. Bayes rule를 이용해 p(z|x)를 계산해볼 수도 있겠지만 이 역시 intractable하다. VAE에서 사용한 방법은 true posterior p(z|x)를 구할 수 없기 때문에 이를 approximation하는 q(z|x)를 (이는 encoder가 된다) 학습하는 것이다. 그러나 여전히 true po..

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를 구한다. 이때 추정하기 어려..

[1] 논문에서는 reconstruction과 disentanglement 사이의 tradeoff 관계를 개선시킬 수 있는 방법을 제안하고 있다. 문제는 VAE loss에서 KL term을 minimize하면 x와 z 간의 mutual information이 줄어들어 reconstruction이 어렵게 된다. 게다가 beta 값을 크게 하면 할수록 이 현상이 심해진다. FactorVAE는 beta 값을 조절하지 않고 새롭게 total correlation term을 추가하는 것을 제안한다. 여기서 q(z)는 encoder를 통과한 batch 단위의 latent feature로 볼 수 있고, tilda q(z)는 batch dim과 feature dim으로 permutation한 분포라고 할 수 있다. 즉..

KL term에 beta를 두어 diagonol covariance를 가진 Gaussian prior에 posterior를 더 잘 맞추도록 한다. Information bottleneck 관점에서 beta는 channel capacity를 조절하는 coefficient인데, beta 값을 크게 하면 데이터 사이의 information이 중첩되어 decoding이 어려워진다. 예를 들어 위 그림에서는 tilda x가 실제로는 q(z2|x2)에서 sampling 되었음에도 q(z1|x1)에서 likelihood가 더 크게 계산된다. 그렇다고 이 상황이 최악인 것은 아니다. 데이터의 information 중첩될 것이라 가정하고 최대한 reconstruction error을 줄이려면 서로 비슷한 데이터끼리 모이..