[CS236n] 1. Introduction to Generative Models

Date:     Updated:

카테고리:

태그:


💡 이 글은 『2024 YAI 봄전반기 생성모델팀』으로 진행되었으며, CS236n Fall 2023를 따라 정리했습니다.

1. Introduction

생성 모델은 데이터의 분포 $x_i \sim p_{data}(x)$를 학습하고자 하는 모델이다. 그러나 데이터의 분포 $p_{data}$는 알 수 없으며, 데이터의 분포 샘플의 부분집합인 데이터셋 $\mathcal{D}$를 보고 데이터의 분포를 추정하게 된다.


2. Learning

생성 모델은 크게 다음과 같이 나눌 수 있다.

  • Parametric models
  • Non-parametric models

이 중에서 parametric model이 더 많이 사용되며, 이는 large dataset에 대해 더 효율적으로 데이터 분포를 표현할 수 있기 때문이다. 앞으로는 생성 모델이 parameter $\theta$를 가진 parametric model이라고 가정하자.

데이터의 분포 $p_{data}$의 샘플의 부분집합인 데이터셋 $\mathcal{D}$를 알고 있고, 모델 $\mathcal{M}$의 parameter $\theta$를 통해 분포 $p_\theta$를 학습하려 할 때, 수학적으로는 생성 모델의 목표를 다음과 같이 정의할 수 있을 것이다.

\[\min_{\theta \in \mathcal{M}}d(p_{data}, p_\theta)\]

이때 $d(\cdot)$는 확률분포 간의 거리로, $d(\cdot)$ 함수는 정의에 따라 달라질 수 있다. 실제로 거리가 아닌 KL-divergence와 같은 함수도 사용된다.

선형대수적으로 생성모델을 학습하는 것은 일종의 underdetermined problem을 푸는 것과 같다. 만약 256 x 256 이미지에 대해 생성모델을 학습한다면, 생성모델이 내놓을 수 있는 이미지의 수는 RGB 각각 256개의 값이 가능하므로 $256^{256 \times 256 \times 3}$가지일 것이다. 그러나 데이터셋의 이미지 개수는 많아도 $10^8$개를 넘지 못한다. 따라서 생성모델은 데이터의 특성을 잘 파악해야 한다.

앞으로 다음과 같은 주제를 다룬다.

  • 모델 $\mathcal{M}$의 표현(representation)은 무엇인가? (쉽게 말해서, 어떤 모델을 사용할 것인가?)
  • 목적함수(objective function) $d(\cdot)$은 무엇을 사용할 것인가?
  • 그 목적함수를 어떻게 최적화(optimization)할 것인가?


3. Inference

만약 개(dog) 데이터셋 $\mathcal{D}$에 대해 학습을 진행한다고 가정하면, 다음 세 가지 특징을 만족해야 좋은 생성 모델이라고 할 수 있다.

  • Generation: $x_{new} \sim p(x)$를 샘플링하면, $x_{new}$는 개 이미지처럼 보여야 한다. (sampling)
  • Density estimation: $x$가 개와 유사하다면 $p(x)$가 높고, 아니라면 $p(x)$가 낮아야 한다. (anomaly detection)
  • Unsupervised representation learning: 귀, 꼬리와 같이 데이터셋이 공통으로 가지는 특성을 학습해야 한다. (features)


CS236n 카테고리 내 다른 글 보러가기

댓글 남기기