이미지 생성을 위한 몇 가지 접근 방향에 대해 간단히 소개하고 그 중 최근 각광받고 있는 diffusion model에 대해 소개한다.
1. 생성 모형의 종류(1) Generative Advarsarial Network(GAN)(2) Variational Autoencoder(VAE)(3) Likelihood Based Model(4) Diffusion Model2. DPMReferences
1. 생성 모형의 종류
![생성 모형의 종류](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F42a58120-4f6f-408b-b2e9-6bd24c03905e%2F%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-02-20_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE_5.10.27.png?table=block&id=55d56f51-620f-409e-9d34-e7599813bd77&cache=v2)
(1) Generative Advarsarial Network(GAN)
2014년 이안 굿펠로가 제안한 프레임워크로, 생성자와 판별자의 minmax(advarsarial) training을 통해, realistic한 이미지를 생성하는 생성자를 학습한다.
![GAN Model의 구조](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fa669a2ac-3152-436d-9f8f-5071056440c1%2Fimage_(2).png?table=block&id=cee0a704-cdaa-4dd6-aff4-d73bbd241bfc&cache=v2)
- 장점(High fidelity):
- 실제 사진와 유사한 일관성 있는 이미지를 생성할 수 있다.
- 모델 구조의 선택이 자유롭다.
- 단점(Less diversity):
- model의 coverage가 좁아서, 사실적인 이미지를 생성하긴 하지만 다양한 이미지를 생성하지는 못한다.
- 훈련 과정의 불안정성
(2) Variational Autoencoder(VAE)
![VAE Model의 구조](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F95ca380c-7fae-472b-a177-4ec38d577c7e%2F%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-02-20_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE_5.16.42.png?table=block&id=f34eb046-5921-4378-9268-b813bd989ac0&cache=v2)
- 장점 : 확률 모델을 기반으로 했기 때문에, 잠재 코드를 더 유연하게 계산할 수 있다.
- 단점 : Density를 직접적으로 구한것이 아니기 때문에 Pixel RNN/CNN 과 같이 직접적으로 Density를 구한 모델보다는 성능이 떨어진다.
(3) Likelihood Based Model
flow model은 딥러닝 모델에 대한 역변환을 통해, 단순한 분포(ex.Normal distribution)에서 시작하여 복잡한 분포를 모델링하는 방법이다. 확률론에서 자주 언급되는 change of variable theorom에 기반한 방법이며, log likelihood objective로 학습이 이루어진다.
![flow model 구조](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb94dee58-60da-443b-b763-99f216f32495%2Fimage_(3).png?table=block&id=e7dbf9c2-b81d-4271-94c7-6ebbd788084f&cache=v2)
Autoregressive Model(DALL.E)
DALL.E(2021)처럼, 이미지 패치를 vector quantization을 통해 토큰화(visual token)시킨 후, visual token간의 관계를 transformer decoder로 모델링한다. 이것은 NLP분야에서 언어 생성에 사용되는 GPT의 응용된 버전이고, 이미지 생성 도메인 뿐 아니라, 언어 생성. 음성 생성에도 사용된다. transformer decoder구조를 사용하기 때문에, 모델 스케일링에 대한 장점이 있다.
(4) Diffusion Model
Diffusion model은 데이터를 만들어내는 deep generative model 중 하나로, data로부터 noise를 조금씩 더해가면서 data를 완전한 noise로 만드는 forward process(diffusion process)와 이와 반대로 noise로부터 조금씩 복원해가면서 data를 만들어내는 reverse process를 활용한다.
![notion image](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb2133422-e76b-4472-9314-f17ce2b7aa1a%2F%25E1%2584%2589%25E1%2585%25B3%25E1%2584%258F%25E1%2585%25B3%25E1%2584%2585%25E1%2585%25B5%25E1%2586%25AB%25E1%2584%2589%25E1%2585%25A3%25E1%2586%25BA_2023-02-20_%25E1%2584%258B%25E1%2585%25A9%25E1%2584%2592%25E1%2585%25AE_5.11.05.png?table=block&id=277652b7-bf45-4d29-b2a9-988a1b390dbe&cache=v2)
- 장점:
- GAN과는 달리 stationary training objective를 사용
- Model scalability(CNN architecture)
- Distribution coverage가 높음 -> 다양한 이미지 생성 가능
- 단점:
- 순차적인 inverse process를 통해 이미지가 생성되므로, 생성 속도가 비교적 느림
- GAN에 비해 fidelity가 낮음
2. DPM
딥러닝에서 현실의 복잡한 dataset을 확률분포
probability distribution
로 표현하는 것은 매우 중요하다. 특히 우리가 이 확률분포를 구하고자 할 때에는 tractability와 flexibility라는 개념이 중요한데, 이는 서로 trade-off 관계에 있기 때문에 이 둘을 동시에 만족하긴 어렵다. (복잡한 data에 대해서도 잘 fitting이 되어 있으면서도 계산이 용이한 분포를 찾긴 어려움)- tractability: Gaussian이나 Laplace distribution 처럼 data에 쉽게 fitting되어 분석이 쉬우며 계산이 용이한 분포
- flexibility: 임의의 복잡한 data에 대해서도 적용이 가능한 분포
Diffusion Probability Model
- extreme flexibility in model structure
- exact sampling
- easy multiplication with other distributions, e.g. in order to compute a posterior, and
- the model log likelihood, and the probability of individual states, to be cheaply evaluate
초창기
Diffusion Probability Model(2015)
에서는 diffusion 과정을 통해 우리가 잘 알고있는 distribution (ex. Gaussian)을 target data distribution으로 변환해주는 markov chain을 학습시켜 flexible하면서도 tractable한 distribution을 구하고자 하였다.VAE
는 image를 encoding하는 network와 latent code를 바탕으로 image를 decoding하는 network 모두를 학습하는 반면, Diffusion model
은 이미지를 encoding하는 forward process는 fix된 채 image를 decoding하는 reverse process - single network 만을 학습한다.