Compares Probabilistic Generative Models
Introduction
심심하기도 하고 그냥 궁금해서, 우도함수 기반 모델들 VAE, DDPM, FM 을 비교해보려고 한다.
음.. 3가지 모델을 간단하게 설명하자면..
VAE는 데이터의 분포에서 잠재 공간으로 압축하고, 다시 잠재 공간에서 다시 원본 데이터 분포로 복원하도록 학습하는데, 이때 잠재 변수에 대한 적분이 불가능하여 실제 데이터의 우도 함수를 계산할 수 없기 때문에, 우도 함수의 근사값(하한선)인 ELBO를 최대화하는 식으로 학습한다.
DDPM은 데이터에 노이즈를 단계적으로 추가해가는 과정을 미리 정의하여, 이 과정의 역과정을 학습하는 식으로 노이즈 분포에서 데이터 분포로의 전환을 수행한다.
FM 은 연속적인 시간에서 노이즈 분포와 데이터 분포 사이의 연결되는 확률 흐름과 벡터장을 미분방정식으로 직접 정의하여 마찬가지로 분포의 전환을 수행한다.
…아무튼 자세하게는 각 블로그 글을 보자…
Architecture
모델들은 각 논문에 맞게 구현하였으며, 간단하게 MNIST 데이터셋으로 학습하였다…
그리고 모델 파라미터 수는 최대한 비슷하도록 조정하였고.. DDPM과 FM은 동일한 UNet backbone을 사용하였다… 아무튼 다음과 같다.
| VAE | DDPM | FM | |
|---|---|---|---|
| # params | $3.0M$ | $2.8M$ | $2.8M$ |
| ch mults | $(1, 2, 4)$ | $(1, 2)$ | $(1, 2)$ |
| ch | $32$ | $32$ | $32$ |
| # resBlock | $2$ | $2$ | $2$ |
| attn resolutions | - | $(28, 14)$ | $(28, 14)$ |
| z channel | $16$ | - | - |
| time embedding dimension | - | $256$ | $256$ |
| train steps | $3e4$ | $3e4$ | $3e4$ |
| lr | $5e-5$ | $5e-5$ | $5e-5$ |
FM 은 OT 로 구현하여 50 스텝의 Euler method를 샘플링에 사용하였다..
나머지는 각 논문을 따랐다..
Experiment results
그냥 간단하게 각 모델의 생성물 비교와.. FID score, 그리고 샘플링 속도를 비교하도록 하겠다..
Samples
단순히 노이즈로부터 생성한 결과물이다. 보면 상대적으로 VAE 가 나머지 두 모델에 비해 가장 열악한 결과물을 보임을 알 수 있다. 그리고 나머지 두 모델에 대해선.. 내가 보기엔 구분할 수 없다.
others
| VAE | DDPM | FM | |
|---|---|---|---|
| NFE(모델 호출 횟수) | $1$ | $1000$ | $50$ |
| FID | $58.62$ | $8.63$ | $22.45$ |
| avg latency ($\text{BS}=64$) | $0.02$ sec | $14.61$ sec | $0.84$ sec |
…간단하게 모델 호출 횟수와 FID score, 그리고 배치 사이즈 64로 샘플링 하는데 걸리는 시간을 각각 20번 측정하여 평균을 나타내었고, 소수점 두자리까지 반올림하였다.
보면 VAE 가 한번의 모델 호출과 샘플링 시간이 $0.02$ 초로 가장 빠른 속도를 보였지만, FID score 는 $58.62$ 로 가장 높은 수치를 달성했다. 앞서 간단한 MNIST 데이터셋에서 샘플링한 사진에서는 눈으로 보기 힘들지만.. 픽셀 단위의 L2 loss 로 모든 픽셀이 평균에 가까워지도록 학습되어 이미지가 블러 처리된 것 처럼 보이며 디테일이 박살나기 때문에 이렇게 높은 수치가 나온 것이다. 말했듯이 MNIST 같이 단순한 데이터셋에선 잘 확인이 안되지만.. LSUn과 같이 데이터셋이 복잡해질 수록 이 부분이 도드라지게 나타났다.
그리고 DDPM은 $1000$ 번의 모델 호출과, 샘플링 시간이 무려 $14.61$ 초로 겁나게 느렸다. 대신에 FID score 는 $8.63$ 으로 가장 낮은 수치를 달성했다.
FM은 OT로 인해 $50$ 번의 모델 호출과, 샘플링 시간이 $0.84$ 초 정도로 두번째로 빠르고, FID score는 $22.45$ 로 두번째로 낮은 수치이다. (FID score 에선 차이가 조금 있지만, 위 샘플 사진을 봤을 때는 잘 모르곘다. 데이터가 단순해서 눈으로 비교하기가 어렵다..)
그니까 정리하자면, VAE는 속도는 가장 빠르지만, 대신 결과물의 품질이 좋지 못하고,
DDPM은 결과물의 품질이 가장 좋지만, 속도가 가장 느리다.
FM은 뭔가 이 둘의 혼합형으로, 속도도 충분히 빠르며, 품질 또한 비교적 좋다.
찌라시시
어… 오늘은 뭔가.. 공부하기 싫은 날이어서.. 그렇다고 누워만 있자니 심심해서 그냥 토이 프로젝트로 간단하게 모델들을 비교해봤다..
내일은.. 그냥 다양한 ODE solver 들 한번 살펴보고.. DDPM 이랑 FM 두 개를 한번 이리저리 만져서 실험해보겠다..





