생성 모델(Generative Model)은 주어진 데이터셋과 유사한 데이터를 생성하도록 설계하는 머신러닝의 한 분야이다. 기존의 데이터셋과 유사한 데이터셋을 생성하려면 먼저, 기존의 데이터셋이 어떤 특징을 가지는지 파악하고, 만들어진 데이터셋이 기존의 데이터셋과 얼마나 유사한지 측정이 가능해야 한다. 이러한 아이디어를 토대로 설계된 초기의 생성 모델은 대표적으로 GAN이 있다. GAN(Generative Adversarial Networks)은 판별자(Discriminator)와 생성자(Generator) 두 개의 신경망으로 이루어져 서로가 경쟁하는 방식으로 데이터를 생성하는 모델이다.

GAN의 생성자(Generator)는 훈련 데이터를 입력받아 저차원의 잠재공간(Latent Space)에 원본 데이터의 복잡한 분포를 압축하여 표현한다. 이러한 잠재표현(Latent Representation)을 중심으로 정규분포를 매핑하여 해당 표현이 가지는 확률 분포를 학습하는 것이다. 생성자는 원본에서 관측한 샘플 X를 관측할 확률을 학습하고, 이에 무작위 노이즈(z)를 더해 원본 데이터셋에 속할 가능성이 높은 이미지를 생성할 수 있는 것이다.
반대로 GAN의 판별자(Discriminator)는 훈련 데이터를 입력받아, Classification 작업과 마찬가지로 해당 데이터의 샘플 X에 붙여질 label의 확률을 학습한다. 판별자는 학습을 통해 입력된 이미지가 실제 데이터인지, 생성자에 의해 생성된 가짜 이미지인지 판별하는 역할을 한다. 생성자의 목표는 원본이미지와 최대한 비슷한 가짜 이미지를 생성하여 판별자가 가짜 이미지를 원본 이미지로 착각하도록 만드는 것이다.

다른 Image Generation 모델에는 Diffusion 모델이 있다. Diffusion 모델은 원본 데이터에서 계속 노이즈를 추가해서 완전한 랜덤 노이즈를 만들고(Forward Process), 그 노이즈로부터 복원을 통해 점점 깨끗한 데이터를 생성(Reverse Process)하는 모델이다. 모델은 생성되는 노이즈 자체를 예측하며, 노이즈가 추가된 데이터를 보고 이를 원래 데이터로 복원하는 방법을 학습한다. 따라서 모델은 완전히 순수한 노이즈에서 의미 있는 패턴을 통해 데이터를 복원함으로써 새로운 데이터를 생성할 수 있다. Diffusion 모델은 GAN이나 VAE에 비해 훨씬 고품질의 이미지를 생성할 수 있으며, 안정적인 학습이 가능하여 Mode Collapse 등 구조적 결함 문제가 적다.
이미지 출처:
https://www.researchgate.net/figure/General-block-diagram-of-Generative-Adversarial-Network-GAN_fig2_348989084
https://www.superannotate.com/blog/diffusion-models