logo

생성 모델 📂머신러닝

생성 모델

개요

우리가 갖고 있는 데이터가 따르는 확률 분포를 정확하게 알아내는 일은 많은 응용 분야에서 중요한 문제이지만, 매우 어려운 문제이기도 하다. 가령 사람 얼굴 사진의 확률 분포와 이 분포를 샘플링하는 방법을 정확하게 알고 있다면, 이 분포로부터 데이터를 샘플링할 때 마다 그럴듯한 사람 얼굴 사진을 얻을 수 있다. 당연하게도 이런 일은 거의 불가능하다. 많은 어려운 문제들이 쉬운 문제를 푸는 것으로부터 시작하듯이, 생성 모델이란 주어진(=알고 있는=쉬운) 분포로부터 원하는(=알고 싶은=어려운) 분포를 근사하는 방법을 말한다.

정의

데이터 집합(랜덤 샘플) {yj}\left\{ y_{j} \right\}가 따르는 미지의 확률 분포YY라 하자. 데이터 집합 {xi}X\left\{ x_{i} \right\} \sim X가 잘 알려진 확률 분포 XX를 따른다고 하자. 이때 다음과 같은 함수 ff, 혹은 ff를 찾는 방법론을 생성 모델generative model 이라고 한다.

f:{xi}{yj} f : \left\{ x_{i} \right\} \rightarrow \left\{ y_{j} \right\}

설명

쉬운 분포 XX로 가장 많이 사용되는 것은 단연 정규분포이다. 그래서 생성 모델을 간단히 설명하자면, 정규분포로부터 다른 미지의 분포를 따르는 데이터를 추출하는 방법을 찾는 것이라고 할 수 있다. 최근에는 신경망을 이용한 생성모델이 많이 연구되고 있다. 신경망과 딥러닝을 이용한 생성 모델임을 분명히할 때는 심층 생성 모델deep generative models이라고 부르기도 한다.

정의를 만족하는 ff를 찾을 수 있다면, xix_{i}를 추출하는 것은 쉬우므로 yi=f(xi)y_{i} = f(x_{i})를 생성할 수 있다.

종류

  • 오토 인코더
    • 변분 오토인코더(VAE, Variational Autoencoder)
  • 생성적 적대 신경망(GAN, Generative Adversarial Network)
  • 확산 모델(Diffusion Models or Diffusion Probabilistic Models)
    • DDPM(Denoising Diffusion Probabilistic Models)
  • Deep Image Prior