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' 카테고리의 다른 글
Adversarial Attack (1) | 2024.07.15 |
---|---|
MoE(Mixture-of-Experts, ICLR 2017) (0) | 2024.07.08 |
[ODAI] DOTA benchmark (2) | 2024.03.06 |
Grounding DINO architecture (0) | 2024.02.27 |
[Object Detection] DINO (0) | 2024.02.21 |