본문 바로가기

취업준비/인공지능

[AI Tech] 6주차 28-1차시 Generative Models 1

28차시: Generative Model

28-1. Generative Models 1

1. Introduction

Richard Feynman

생성 모델을 학습하는 것은 무엇을 의미하는가?

 

2. Learning a Generative Model

강아지 사진이 주어졌다고 가정하자.

우리는 확률 분포 p(x)를 학습하고 싶다.

생성: x_new ~p(x)를 샘플 한다면, x_new는 강아지처럼 보여야 한다.

확률 추정: p(x)는 x가 강아지처럼 생겼다면 높아야 하고 그렇지 않은 경우 낮아야 한다.

*explicit model이라고도 한다.

Unsupervised representation learning: 이 이미지들의 공통점을 학습해야한다.

이때 p(x)를 어떻게 표현될까?

 

3. Basic Discrete Distributions

Bernoulli distribution: (앞면, 뒷면만 있는) 동전 뒤집기

D = {Heads, Tails}

특히 P(X=Heads) = p이면 P(X=Tails)=1-p이다.

표기: X ~ Ber(p)

Categorical distribution: (biased) m-sided dice

D = {1,..., m}

특히 1부터 m까지의 p_i의 합이 1일 때, P(Y=i)=p_i이다.

표기: Y ~ Cat(p_1,..., p_m)

 

4. Example

Modeling an RGB joint distribution (of a single pixel)

(r, g, b) ~p(R, G, B)

No. of cases: 256 x 256 x 256

No. of parameters: 256 x 256 x 256 - 1

[ 예시 ]

X_1,..., X_n의 n개의 2진 픽셀(2진 이미지)이 있다고 가정하자.

가능한 상태의 개수는 2 x 2 x... x 2 = 2^n이다.

p(x_1,..., x_n)으로부터 샘플링 하여 이미지를 생성한다.

p(x_1, ..., x_n)을 특정하기 위해 파라미터는 몇 개 필요한가? 2^n - 1

 

5. Structure Through Independence

만약 X_1,.., X_n이 독립적이라면, p(x_1,..., x_n) = p(x_1) p(x_2)... p(x_n)이다.

가능한 상태는 2^n이다.

p(x_1,..., x_n)을 특정하기 위해서 n개의 파라미터가 필요하다

2^n개의 엔트리가 오직 n개의 숫자들로 표현할 수 있다. 하지만 독립적으로 추정하는 것은 유용한 분산을 모델링하기에는 너무 세다.

 

6. Conditional Independence

세 가지 중요한 규칙

1) Chain Rule: p(x_1, ... , x_n) = p(x_1) p(x_2|x_1) p(x_3|x_1, x_2).... p(x_n|x_1,..., x_(n-1))

2) Bayes' Rule: p(x|y) = p(x, y)/p(y) = p(y|x) p(x) / p(y)

3) Conditional independence:

Conditional independence

얼마나 많은 파라미터가 필요한가?

달라진 게 없기 때문에 Fully dependent model과 같은 수의 파라미터가 필요할 것이다.

p(x_1): 1 parameter

p(x_2 | x_1): 2 parameters (one per p(x_2|x_1=0) and one per p(x_2 | x_1 = 1))

p(x_3 | x_1, x_2): 4 parameters

따라서, 1 + 2+ 2^2 +... + 2^(n-1) = 2^n - 1이고, 위의 것과 같은 것을 확인할 수 있다.

이제, X_(i+1)는 X_1,..., X_(i-1) | X_i, 즉 X_(i+1)이 X_i에만 의존적이라고 가정(Markov assumption)하자.

그러면

Chain Rule w/ Markov assumption

이때 파라미터는 2n-1개가 필요하다.

따라서, Markov assumption에 따라, 우리는 파라미터의 개수가 기하급수적으로 감소함을 알 수 있다.

이를 Auto-regressive model이라고 하고 conditional independency를 잘 따른다고 한다.

 

7. Auto-regressive model

28 x 28개의 2진 픽셀을 가지고 있다고 가정하자.

목표는 p(x) = p(x_1,..., x_784)를 학습하는 것이다.(단, x는 {0,1}^784의 요소이다.)

어떻게 p(x)를 파라미터화 시킬까?

joint distribution을 factor 하기 위해 chain rule를 사용하자.

p(x_1:74) = p(x_1) p(x_2|x_1) p(x_3|x_1:2)...

이것을 autoregressive model이라고 한다.

모든 랜덤 변수에 대해 우리는 정렬해야 함을 유의하자.

 

8. NADE: Neural Autoregressive Density Estimator

i-번째 픽셀의 확률 분포는

이다.

NADE는 주어진 입력의 밀도를 계산할 수 있는 explicit model이다.

어떻게 주어진 이미지에서 밀도를 계산할 수 있을까?

- 784개의 이진 픽셀이 있다고 가정하자.

이때 joint probability는

에 의해 계산된다. (여기서 각 조건부 확률은 독립적으로 계산된다.)

연속적인 랜덤 변수를 모델링하는 경우, 가우시안의 혼합 버전을 사용한다.

 

9. Pixel RNN

Auto-regressive model을 정의하기 위해 RNNs를 사용한다.

예를 들어, n x n RGB 이미지가 있을 때,

여기에 chain을 정렬하는 방식에 따라 Pixel RNN에서의 모델 아키텍처가 두 가지 있다.

- Row LSTM: 위쪽 정보들을 활용한다.

- Diagonal BiLSTM: 이전 정보들을 다 활용한다.

 

 

 

 

 

 

©️NAVER Connect Foundation. All Rights Reserved.