28차시: Generative Model
28-1. Generative Models 1
1. Introduction
생성 모델을 학습하는 것은 무엇을 의미하는가?
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:
얼마나 많은 파라미터가 필요한가?
달라진 게 없기 때문에 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)하자.
그러면
이때 파라미터는 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.
'취업준비 > 인공지능' 카테고리의 다른 글
[AI Tech] 6주차 28-3차시 클로바 스튜디오 연습 (0) | 2024.02.23 |
---|---|
[AI Tech] 6주차 28-2차시 Generative Models 2 (0) | 2024.02.23 |
[AI Tech] 6주차 27-4차시 Quiz 11 (0) | 2024.02.23 |
[AI Tech] 6주차 27-3차시 RNN 연습 (0) | 2024.02.23 |
[AI Tech] 6주차 27-2차시 Sequential Models - Transformer (0) | 2024.02.23 |