Diederik P. Kingma, Max Welling - Machine Learning Group, Universiteit van Amsterdam
논문 설명에 앞서 이전의 Summary 방식과 달리 이번 글은 논문을 요약하고 부연설명을 추가로 다는 방식으로 진행하고자 합니다. 그 이유는 해당 논문은 논문만으로 이해하기 어려울 수 있고 큰 그림을 바라볼 수 있게 도움을 드리기 위해서 입니다.
그럼 시작하겠습니다.
연속적인 잠재 변수와 파라미터에서 풀 수 없는 사후 분포를 가지는 directed probabilistic model를 효율적으로 근사치에 추정하고 학습할 수 있을까?
Variational Bayesian (VB) 접근법은 풀 수 없는 posterior의 근사치 최적화를 포함한다. 특히 SGVB(Stochastic Gradient Variational Bayes) 추정은 연속적인 잠재 변수와 파라미터를 사용하는 거의 모든 모델에 있어 효과적인 근사치 사후 초론이 가능하게 한다. 이를 위해 미분 가능한 variational lower bound의 reparmeterization을 사용한다.
datapoint마다 i.i.d dataset이고 연속적인 잠재 변수인 경우, 우리는 Auto-Encoding VB(AEVB) 알고리즘을 사용하여 MCMC과 같은 비싼 반복 추론의 필요성 없이 효과적인 추정 사후 추론이 가능하게 한다.
어찌보면 abstract를 다시 적을 정도로 다시 정제된 언어로 해당 섹션을 풀어 쓴 공간입니다. 2 단락으로 되어있으며 간단하게 설명하고 있습니다.
다만 여기서 여러분이 중요하게 바라보셔야하는 부분은 intractable posterior distribution을 풀기 위해 어떻게 진행하는지 입니다. 자세한 이야기는 뒤에 나오지만 크게 보셔야하는 부분은 크게 2가지 입니다. 첫 번재는 intractable posterior distribution을 위해서 진행하는 variational inference의 lower bound이고 두 번째는 reparametrization을 통한 미분 가능성을 진행하는 것입니다. 이를 위해 SGVB를 통해 효과적인 근사치 사후 추론이 가능하게 하였다고 표현한 것입니다.
자세한 이야기는 뒷 부분을 계속 읽으면서 참조해주세요
우리는 각 datapoint마다 잠재 변수를 가지는 i.i.d 데이터 세트를 가지는 공간 maximum likelihood(ML) 또는 maximum a posteriori (MAP) 추론, variational inference가 수행가능한 흔한 경우에 대해 수행할 수 있도록 제한한다.
https://aigong.tistory.com/369
$\mathbf{X}=\{x^{(i)}\}_{i=1}^N$ : 연속적인 혹은 이산적인 변수 $x$ N개의 i.i.d 샘플을 포함하는 데이터 세트
$z$ : 관측되지 않은 연속형 랜덤 변수
$x$ : 데이터로 $z$를 포함하는 어떤 random process에 의해 생성되었다고 가정
(1) $z^{(i)}$는 prior distribution $p_{\theta^*} (z)$로부터 생성
(2) $x^{(i)}$는 conditional distribution $p_{\theta^*} (x|z)$로부터 생성
$\theta , z$에 대해 거의 모든 곳에서 미분가능을 가정.
문제는 true parameter $\theta^*$와 잠재 변수 $z^{(i)}$는 우리가 모르지만 이런 경우에도 효율적으로 작동하는 일반적인 알고리즘에 관심이 있다.
1. Intractability (풀 수 없음) : $p_\theta (x) = \int p_\theta (z) p_\theta (x|z) dz$, $p_\theta (z|x) = p_\theta (x|z) p_\theta (z) / p_\theta (z)$ 모두 풀 수 없다 -> EM 알고리즘 사용불가
2. A large dataset : 많은 데이터로 인해 batch optimization에서 연산량이 많다.
우리는 위 시나리오와 관련된 3개의 문제들에 대한 해결책을 제시함.
1. 파라미터 $\theta$에 대한 효과적인 근사치 ML 또는 MAP 추정.
2. 파라미터 $\theta$의 선택에 따른 관측된 값 $x$가 주어졌을 때 잠재 변수 $z$의 효과적인 근사치 사후 추정(approximate posterior inference) : $p_{\theta} (z|x)$
3. 변수 $x$의 효율적인 approiximate marginal inference
위 문제들을 해결하기 위해 계산불가한 true posterior $p_\theta (z|x)$의 근사치인 recognition model $q_\phi (z|x)$를 도입한다.
recognition model $q_\phi (z|x)$ : probabilistic encoder - Gauissian과 같은 분포 생성
$p_\theta (x|z)$ : probabilistic decoder
Marginal likelihood : $log p_\theta (x^{(1)}, \cdots , x^{(N)}) = \sum_{i=1}^N log p_\theta (x^{(i)})$
첫 번째 항은 true posterior와 근사치의 KL divergence. 항상 0보다 크거나 같다.
두 번째 항은 variational lower bound라고 불리며 아래와 같이 다시 적을 수 있다.
우리는 variational parameter $\phi$와 generative parameter $\theta$ 모두에 관해 lower bound $\mathcal{L}(\theta, \phi ; x^{(i)})$가 미분가능하고 최적화가 진행할 수 있게하고 싶다. 그러나 $\phi$에 대한 gradient에 문제가 있다. 이에 대한 일반적인 MC gradient estimator는 다음과 같다.
$$\nabla_\phi \mathbb{E}_{q_\phi (z)} [f(z)] = \mathbb{E}_{q_\phi (z)} [f(z) \nabla_{q_\phi (z)} log\; q_\phi (z)] \simeq {1 \over L} \sum_{i=1}^L f(z) \nabla_{q_\phi (z^{(l)})} log\; q_\phi (z^{(l)})$$
이러한 gradient estimator는 매우 높은 variance를 보이고 우리들의 목적에 실용적이지 않다.
이번 section에서 lower bound와 그 미분에 실질적인 추정치를 도입한다.
2.4 section에서 선택된 근사치 사후 $q_\phi (z|x)$에 대한 완화된 조건들 아래 보조의 노이즈 변수 $\epsilon$과 미분가능한 transformation $g_\phi (\epsilon ,x)$를 사용하는 랜덤 변수 $\tilde{z} \sim q_\phi (z|x)$를 reparameterize할 수 있다.
어떤 함수 $f(z)$에 대한 기댓값을 구하기 위한 Monte Carlo 추정치
위 식 (5) Monte Carlo estimatimation of expectation을 식 (2)에 적용
위 식 (5) Monte Carlo estimatimation of expectation을 식 (3)에 적용
expectation reconstruction error $\mathcal{E}_{ q_\phi (z|x^{(i)} } [log \; p_\theta (x^{(i)} |z)]$는 샘플링에 의해 추정을 요구
여기서 KL Divergence는 $\phi$를 규제함으로써 $p_\theta (z)$가 $q_\phi (z|x^{(i)})$에 가깝도록 유도한다. 식 (7) 적분과 관련한 내용은 Appendix B 참조.
본 실험에서 $L$은 1로 설정. 최적화 방법은 SGD 혹은 Adagrad와 같은 stochastic optimizer methods를 활용
식 (7)에서 첫 번째 term은 regularizer와 같은 역할을 하고 두 번째 term은 expected negative reconstruction error이다.
$g_\phi (\cdot)$은 datapoint $x^{(i)}$와 해당 데이터 포인트의 approximate posterior로부터 샘플링한 random noise vector $\epsilon^{(l)}$이 선택
$$z^{(i,l)} = g_\phi (\epsilon^{(l)} , x^{(i)}) \quad z^{(i,l)} \sim q_\phi (z|x^{(i)})$$
샘플 $z^{(i,l)}$는 생성 모델에서 datapoint $x^{(i,l)}$의 확률 밀도와 일치하는 $log \; p_\theta (x^{(i)} |z)$의 입력값이 된다.
$q_\phi (z|x)$로부터 샘플들을 생성하기 위한 대체적인 방법을 위한 section
continuous random variable $z$를 deterministic $z = g_\phi (\epsilon , x)$로 나타낼 수 있다.
이 방법을 통해 Monte Carlo estimate를 통한 expectation이 $\phi$에 대해 미분가능하도록 다시 쓸 수 있다.
(중간 과정 생략 - 논문 참조)
$$\int q_\phi (z|x) f(z) dz \simeq {1 \over L} \sum_{l=1}^L f( g_\phi (x, \epsilon^{(l)}) ) \quad where \; \epsilon^{(l)} \sim p(\epsilon)$$
univariate Gaussian case : $z \sim p(z|x) = \mathcal{N} (\mu, \sigma^2)$
reparameterization $z = \mu + \sigma \epsilon$ where $\epsilon \sim \mathcal{N}(0, 1)$
$$\mathbb{E}_{\mathcal{N} (z; \mu, \sigma^2)} [f(z)]= \mathbb{E}_{ \mathcal{N} (z; 0,1) }[f(\mu + \sigma \epsilon)] \simeq {1 \over L} \sum_{l=1}^L f( \mu + \sigma \epsilon ) \quad $$
where $ \epsilon^{(l)} \sim \mathcal{N} (0,1)$
이번 section에서 probabilistic encoder $q_\phi (z|x)$에 대해 신경망을 사용하고 AEVM 알고리즘에서 parameter $\phi , \theta$를 함께 최적화 시키는 예를 보여준다.
centered isotropic multivariate Gaussian $ p_\theta (z) = \mathcal{N} (z; 0, I) $
여기서 true posterior $p_\theta (z|x)$는 계산잉 불가능하기 때문에 $q_\phi (z|x)$를 도입하여 근사치를 구함.
이에 따른 mutivariate Gaussian을 구할 수 있음
추가 부연설명) 식 7 첫번째 항 regularizer에서 $p_\theta (z)$와 $q_\phi (z|x)$가 가깝도록 설정되어있고 여기서 $p_\theta (z)$는 Gaussian에 가까우니 자동적으로 다음과 같은 식이 나옴
section 2.4에서 배운 reparameterization trick의 결과 다음과 같은 식을 도출할 수 있음.
식 (7)에 있는 첫 번째 term KL Divergence와 관련해서는 $p_\theta (z), q_\phi (z|x)$ 모두 Gaussian이라 정의했기 때문에 위 식 (10) 첫 번째 term이 나온 것이고 이와 관련한 자세한 식은 Appendix B 참조.
추가로 우리가 모델링하는 데이터의 타입에 따라 decoding term인 $log \; p_\theta (x^{(i)} | z^{(i,l)})$이 Bernoulli 또는 Gaussian이 나올 수 있다.
MNIST와 Frey Face dataset으로부터 이미지들의 생성 모델을 훈련시켰다.
section 3와 일치하며 평균은 (0,1) 범주로 제한시켰으며 decoder ouput으로 sigmoid activation function을 사용
작은 weight decay term을 추가하여 사용
나머지는 algorithm 1에서 사용하는 lower bound estimator와 동일
AEVB와 wake-sleep algoirthm의 성과 비교를 진행함
random sampling $\mathcal{N} (0, 0.01)$로 초기화
stepsize는 Adagrad 사용
Minibatch size $M=100$, L=1
MNIST에서 500 hidden unit 사용, Frey Face dataset은 200 hidden unit 사용
연속적인 잠재 변수들에 대해 효율적인 근사치 추론이 가능한 새로운 variational lower bound 추정 방법인 Stochastic Gradient VB (SGVB)를 도입한다. 제안된 estimator를 통해 미분가능하고 SGD 방법들에 대해 최적화가 가능하다.
i.i.d dataset이고 데이터포인터마다 연속적인 잠재 변수를 가지는 경우 효율적인 추론과 학습이 가능한 Auto-Encoding VB(AEVB)를 소개한다. 이는 SGVB estimator를 사용하여 근사치 추론 모델을 학습한다.
시작에 앞서 likelihood와 Maximum Likelihood Estimation(MLE)에 대해 알고싶다면 아래 링크 확인
https://aigong.tistory.com/369
VAE가 나온 이후 시간이 많이 지나고 많은 자료가 나왔습니다. 이에 해당 section은 다양한 자료들로 구성된 정리를 설명할 공간이므로 참조부탁드립니다.
위 이미지를 통해 확인할 수 있듯 VAE는 구하고자 하는 density를 근사치를 통해 추론함으로써 구하는 것을 의미합니다.
즉, VAE는 계산하기 어려운 (intractable) true posterior에 대해 variational inference를 통해 lower bound를 통한 근사치를 구해 density에 대한 MLE를 구하는 것이고 이를 미분가능하게 하기 위해 reparameterization을 한다고 볼 수 있습니다.
Autoencoding 구조를 기반으로 설명하면 VAE는 기본적으로 generating을 위한 decoder가 바탕이 되는 구조입니다. 그러나 이때 입력으로 사용하는 sampling을 위해서는 생성하려는 데이터의 분포 내의 값에서 sampling 해야합니다. 물론 gaussian을 바로 적용해서 MSE를 바탕으로 sampling을 구하는 방법이 있지만 효과가 좋지 못합니다. 때문에 데이터 $x$에 대한 manifold를 구할 수 있는 분포 z의 이상적인 sampling을 위해 encoder를 구성한 것입니다. 이때 encoding은 계산하기 불가능하기 때문에 위에서 언급한 variational inference를 통한 lower bound를 구해 MLE를 진행합니다. 이 encoding과 decoding의 구조를 합쳐 우연히도 autoencoder와 모양이 비슷하게 되었습니다. 사람들은 구조는 같아보일지라도 목적이 다르기 때문에 autoencoder와 VAE는 다르다고 말합니다.
조금 더 구체적으로 살펴보겠습니다.
앞서 설명한 바와 같이 $z$를 정규분포에서 sampling하는 것보다 x와 유사한 샘플이 나올 수 있는 확률 분포 $p_\theta (z|x)$로부터 샘플링하는 것이 좋은 generating output을 가질 수 있습니다. 그러나 우리는 $p_\theta (z|x)$을 계산할 수 없기 때문에 Variational Inference를 통해 알고있는 확률분포를 하나 선택하는 $q_\phi (z|x)$를 $p_\theta (z|x)$에 가깝게 만듭니다.
위 식들에서 볼 수 있듯 우리는 MLE를 하고 싶고 이를 계산 가능한 식으로 바꾸기 위해 variational inference를 통해 ELBO를 구해냈습니다. 여기서 MLE를 한다는 것은 ELBO를 최대화한다는 뜻을 의미합니다.
다른 방식으로 식을 풀어보면 위와 같이도 나타낼 수 있습니다. 이 식은 논문에서 이야기하는 논문 식 (1)과 (2)로써 lower bound를 통한 ELBO의 MLE를 나타내고 있습니다. 우리는 $p_\theta (z|x)$를 계산할 수 없기 때문에 이와 유사한 $q_\phi (z|x)$를 도입했다하더라도 결과적으로 두 분포가 궁극적으로는 같기를 바라기 때문에 KL Divergence term을 계산할 수 없습니다. (KL Divergence는 0이면 두 분포 간의 거리가 같습니다.)
KL Divergence는 0보다 크거나 같다는 특징을 살려 Lower Bound를 구성합니다. 이것은 다음 그림을 확인하시길 바랍니다. 그럼 이것이 무엇을 의미하는가는 위 그림 오른쪽에 보이는 그림을 보시면 유추하실 수 있습니다. 우리가 원하는 MLE는 정해져있고 두 분포간의 거리는 가깝거나 같기를 바랍니다. 이는 다시 말하면 ELBO term을 최대화하면 우리가 KL Divergence term을 몰라도 MLE가 된다고 볼 수 있는 것입니다.
여기서 나온 식은 Derivation 1에서 나온 식과 동일한 값을 얻게됩니다.
Reconstruction Error term의 경우 Monte-carlo estimates of expectation 표기법을 활용하여 논문 식 (7)과 같이 표현하고 이때 L=1로 설정해서 단 하나의 샘플링만을 진행합니다. (논문 Chapter 2.3 참조)
Regularization term의 경우 $p(z)$는 Gaussian을 설정하기 때문에 쉽게 계산할 수 있습니다. (논문 Chapter 3, Appendix B 참조)
이렇게 MLE를 진행함으로써 우리는 원하는 density에 대한 근사치 추론으로 생성 모델을 구성할 수 있습니다.
이 부분에 대한 설명을 CS231n-13강에서 풀이한 강의자료로 설명할 수 있습니다.
코드를 진행함에 있어 논문 2.4에 표기된 reparameterization을 위해서 deterministic variable로 표기해 진행함으로써 미분가능하도록 합니다.
결과적으로 다음과 같은 구성을 통해 우리는 모델을 구성할 수 있음을 확인할 수 있습니다.
다만 우리가 이미지를 생성하는 decoder에서 사용하는 분포에 따라 다른 loss를 써야한다는 것에 유의해야하는데 해당 내용은 논문 Appendix C를 참조하셔야 합니다.
https://cumulu-s.tistory.com/24
https://lilianweng.github.io/lil-log/2018/08/12/from-autoencoder-to-beta-vae.html
0000