강아지의 이미지들이 주어졌다고 가정했을 때, 확률 분포 p(x)에 대하여 아래와 같은 것을 학습하는 것이 목표이다.
Generation xnew ~ p(x)로 sampling했을 때, 강아지같아 보여야한다.
Density Estimation
x가 충분히 강아지같다면, p(x)가 충분히 높아야한다.
- Explicit Model이라고도 한다.
- 입력값에 대한 확률값을 얻을 수 있는 모델
Unsupervised representation learning
강아지가 꼬리, 귀, 등의 특징이 있다고 생각한다.(Feature Learning)
그렇다면, p(x)를 어떻게 구해야할까?
우리는 이산 확률 분포에서, Bernoulli와 Categorical이 있다는 사실을 알고 있다. 이를 바탕으로 RGB벡터에 대한 Joint Distribution을 구해보자.
(r,g,b) ~ p(R,G,B):256×256×256−1
위의 경우, 하나의 RGB픽셀에 대해서 상당히 많은 수의 파라미터가 필요하다는 것을 알 수 있다.
그렇다면 Binary Pixel이라고 생각해본다면, 전체 데이터가 n개라고 가정할 때, 우리는 parameter의 수를 2n−1이라고 생각할 수 있다.
대부분의 딥러닝이 그렇지만, 이렇게 파라미터의 수가 너무 커지는 것은 문제를 일으킬 가능성이 높아 이를 줄일 수 있는 방법이 필요하다.
그래서 n개의 픽셀들이 모두 independent하다고 생각해보자. 가능한 possible state는 2n이지만 모두 독립적이기 때문에 필요한 parameter수는 n개이다.(Very Strong Assumption) 그러나 이 방법은 너무 모델의 표현력이 떨어진다.
Hence, by leveraging the Markov assumption, we get exponential reduction on the number of parameters.
Auto-regressive models leverage this conditional independency.
Auto Regressive Model
기본적인 Auto Regressive Model은 현재 정보가 이전 정보에 Dependent한 Joint Distribution using Chain Rule 이다.(Markov 가정이 있든, 아무런 가정이 없든)
따라서, 우리는 Ordering이 필요하다. 순서를 매기는 방법이나 Conditional Independence 정보에 따라서 방법론이 달라질 수 있다.
NADE
i번째 픽셀을 1:i-1픽셀에 Dependent하게 하는 형식
p(xi∣x1:i−1)=σ(αihi+bi) where hi=σ(W<ix1:i−1+c)
NADE is an explicit model that can compute the density of the given inputs.
Density를 구한다는 것 :
확률 분포를 구한다
Explicit 모델이다
Suppose we have a binary image with 784 binary pixels, {x1,x2,...,x784}. Then, the joint probability is computed by p(x1,...,x784)=p(x1)p(x2∣x1)⋯p(x784∣x1:783)
where each conditional probability p(xi∣x1:i−1) is computed independently.
In case of modeling continuous random variables, a mixture of Gaussian can be used.
Pixel RNN
Row LSTM
Diagonal BiLSTM
Latent Gradient Models
Autoencoder는 Generative model인가?
Variational Auto-Encoder
Variational Inference(VI)
- 목적은 Variational Distribution이 Posterior Distribution과 가장 잘 Match하도록 Optimize하는 것이다.
Variational Distribution : pϕ(z∣x)
Posterior Distribution : pθ(z∣x)
- 관측 데이터가 내가 관심있어하는 Random Variable일 확률 분포
따라서, Posterior Distribution과의 KL-Divergence가 최소가 되게 하는 Variational Distribution을 찾아야 한다.
Posterior를 알 수 없는데 어떻게 Variational을 최대한 가깝게 만들 수 있을까? 마치 Target값을 모르는데 Loss값을 구하라는 것과 같이 느껴진다.
이 문제를 해결하는 것이 ELBO이다. 수식은 아래와 같다.
궁극적인 목표는, Vari와 Post의 KL-DIV를 줄이는 것인데, 아래의 식은 Exact하기 때문에, ELBO(Evidence of Lower Bound)를 Maximize하는 것으로 KL-DIV를 줄이는 효과를 볼 수 있다.
궁극적으로 우리는 관측 x에 대해 latent space z를 찾는 것이 목적이다. 우리는 posterior값을 모르기 때문에 우리는 VI의 ELBO 기법을 활용하여 KL-DIV를 최소화하는 효과를 만들어낼 수 있는 Implicit Generative 모델이다.
어떤 입력이 주어지고, Latent space로 보내서 다시 Reconstruction term으로 만들어지는데, Latent된 Prior Distribution으로 z를 샘플링을 하고, 그 뒤 Decoder를 통해 나오는 이미지들이 Generation Result라고 보는 것이다.