Deep learning

[딥러닝] generative model : auto regressive(AR) model, VAE

공돼 2022. 7. 12. 13:28

generative model 은 classification model과 달리 정답이 명확하지 않은데 어떤 것을 기준으로 학습하게 되나 ?

학습의 기준은 object function으로 표현된다. generative model의 objective function은 true data distribution과 generated distribution의 차이이다. 두 distribution 간 차이를 구하는 방법은 여러가지가 있지만, KL divergence를 사용했다.

KL divergence 를 최소만드는 식을 풀다보면  - cross entropy loss를 최소화 하는 식이 유도되고,여기서 true data distribution p*를 모르니, true data distribution에서 sample되었다고 가정한 train data에 대해서 - cross entropy loss를 최소화하는 것으로 바꾼다. train data수가 무한대가 되면 train data가 true data 되고, 이에 따라 구한 distribution도 true data distribution이 된다. 여기서 -를 빼면 likelihood 를 최대화하는 maximum likelihood estimation 문제로 볼 수 있게 된다. 

정리하면 학습데이터로 부터 관찰되는 특징들의 확률들이 점점 높아지는 것으로 볼 수 있으며, 당연히 편향될 가능성도 생긴다.

 

이러한 maximum likelihood를 풀어내고 있는 generative model은 2 종류가 있다. 

 

더 익숙한 auto regressive model을 먼저 설명한다. 

 

auto regressive model(AR)

위에서 generative model의 object function을 설명하였는데, 우리가 사용하는 대부분의 실생활 데이터는 high-dimension data 인데, high-dimension data들에 대해서는 joint distribution을 추정해야한다. 다양한 feature들이 동시에 나올 확률도 매우드물기 때문에 joint distribution을 한 번에 추정하는 것은 어려운 일이다.

그래서 이를 극복하기위해  joint probability를 chain rule로 factorization 하면 하나 하나의 feature들의 probabilty를 추정하는 문제로 바뀐다(maximizing factorized likelihood). 이를 사용하는 것이 AR이다.  따라서 AR은 데이터를 순차적으로 하나하나 처리하는 모델이 된다.

RNN 계열은 순차적으로 입출력을 처리하는 것이 당연하게 느껴지므로 AR과 바로 연결이된다. RNN 계열 뿐아니라 transformer도 AR의 일종으로 입출력을 동시에 처리(training time) 하도록 처리하였지만, 이러한 특성 때문에 masked attention을 사용한다. 

 

VAE

VAE는 데이터의 모든 정보가 유용한 정보가 아님에서 시작한다. 따라서 주어진 데이터에서 필요없는 정보들을 날려 주요 정보로만 표현하고자 한다. 이를 latent variable이라고 한다. latent variable은 사람이 정할수도있고, interpret과 manipulate이 잘된다는 장점도 있다. 

VAE는 입력을 latent variable로 만들고 ( 주요 정보 추출 ), 이를 다시 입력과 같게 generate 하면서 학습하는 것이다.

VAE에서는 1. 입력 x와  latent variable을 거쳐 생성된 x' 이 같도록 2. x에서 latent 생성할 때 미리 정해둔 latent의 분포와 같아지도록  학습된다. (보통 latent의 분포는 정규 분포를 따른다고 가정하고 학습한다.)

이 2개에 대한 식은 아래와 같이 표현할 수 있다.

위에서 설명한대로 generative model은 MLE를 풀어나가는 것인데 위 식을 푼다고 MLE가 풀릴까 ? 

직접 MLE는 풀지 못하지만 위 식은 MLE보다 항상 작다는 것을 보일 수 있고, 위 식을 maximize 하면 MLE도 maximize 될 수 있으므로, 간접적인 최적화를 함으로써 MLE를 풀어내는 것이다. 물론 간접 최적화이기 때문에, 최적화가 잘 안되기도 한다. 

 

Explicit density model vs Implicit density model

AR과 VAE과 같이 object function에 likelihood를 modeling 하는 것이 직접적으로 나타내지는 모델을 explicit density model이라고 한다. 이와 반대로 likelihood 를 modeling 하지 않으면 implicit density model이라고 하는데 대표적으로 GAN (generative adversarial network) 가 있다.

 

GAN에 대해서는 다른 글에 정리할 계획이다.