Intro
연속적인 또는 이산적인 독립변수 x를 N개 가지고 있는 Dataset X를 정의하고 이때 data는 관찰되지 않은 랜덤한 연속변수 z에 의해서 생성된다고 하자. 그렇다면 해당 process는 2단계로 이루어질 수 있다.
1. 랜덤변수 z는 사전분포 P_θ(z)에 의해서 생성된다.
2. data x는 조건분포 P_θ(x|z)에 의해 생성된다.
(추가적으로 해당 함수들은 미분가능하다)
위 문제를 기존의 방법으로는 다루기가 어렵다.
첫번째로 marginal likelihood의 수식을 보면 알 수 있다.
당연히 data X가 P_θ function으로부터 나와야 하지만, 해당 수식은 정의되지 않은 분포 z를 이용하기 때문에 추정하기 매우 어렵다. (그렇기 때문에 MAP(maximum a posteriori), ML(maximum likelihood)을 이용하기 힘들다.)
두번째로는 large dataset 문제이다.
그렇기 때문에 sampling을 기반으로 하는 Monte Carlo EM 등등은 매우 속도가 느릴 수 밖에 없다.
VAE는, input data의 true distribution인 p(x)를 approximate하는 것을 목적으로 한다. 이를 위해서 VAE는 다음 그림과 같이 encoder, decoder, 그리고 latent space로 구성된 구조를 가진다. 그리고 VAE는 학습 단계에서 이 encoder과 decoder의 parameter를 학습하는 것을 목적으로 한다.
Architecture
Encoder
인코더는 입력 데이터를 잠재 공간으로 변환하는 역할을 하며, 주어진 입력 x에 대해 잠재 벡터 z의 분포 q(z|x)를 근사화하는 것을 목표로 한다. 이 과정에서 정규분포를 사용해 z의 평균과 표준편차 파라미터를 찾는다.
Decoder
디코더는 잠재 공간에서 원본 입력으로의 변환을 담당하며, 주어진 잠재 벡터 z에 대한 입력 데이터 x의 분포 p(x|z)를 근사화한다. 디코더는 z로부터 데이터 x를 생성하는 생성 모델의 역할을 한다.
Latent space
잠재 공간은 숨겨진 벡터 공간을 의미하며, 이 공간이 주어져야 디코더가 데이터를 생성할 수 있다. 노이즈 샘플링과 재매개변수화 트릭을 통해 잠재 벡터 z를 생성하며, 이는 VAE가 입력과 동일한 출력을 생성하는 것을 방지한다.
ELBO
VAE의 학습은 최대 우도 접근법을 사용하여 손실(loss)을 최소화하는 것을 목표로 한다. 이는 모델 파라미터 θ를 최적화하여 로그 가능도(log-likelihood)를 최대화하는 것과 동일하다.
이를 풀면 아래와 같다.
첫 번째 줄에서 두 번째 줄로 넘어갈 때는 bayes rule을 사용했고, 두 번째 줄에서 세 번째 줄로 넘어갈 때는 분모와 분자에 같은 q 식을 곱해주었다. 그리고 세 번째 줄에서 네 번째 줄로 넘어갈 때는 KL divergence의 정의를 활용했다. 이제 위 마지막 식을 maximize하는 parameter theta를 찾으면, 우리가 원하는 likelihood를 maximize하는 parameter를 찾을 수 있는 것이다. 마지막 식을 하나씩 살펴보자. 우선 맨 처음에 있는 항은 encoder로부터 z를 sampling하고, 다시 이 z로부터 decoder를 활용해서 p(x|z)를 계산함으로써 계산할 수 있다. 그리고 두 번째 있는 항은 q와 p가 둘 다 정규분포이기 때문에, 정규분포 두 개 사이의 KL divergence는 쉽게 계산이 가능하다. 하지만 세 번째 항은 우리가 p(z|x)를 알 수가 없기 때문에 계산하는 것이 불가능하다. 하지만 우리는 KL divergence가 항상 양수라는 것을 안다. 그래서 우리는 마지막 식을 다음과 같은 부등식으로 표현할 수 있다.
이 마지막 부등식의 우항을 evidence lower bound, 줄여서 ELBO라고 부른다. 이 ELBO를 maximize함으로써 likelihood 또한 maximze할 수 있는 것이다.
Data generation
위에서 살펴본 구조로 ELBO를 maximize하면서 encoder와 decoder를 학습한 후, 우리는 이 학습된 decoder를 활용해서 우리가 원하는 data를 generate해야 한다. 이 과정에서는 위 그림과 같은 generator를 활용해서 data를 generate한다.
위 그림이 VAE가 데이터를 생성하는 원리를 한눈에 알아보기 좋게 잘 표현했다고 느꼈다.
'Drawing (AI) > Paper review' 카테고리의 다른 글
[논문리뷰] Deep Learning for Anomaly Detection: A Review (0) | 2024.03.28 |
---|---|
[논문 리뷰] DDPM (Denoising Diffusion Probabilistic Models) (2) | 2024.03.12 |
[논문 리뷰] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis (0) | 2024.03.02 |
BERT(3) (0) | 2023.08.20 |
BERT(2) (0) | 2023.08.13 |