생성 모델
개요
우리가 갖고 있는 데이터가 따르는 확률 분포를 정확하게 알아내는 일은 많은 응용 분야에서 중요한 문제이지만, 매우 어려운 문제이기도 하다. 가령 사람 얼굴 사진의 확률 분포와 이 분포를 샘플링하는 방법을 정확하게 알고 있다면, 이 분포로부터 데이터를 샘플링할 때 마다 그럴듯한 사람 얼굴 사진을 얻을 수 있다. 당연하게도 이런 일은 거의 불가능하다. 많은 어려운 문제들이 쉬운 문제를 푸는 것으로부터 시작하듯이, 생성 모델이란 주어진(=알고 있는=쉬운) 분포로부터 원하는(=알고 싶은=어려운) 분포를 근사하는 방법을 말한다.
정의
데이터 집합(랜덤 샘플) 가 따르는 미지의 확률 분포를 라 하자. 데이터 집합 가 잘 알려진 확률 분포 를 따른다고 하자. 이때 다음과 같은 함수 , 혹은 를 찾는 방법론을 생성 모델generative model 이라고 한다.
설명
쉬운 분포 로 가장 많이 사용되는 것은 단연 정규분포이다. 그래서 생성 모델을 간단히 설명하자면, 정규분포로부터 다른 미지의 분포를 따르는 데이터를 추출하는 방법을 찾는 것이라고 할 수 있다. 최근에는 신경망을 이용한 생성모델이 많이 연구되고 있다. 신경망과 딥러닝을 이용한 생성 모델임을 분명히할 때는 심층 생성 모델deep generative models이라고 부르기도 한다.
정의를 만족하는 를 찾을 수 있다면, 를 추출하는 것은 쉬우므로 를 생성할 수 있다.
종류
- 오토 인코더
- 변분 오토인코더(VAE, Variational Autoencoder)
- 생성적 적대 신경망(GAN, Generative Adversarial Network)
- 확산 모델(Diffusion Models or Diffusion Probabilistic Models)
- DDPM(Denoising Diffusion Probabilistic Models)
- Deep Image Prior