cs
DL·ML

VAE Loss Derivation (in progress)

 

 

Introduction

VAE에 대해서는 잘 설명하고 있는 좋은 글들이 많으니 개념에 대해서는 생략하겠다. 

 

여기서 encoder는 $q_φ(z|x)$, decoder는 $p_θ(x|z)$로 표기한다.

 

 

 

MLE

MLE의 Motivation

Learning의 정의 상, observed variable $\mathbb x$가 true distribution $p^*(\mathbb x)$를 따른다고 할 때, 이 distribution을 θ로 parametrized되는 함수 $p_θ(\mathbb x)$로 approximate하는 것이다.[1] 즉,

$$p_θ(\mathbb x) \approx p^*(\mathbb x)$$

 

 

 

VAE의 MLE Derivation

MLE는 다음과 같이 계산된다. 

$$\arg \max_θ p_θ(x_1,x_2,\dots,x_N;θ)$$

이때 $x_i$가 서로 independent하다는 assumption에 따라서

$$=\arg \max_θ \prod_i p_θ(x_i)$$

이는 argmax이므로 log를 취해 summation으로 바꿔줄 수 있다.

$$=\arg \max_θ \sum_i \log p_θ(x_i) \\ = \arg \max_θ \frac{1}{N} \sum_i \log p_θ(x_i)$$

이는 정의상 log likelihood의 expectation이다.

$$=\arg \max_θ \mathbb E_x \log p_θ(x_i)$$

 

 

 

ELBO

이때 $p_θ(x)$는 evidence로, x의 marginal likelihood이다. 이것의 logarithm을 계산하면 다음과 같다.

$$\log p_θ(x) \\ =\log \prod_i p_x(x;θ) \\ = \sum_i \log p_x(x;θ) \\ = \sum_i \log \int_z p_{x,z} (x,z;θ)dz$$

 

Bayes rule에 의해서,

 

$$= \log p(x;θ)=\int_z \log{p_θ(x,z)q_φ(z)\over p_θ(z|x)q_φ(z)} q_φ(z)dz$$

 

이는 expection으로

$$=  \mathbb E_{q_φ(z|x)} \log {q_φ(z|x)\over p_θ(z|x)} + \mathbb E_{q_φ(z|x)}\log {p_θ(x,z)\over q_φ(z|x)}$$

 

으로 분리될 수 있다. 잘 보면 두 형태 모두 KL divergence의 형태를 갖고 있다. 즉, 다음과 같이 바뀌는데, 

 

$$ = D_{KL} (q_φ(z|x) \| p_θ(z|x)) + D_{KL} (p_θ(x,z)\| q_φ(z|x))$$ 

 

이 된다. 여기서 $p_θ(z|x)$는 decoder에서 intractable하여 곤란한 문제가 있는데, KL divergence는 항상 positive하므로, 좌측 term은 gap으로 남겨두고, 오른쪽 term을 ELBO로 optimize하게 된다. 즉,

 

$$\begin{align}&= D_{KL} (q_φ(z|x) \| p_θ(z|x)) + ELBO \\ &\ge ELBO \end{align}$$

 

이다. 

 

 

 

ELBO Implementation

ELBO는 다음과 같이 implement된다: 

$$\begin{align} &\mathbb E_{q_φ(z|x)}\log {p_θ(x,z)\over q_φ(z|x)} \\ &= \mathbb E_{q_φ(z|x)}\log {p_θ(x,z)- \log  q_φ(z|x)} \\ &= \end{align}$$

 

 

Experiments

 

Results

 

Discussion

 

 


References

[1]

[2] Ding, M. (2022). The road from MLE to EM to VAE: A brief tutorial. AI Open, 3, 29–34. https://doi.org/10.1016/j.aiopen.2021.10.001

 

Footnotes

'DL·ML' 카테고리의 다른 글

[ODAI] DOTA benchmark  (2) 2024.03.06
Grounding DINO architecture  (0) 2024.02.27
[Object Detection] DINO  (0) 2024.02.21
[Object Detection] DETR  (0) 2024.02.21
[ZSD] GLIP  (1) 2024.02.06