생성 모델링

jj·2021년 2월 26일
0

출처: 미술관에 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가 가질 수 있는 모든 값의 집합

    예: 세계 지도에서 위도와 경도 x=(x1,x2)로 이루어진 모든 포인트로 구성된다

  • 확률밀도함수 p(x)

    • 표본 공간의 포인트 x를 0과 1사이의 숫자에 매핑하는 함수
    • 표본 공간의 모든 포인트에 대한 확률 밀도 함수의 합은 1이 되어야 잘 정의된 확률 분포이다

    예: 세계 지도 예제에서 모델의 pdf는 주황색 상자 바깥에서는 0을 출력하고, 상자 안에서는 어떤 상수값을 출력한다

  • 모수모델 (parametric model) pθ(x)

    • 한정된 개수의 파라미터 θ를 사용하여 묘사하는 확률 밀도 함수의 한 종류
  • 최대가능도추정

profile
재밌는게 재밌는거다

0개의 댓글