[CS236n] 1. Introduction to Generative Models
카테고리: CS236n
태그: Generation
💡 이 글은 『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
)
댓글 남기기