Generative Models (생성모델)
실존하지는 않은데 있을법한 이미지를 생성할 수 있는 모델을 생성모델이라 한다.
- A statistical model of the joint probability distribution
- An architecture to generate new data instances
"What I cannot create I do not understand" -Richard Feynman-
Generative model을 배운다는 것
'개(dog)'의 이미지들이 주어졌다고 가정하자.
우리는 어떤 이미지를 보고 '개(dog)'를 구별하는 학습을 하고 싶다고 하자.
여러 이미지중에서 '개'의 이미지일 확률 분포를 p(x)를 알고자 할 때
- Generation: 표본집단에서 1개의 이미지를 샘플링(sampling)을 했을 때 $x_{new}$ ~ p(x)라 쓸 수 있다. $x_{new}$는 샘플링에서 뽑은 이미지를 나타내며 p(x)는 $x_{new}$ = dog 일 확률을 나타낸다.
- X가 '개(dog)'와 유사할 수록 p(x)의 값은 1에 가까워야하고 아닌 경우 p(x)는 0에 가까워야한다.
- 비지도 학습(Unsupervised learning)이 위와 같은 학습을 말하는 대표적인 학습이다. 귀, 꼬리 등 여러 물체의 특징을 학습(feature learning)을 한다음, 비슷한 것끼리 클러스터링(clustering) 하는 것이다.
P(X)의 확률분포는 이산확률분포로 베르누이 분포, 카테고리 분포로 나타낼 수 있다.
베르누이 분포(Bernoulli distribution)
- D = {Dog, ~Dog}
- P($X_{new}$ = Dog) = p, Then P($X_{new}$ = ~Dog) = 1- p
- X~ Ber(p)라고 확률분포를 작성할 수 있다.
카테고리 분포(Categorical distribution)
- D = {Dog, Fox, Cat, ... , Rabbit} (m가지)
- P($X_{new}$ = i) = $p_{i}$, such that $\sum_{i \in D} p_{i} $ = 1
- X~ Cat($p_{Dog}$, $p_{Fox}$, .... $p_{Rabbit}$)
파라미터 개수(#Parameter) 구하기
예시)
단일 픽셀로 구성된 RGB 결합확률분포 모델링을 보자
- (r, g, b) ~ p(R, G, B)
- 나올 수 있는 사건의 개수는 256 $\times$ 256 $\times$ 256 가지이다. (이는 R,G,B가 독립사건이라는 것때문에 이렇게 계산되는 것이다.)
- 필요한 파라미터 개수는 256 $\times$ 256 $\times$ 256 -1 이다. (1을 빼는 이유는 하나는 1 - $\sum$ P(R,G,B) 로 표현할 수 있다.)
독립 사건의 구조
$X_{1}, X_{2}, ... X_{n}$이 n binary pixels (a binary image)라고 가정하자.
$X_{1}, X_{2}, ... X_{n}$이 독립일 때 $p(x_{1}, ... x_{n}) = p(x_{1})p(x_{2}) ... p(x_{n})$ 으로 표현 가능하다.
나올 수 있는 사건의 개수는 $2^{n}$가지이다.
그러나 파라미터 개수는 n개면 충분하다. 이유는 간단하다. $p(x_{1}, ... x_{n}) = p(x_{1})p(x_{2}) ... p(x_{n})$ 로 표현 가능하기 때문에 $p(x_{1})$ 은 $p(x_{1})$ 와 1-$p(x_{1})$ 두 개 중 하나가 올 수 있는데 $p(x_{1})$ 파라미터로 모두 표현 가능하고 $p(x_{2})$ 또한 $p(x_{2})$와 1-$p(x_{2})$ 로 사건 두 가지를 모두 $p(x_{2})$ 파라미터로 표현할 수 있다.
이와 같은 사건이 $x_{n}$까지 모두 n개이며 파라미터는 n개면 충분하다.
파라미터의 개수가 줄어드는 것은 매우 좋은 현상이다. 하지만 이 독립 가정은 매우 강한 가정이기 때문에 주의해야한다.
※ 참고: 조건부 독립(Conditional Independence)일 때
$$ p(x_{1}, x_{2}, ... 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})$$
- $p(x_{1})$ : 1개 파라미터
- $p(x_{2}|x_{1})$ : 2개 파라미터 ($p(x_{2}|x_{1}$=0) 과 $p(x_{2}|x_{1}$=1))
- $p(x_{3}|x_{1}, x_{2})$ : 4개 파라미터
따라서 모든 파라미터의 개수를 합치면 1 + 2 + $2^{2}$ + ... + $2^{n-1}$ = $2^{n}$ - 1
교수님께서는 Parameter은 작년까지만 해도 적을수록 좋은 모델이라고 생각했지만 Scaling Laws for Neural Language Models 을 보고 Parameter의 개수가 많더라도 굉장히 좋은 모델이 될 수 있다는 것을 인정하게 되었다고 하셨다.
Auto - regressive Model (자기 회귀 모형)
784개의 binary pixels라고 가정하자.
p(x) = p($x_{1}$, ... $x_{784}$) over x $\in$ $\big\{{0,1}\big\}^{784}$
p($x_{1:784}$) = p($x_{1}$)p($x_{2}|x_{1}$)p($x_{2}|x_{1:2}$)...
이것을 autoregressive model 이라고 불린다.
Latent Variable Models
D.Kingma, "Variational Inference and Deep Learning: A New Synthesis." Ph.D.Thesis
Question:
autoencoder은 generative model 인가? : 아니다!
AutoEncoder(AE)
AutoEncoder은 대표적인 비지도학습 신경망 모델이다.
Hidden Layer의 앞부분을 '인코더(Encoder)', 뒷부분을 '디코더(Decoder)'라고 한다. Input 데이터를 Hidden Layer로 인코딩(압축)을 한 후 다시 원래 Input Data로 디코딩(복원)하는 개념이다.
AutoEncoder(AE)를 활용하면 Input 데이터를 Latent Space에 압축을 시킨 후 이 값을 통해 새로운 Feature로 사용할 수 있다.
AutoEncoder의 학습 과정은 데이터를 압축시킨 후 원래의 데이터로 잘 복원하도록 학습시키는 것으로 이해할 수 있다. 즉 자기자신을 잘 복원하는 것을 목표로 하는 모델이기 때문에 이는 Generative model이라 할 수 없다.
Variational Auto encoder은 generative model인가?: 맞다.
Variational Auto Encoder(VAE)
Variational Auto encoder은 Posterior distribution p(z|x)를 찾는 것이 목적인데 Variational distribution q(z|x)은 p(z|x)의 근삿값으로 차가 최소화 되도록 찾는 것이다.
GAN(Generative Adversarial Network)
두 플레이어 generator과 discriminator과의 관계에서
discriminator는
대로 행동하며 optimal discriminator은
generator은
대로 행동한다.
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/034.gif)
'AI-Tech 부스트캠프' 카테고리의 다른 글
2021_08_16_(월) (0) | 2021.08.16 |
---|---|
2021_08_14_(토) (0) | 2021.08.14 |
[DL] Recurrent Neural Networks(RNN), Transformer (0) | 2021.08.12 |
[DL] Convolutional Neural Networks (CNN) (0) | 2021.08.12 |
[DL] 최적화 (Optimization) (0) | 2021.08.10 |
댓글