출처: 미술관에 GAN 딥러닝
1. 1 생성 모델링
- 확률 모델의 관점으로 보면 생성 모델은 데이터 셋을 생성하는 방법을 기술한 것
- 이 모델에서 샘플링하면 새로운 데이터를 생성할 수 있다.
- 생성 모델은 확률적이어야 한다.
(예)
말 이미지를 생성하는 모델을 만든다고 하자.
이 모델은 말의 외관을 결정하는 일반적인 규칙을 학습해야함
이 규칙은 확률적이어야 한다 → 모델이 데이터셋에 있는 모든 픽셀의 평균값을 구하는 것처럼 고정된 계산만 수행한다면, 매번 동일한 값을 출력하기 때문에 생성 모델이 될 수 없기 때문이다
→ 이 모델은 생성되는 개별 샘플에 영향을 미칠 수 있는 확률적(랜덤한) 요소를 포함해야한다
결과적으로, 원본 training set에 있을 것 같지만, 완전히 새롭고 다른 샘플을 생성해야한다!
생성 모델링과 판별 모델링
판별 모델링
- supervised learning
- 이때, 레이블링된 데이터셋을 이용해 입력과 출력을 매핑하는 함수를 "학습"한다고 한다.
예. 반 고흐가 그렸는지 예측하는 판별 모델이 있다고 가정하자.
training dataset을 가지고 훈련을 한 판별 모델은, 한개의 샘플에 대해 반고흐의 그림인지(label=0) 아닌지(label=1)를 확률 값으로 예측한다.
판별 모델링은 샘플 x가 주어졌을 때, 레이블 y의 확률 p(y|x)를 estimate한다
(→ 샘플 x가 범주 y에 속할 확률을 estimate한다)
생성 모델링
- unsupervised learning
- 그러나 개별 클래스의 샘플을 생성하는 방법을 학습하기 위해, 레이블링된 데이터셋에도 적용 가능하다
생성 모델링은 샘플 x의 관측 확률 p(x)를 estimate한다
데이터셋이 레이블을 가지고 있다면, 확률 p(x|y)를 추정하는 생성모델을 만들 수 있다
(→ 샘플의 레이블에는 관심이 없고, 샘플을 발견할 확률을 추정한다)
- 목적: 원본 훈련 데이터셋에 속할 가능성이 높은 픽셀을 출력하는 생성모델을 훈련
생성모델이 중요한 이유
- 이론적인 관점에서, 데이터가 생성된 방법을 완전히 이해해야한다
- 출력가능한 공간은 매우 고차원이고, 데이터셋에 속할 수 있는 샘플은 비교적 적기 때문에, 풀기 더 어려운 문제이다.
- 강화학습에서, 에이전트가 생성모델을 통해 환경을 시뮬레이션 할 수 있다
- 인간같은 머신을 만들기 위해서!
생성 모델링 프레임워크
- 샘플 데이터셋 X를 가지고 있다
- 이 샘플은 알려지지 않은 어떤 분포(Pdata)로 생성되었다
- 생성 모델 Pmodel은 이 Pdata를 흉내내려고 한다. 이 목표를 달설하면 Pmodel에서 샘플링하여 Pdata에서 뽑은 것 같은 샘플을 생성할 수 있다
- Pmodel이 다음과 같다면 좋다
- 규칙1: Pdata에서 뽑은 것 같은 샘플을 생성할 수 있다
- 규칙2: X에 있는 샘플과 다른 샘플을 생성할 수 있다. 다른 말로 하면 이 모델이 이미 본 샘플을 단순하게 재생산하지 않는다
1. 2 확률적 생성모델
-
표본 공간
예: 세계 지도에서 위도와 경도 x=(x1,x2)로 이루어진 모든 포인트로 구성된다
-
확률밀도함수 p(x)
- 표본 공간의 포인트 x를 0과 1사이의 숫자에 매핑하는 함수
- 표본 공간의 모든 포인트에 대한 확률 밀도 함수의 합은 1이 되어야 잘 정의된 확률 분포이다
예: 세계 지도 예제에서 모델의 pdf는 주황색 상자 바깥에서는 0을 출력하고, 상자 안에서는 어떤 상수값을 출력한다
-
모수모델 (parametric model) pθ(x)
- 한정된 개수의 파라미터 θ를 사용하여 묘사하는 확률 밀도 함수의 한 종류
-
최대가능도추정