제약조건으로 ordering (e.g. raster scan order)이 필요하게 된다.
- NADE: Neural Autoregressive Density Estimator
Autoregressive Model을 딥러닝에 가장 먼저 활용했던 논문.
* i번째 픽셀의 확률분포는?
NADE는 단순히 무언가를 생성할 수 있을 뿐만 아니라 어떤 새로운 입력이 주어졌을 때, 그 입력이 얼마나 모델링하는 것에 비슷한지의 density를 구할 수 있다는 explicit model이다
* 어떻게 density를 구할 수 있는가? 앞선 예제에서 joint probability를 conditional distribution의 곱으로 나타낼 수 있다. 각각의 항을 다 구해서 곱하는 방식으로 joint distribution을 구할 수 있게 된다.
해당 방법론의 장점 중 하나는discrete 뿐만 아니라continuous random variables도 고려할 수 있다는 점이다.
< 장점 >
1) sampling이 쉽다.
2) explicit model이 많다.
3) joint distribution을 구할 때, 각각의 dimension 별로 쪼개서 구할 때 병렬화할 수 있기 때문에 계산하는 건 빠르다.
4) continuous variable도 고려할 수 있다.
< 단점 >
1) sequence하게 진행되서 생성이 느리다.
2. Generative Models 2
Maximum Likelihood Learning
Likelihood(우도) : 파라미터가 주어졌을 때, 이 데이터가 얼마나 그럴듯한지를 나타내는 것.
이를 높이는 방향으로 파라미터를 학습하는 모델을 의미한다.
강아지들의 이미지가 주어졌을 때, GM은 강아지들의 이미지를 생성해내는 분포가 존재한다고 가정하면, 모델링하고 학습할 수 있는 approximate density 가 있을 때, underline general model과 학습할 수 있는 density와의 거리를 최소화 하는 방향으로 density 를 최적화 시킨다. → best-approximating density
학습할 수 있는 분포들의 경우의 수를 model family 라고 한다.
Q. 어떤 기준으로 근사의 좋음을 표현하는가?
how can we evaluate the goodness of the approximation?
KL-divergence
근사적인 두 모델의 거리를 의미함
→ \(logP_θ(x)\)를 최대화하는 것은 KL-divergence를 최소화 하는 것과 동일하다는 것을 알 수 있다.
그래서 Likelihood를 최대화 하는 방법으로 GM을 학습시키겠다고 하여 Maximum Likelihood Learning이라 한다.
이는 GM을 푸는 쉬운 방법 중 하나일 뿐이다.
\(P_{data}\)를 모르기 때문에, empirical log-likelihood로 근사를 한다.
D개의 데이터셋을 만들어 놓고, 이 데이터셋 D가 \(P_{data}\)에서 나왔다고 가정했을 때, \(P_θ(x)\)를 학습하겠다고 보는 것.
empirical l og-likelihood로 근사
Maximum likelihood learning은 아래와 같이 D개의 데이터셋에 대해서만 \(P_θ(x)\)를 높아지도록 하는 것이다.
Maximum likelihood learning
아래의 수식은 단점으로 데이터수가 많지 않을때는 정확하지 않다는 것을 보여준다.
보통 maximum likelihood learning은 underfitting에 더 취약하게 된다.
모든 가능한 확률분포를 사용할 수 없기 때문이다.
일반적으로 최적화하기 위해 gradient descent를 사용하게 되고, 미분 가능한 log를 사용해야 하기때문에spherical Gaussians 을 사용한다. 그래서 유의미한 분포를 사용할 수 없다.
- similarity를 위한 다른 방법
KL-divergence leads to maximum likelihood learning or Variational Autoencoder (VAE).
Jensen-Shannon divergence leads to Generative Adversarial Network (GAN).
Wasserstein distance leads to Wasserstein Autoencoder (WAE) or Adversarial Autoencoder (AAE).
- Empirical Risk Minimization (ERM)
maximum likelihood learning을 할 때, empirical을 이용하는 것을 ERM이라 한다.
그러나 ERM은 한정된 데이터에서만 학습하기 때문에 overfitting이 발생할 수 있다.
* 극단적인 경우 : 학습 데이터를 모두 외워버리는 경우
그래서 overfitting을 막기 위해서 일반적으로 hypothesis space를 줄이게 된다.
하지만, 모델 자체 성능을 한계를 짓는것이기 때문에 전체적인 성능이 떨어질 수 있다.
Latent Variable Models
autoencoder : 입력에 encoder를 거쳐서 Latent vector를 만들고, decoder를 거쳐서 다시 원래 입력으로 복원하는 것.
Q. autoencoder은 generative model일까? NO!
autoencoder은 그냥 모델이다.
- Variational Autoencoder
Variational Autoencoder은 generative model이다.
objective는 아래 식과 같이 매우 간단하다!
x라는 입력이 모르지만 \(P_θ(x)\)에서 나왔다고 가정한다면, x들에 대해서 \(P_θ(x)\)를 높이는 maximum likelihood learning을 한다.
그런데, \(P_θ(x)\)를 많은 것을 사용할 수 없었다. 즉, 표현력이 높지 않은 분포만은 사용할 수 있었기 때문에 underfitting의 문제가 일어났었다. 이런 것을 해결하기 위해서 Variational inference (VI) 테크닉을 사용하게 된다.
* Variational inference (VI)
generative model을 학습하기 위해서만 등장하지는 않고, 일반적인 방법론이다. 만약, 내가 찾고자하는 분포가 있지만, 이 분포가 너무 복잡해서 내가 모델링할 수 없을 때 내가 찾을 수 있는 간단한 분포로 근사를 한다!
ex) 일반적으로 베이지안(Bayesian Inference)에서는 Posterior distribution를 찾고싶을 때(이는 너무 복잡해서 계산X) 상대적으로 간단한 Variational distribution를 도입해서 이 분포를 Posterior distribution로 비슷하게 만드는 것이다.
이를 쉽게 근사할 수 있게 해주는 것이 Variational inference 이다.
구체적으로, variational distribution 혹은 근사하는 분포가 우리의 true posterior가 KL divergence 관점에서 최소화하도록 최적화하는 것을 많이 활용한다!
Variational Autoencoder
Dataset이 살고 있는 분포는 복잡한 x-space (Narrow)에 있고, Prior distribution이 살고 있는 분포는 좀 더 복잡한 z-space (latent space) 가 있을 때, VA는 Encoder와 Decoder의 2가지 네트워크를 학습한다.
z를 샘플링했을 때, 학습된 decoder를 통과해서 나온 어떤 x가 원래 data에 있는 이미지들 혹은 새로운 data들과 비슷하다.
우리 목표는 Encoder를 학습하는 것이 variational distribution이다.
수식이 ELBO와 Variational Gab으로 나눠지게 된다.
우리의 목적은 ELBO를 최대화 시키는 것!
Variational Gab = Posterior 는 계산할 수 없다. 수식으로 풀어낼 수 없음. 이를 건드릴 수 없기 때문에 무시하고 ELBO를 최대화함으로써 Variational Gab을 최소화 시키는 것이다. 무시할 수 있는 이유는 KL divergence가 양수이기 때문에 가능하다.
* ELBO = Evidence Lower Bound
ELBO를 뜯어보면 Reconstruction Term과 Prior Fitting Term으로 나뉘게 된다.
Reconstruction Term은 encoder와 decoder를 모두 통과한 것으로 볼 수 있고, 이를 높이는게 Reconstruction을 잘하게 되는 것과 같은 의미가 된다. (This term minimizes the reconstruction loss of an auto-encoder.)
Prior Fitting Term은 encoder에서 나오는 분포가 미리 정해놓은 prior 사이의 거리를 최소화 (This term enforces the latent distribution to be similar to the prior distribution. )
<단점>
1) intractable model : 근사를 통해 최적화하기 때문에 여기서 나온 encoder, decoder를 확률분포로 보기 어려움
2) Prior Fitting Term도 미분 가능해야 한다. 대부분 경우에 가우시안만 사용한다.
가우시안 적용
Generative Adversarial Networks
Discriminator(경찰)과 Generator(위조범) 라는 2개의 네트워크를 두게 되고,
Discriminator(경찰)는 생성된 이미지가 real(들고있는데이터)인지 fake(generator가 생성한것)인지 구분하는 역할을 한다.
Generator(위조범)는 Discriminator(경찰)를 속이는 역할만 한다. G와 D는 서로를 적대시할 것이다..! → 여기서 Adversarial 이 나옴!