01 생성모델이란?
위키독스의 '생성모델 입문서'를 바탕으로 공부한 내용을 정리
위키독스의 ‘생성모델 입문서‘를 바탕으로 공부한 내용을 정리
1. 생성모델이란?
- 데이터를 통해 특정 데이터에 맞는 분포를 구할 수 있다. 이 데이터로 새로운 데이터를 생성할 수 있는 것이다.
- 강아지 이미지 데이터셋 $D$를 바탕으로 강아지에 대한 특정들을 표현하는 분포 $p_{data}(x)$를 구할 수 있는 것이다.
- 이 분포를 바탕으로 확률이 가장 높은 데이터를 통해 새로운 강아지 이미지를 생성할 수 있는 것이다.
- 하지만 실제로 “실제 강아지 이미지 데이터셋의 분포”를 구하는 것은 어렵고 복잡하기 때문에, 이와 근사한 $p_{\theta}(x)$를 구하여 새로운 이미지를 생성하는 것이다.
즉, 생성모델 학습은 : $p_{\theta}$의 파라미터 $\theta$를 업데이트하여 실제 $p_{data}(x)$와 유사하도록 하고, 생성된 데이터 $\hat{x}$가 실제 $x$와 유사하도록 하는 것.
2. 생성모델과 판별모델
- 입력 데이터 $X$에 알맞는 $Y$를 예측하는 decision boundary(결정 경계)를 학습한다. 즉, $X$와 $Y$의 관계를 학습해서 이미지를 가장 잘 분류하는 decision boundary를 수정하는 것
- 전형적인 classification model과 유사한 것 같다.
직접적으로 $X$의 특정과 구조를 깊이 이해하고자 하지 않기 때문에 새로운 데이터를 생성할 수 없다.
- 이는 판별모델이 조건부 확률의 형태를 갖고 있기 때문이다.
- $X$가 주어졌을 때 $Y$의 발생확률을 계산
- 분포를 직접적으로 구하는 생성 모델과는 다르게 이미지의 특정만으로 “분류”시키려고 한다.
생성 모델은 확률 분포를 구하는 것
판별 모델은 조건부 확률을 계산하는 것
- 이 사진에서 생성모델과 판별모델의 차이를 표현해주는 좋은 표현이 있는데 : Estimates the $P(X\vert Y)$ to find $P(Y\vert X)$ using the Bayes’ Rule.
- Y, 즉 답이 주어졌을 때 $X$가 나올 확률을 먼저 구한 다음에 이를 이용해서 $P(Y\vert X)$를 구하는 것
- 또한 판별모델에 경우 class 중 하나를 무조건 골라야 하지만, 생성모델에 곁우 만약 threshold(임계점)을 넘기지 않는다면 그 무엇으로도 분류하지 않을 수 있다.
- 이는 당연한게, 판별모델은 경계를 설정해주기 때문에 무조건 어떤 구역에 속할 수 밖에 없지만, 생성 모델은 범위를 설정해주기 때문에, 해당 범위 밖에도 존재할 수 있는 것이다.
3. 생성모델의 목적
- 생성모델은 \(\theta\)를 업데이트하면서 X에 대한 확률 분포에 가까운 분포 $p_{\theta}(x)$를 학습한다.
- 이를 학습하기 위해 모델 알고리즘이 만족해야하는 세 가지 특징 : Generation, Representation Learning, Density Estimation
- Generation : 생성에 대한 것. 생성된 이미지가 실제 이미지와 유사해야한다.
- Representation Learning : 학습된 분포가 실제 데이터셋을 대표할 수 있을 반큼 데이터셋의 특징을 잘 학습해야한다.
- Density Estimation : 정확도/유사도라고 표현할 수 있다 (엄밀히는 아님). 해당 데이터가 “강아지”와 유사할 수록 더 높은 $p_{\theta}(\tilde{x})$를 가져야한다. 각 데이터의 probability를 구하는 것.
4. 생성모델의 아키텍쳐
아키텍쳐 : 학습 목표를 설정하고 이를 최적화하는 과정
1. Model Family
- 데이터셋의 유형과 테스크 목적에 따라 달라지며, $p_{\theta}(x)$가 존재할 수 있는 boundary를 의미함
- 신경망 구조
2. 학습 목표 (learning objective)
- 랜덤하게 초기화되어있는 $p_{\theta}(x)$를 $p_{data}(x)$와 가장 유사하게 되는 $\theta^*$가 되도록 유도
- loss function을 최소화하는 것. Cross Entropy Loss로 구현된다.
3. 최적화 (optimization)
- $\theta_0$이 최적의 파라미터 $\theta^*$가 되기까지의 파라미터를 업데이트하며 학습하는 과정
- 랜덤하게 설정한 파라미터를 step으로 업데이트 하는 과정. optimizer로 구현된다.
5. 생성모델의 분류체계
Ian GoodFellow의 분류 체계도를 따라 크게 세 가지 생성모델 알고리즘이 있다 : (1) 자기회귀모형 Autoregressive, (2) 변분 오토인코더 Variational Autoencoders, (3) 적대적 생성 신경망 Generative Adversarial Networks
1. Explicit and Tractable Density
- 확률 분포가 생성 모델을 통해 직접적으로 계산 가능한 분포일 때
- Autoregressive 모델이 (ex. Normalizing Flow) 여기에 해당됨
2. Explicit and Approximate Density
- 확률 분포가 생성 모델을 통해 직접적으로 나타낼 수는 있지만 계산 할 수 없을 때
- 잠재변수 모형 (Latent Variable Model)과 변분 오토인코더가 (VAE) 해당됨
3. Implicit Density
- $p_{\theta}(x)$를 구한 다음, $\hat{x}$을 추출하는 과정을 disentangle하여 데이터를 생성하는 과정을 중점적으로 생성 데이터의 품질을 높이는 방식
- 적대적 생성 신경망 (GAN)이 해당됨
This post is licensed under CC BY 4.0 by the author.