아롱이 탐험대

Auto-Encoding Variational Bayes (VAE) 분석 본문

study/paper reviews

Auto-Encoding Variational Bayes (VAE) 분석

ys_cs17 2021. 7. 14. 17:45
반응형

OVERVIEW

컴퓨터 비전에는 다양한 분야가 존재한다. 오늘 소개할 VAE는 generative 모델들에게 많은 영향을 끼쳤고, 나는 anomaly detection 분야에 관심이 생겨 VAE를 알게 되었다. 물론 2014년에 나온 논문이라 현재는 쓰이지 않지만 classification의 resnet과 같이 학습용으로 읽기는 좋은 논문이라 분석을 하게 되었다. 조만간 auto-encoder 계열의 anomaly detection 모델에 대해 공부해볼 생각이다. 물론 회사에 일이 없어야 되겠지만...

아무튼 VAE는 Neural Network와 mathematical 하게 등등 다양한 관점에서 해석할 수 있어 분석하는 관점마다 다양한 reference가 존재한다. 그만큼 좋은 분석 글 또한 많다.

우리가 VAE를 알아보기 전 사전적으로 알아야 되는 것들이 몇 가지가 있다.

(1) MANIFOLD HYPOTHESIS

Auto-encoder에서 중요한 개념이다. 고차원 데이터 (이미지 등등) 일지라도 실질적으로 해당 데이터를 나타내 주는 저 차원 공간인 manifold가 존재한다는 것을 의미한다. 요약하면 우리가 볼 수 있는 데이터, 즉 이미지는 우리의 생각보다는 훨씬 더 저차원적이다.

Data aurgmentation (flip, rotation, etc..)을 통해 우리는 1장의 이미지를 다양한 이미지로 표현할 수 있다. 이미지를 볼 때에도 800차원 (mnist 기준)으로 보이지만 우리는 이를 훨씬 더 저 차원으로 표현이 가능하다. 따라서 generative model의 목표 중 하나는 이 데이터가 실제로 존재하고 있는 manifold 공간을 찾아내는 것이다. 이미지의 같은 경우에는 정보가 많이 담겨있지만 어떤 feature를 추출해야 할지 선별의 어려움이 있는 경우가 존재한다. 따라서 encoding (차원이 줄어듦)을 통해 데이터의 feature를 표현하는 manifold 공간을 찾아내는 것이 generative model의 목표라 할 수 있다.

(2) AUTO-ENCODER

AUTO-ENCODER ARCHITECTURE

AUTO-ENCODER란 INPUT이 model로 들어오게 되면 hiddenlayer를 통해 데이터가 저차원으로 압축이 되고, 이를 다시 reconstruction을 거쳐 output을 도출하게 된다.

결론적으로는 input과 같은 output을 만듦으로써 이 Neural Network는 hidden layer를 통해 input의 feature와 같은 특징점들을 학습하게 된다.

(3) Linear Regression

 

Linear Regression

Linear regression은 점들의 경향성을 나타내는 line을 찾는 과정이다. 여기에 확률적인 관점을 섞으면 점들의 경향성을 더욱 정확하게 추정할 수 있다.

확률적 관점을 섞냐 안섞냐의 차이가 일반적인 Auto-encoder와 VAE의 가장 큰 차이점이다.

VAE는 Auto-encoder에 존재하지 않는 z와 θ를 도입해 확률적으로 estimate 한다.

 

POINT

그러면 우리는 어떻게 해야 할까?

Maximum Likelihood (MLE를 통해 parameter를 결정해야 한다.

(Maximum Likelihood: Random variable의 parameter를 추정하는 방법)

 

MLE 기본식

하지만 우리는 단순히 이 식에 해당하는 parameter들을 구하지 못한다. 따라서 variational inference라는 개념이 나오게 되었다.

variational inference: 복잡한 p(x)가 있을 때 단순한 q(x)로 근사 시키는 방법

Variational inference

그러면 이제 variational inference를 통해 MLE 식을 변경시켜보자

 

PRELIMINARY

각 (1), (2), (3)은 확률과 통계를 배웠다면 아는 사실이고, (4)는 kl divergence이다.

kl divergence: 확률 분포 P, Q 간의 차이를 계산하는 방법

 

The variational bound - eq(1)

이제 본격적인 식을 계산해보자

식이 길어 보이지만 전혀 어려운 점이 없으니 차근차근 계산해보자

(1) 우선 확률 p에 로그를 취한다. 그러고 나서 q에 대한 적분 값을 곱해준다. 여기서 곱해주는 q의 적분은 값이 1이니 상관없다. (preliminary (1) 적용)

(2) 로그 안에 있는 p에 대해 조건부 확률 식을 적용한다. (preliminary (2) 적용)

(3) 로그 안에 있는 식에 q를 분자, 분모에 곱해준다.

(4) 분배 법칙 및 로그의 곱을 더하기로 변환

(5) (4)에 왼쪽에 해당하는 식을 통째로 L이라는 함수로 치환 후 오른쪽 식은 KL divergence를 적용한다. (preliminary (4) 적용)

그러고 나서 오른쪽 부등식이 보이게 되는데, KL divergence의 조건은 무조건 0보다 같거나 0보다 큰 정수이기 때문에 해당 부등식이 성립한다.

여기서 나온 L함수를 Evidence Lower Bound (ELBO)라고 부르고, 따라서 ELBO를 최대화하면 maximumlikelihood도 최대화가 된다.

 

ELBO를 통한 Maximumlikelihood 최대화 - eq(2)

여기서 Expectation 기호는 prelimanary (3)을 참고하면 된다.

이로써 이 식은 loss function에 들어갈 수 있는 식이 된다. 하지만 이 식에서 한 단계 더 나은 식을 만들 수 있다.

 

다른 방법으로 변환 - eq(3)

정리한 식의 마지막 부분을 보면  -D 함수는 여기서 regularization error, 오른쪽  expectation은 reconstruction 값이 된다.

왼쪽 식은 monte carlo estimation을 적용해야지만 analyically 하게 적용할 수 있다.

오른쪽 식의 경우는 estimation이라 정확하게 계산이 되지 않는다.

따라서  eq(2), (3)에 대한 monte carlo estimation을 적용해야 한다. 이 논문에서 실질적인 구현은 eq(3)으로 했다고 한다. (구현의 장점)

 

SGVB

p를 정규화시키고, q를 가우시안으로, J를 z의 dimesion이라고 할 때 (3)은 아래 식 왼쪽과 같이 변환된다.

Reparameterization

Reparameterization은 backpropagation 과정 중 미분이 안 되는 식을 변환하거나 빼주는 트릭이다. 연산에는 영향을 주지 않는다. 이는 우리의 sampling 과정에서 적용할 수 있다.

이 조건을 통해 진행을 하게 되는데, 우리의 식은 expectation에 대해 미분을 적용하지 못한다. 따라서 이 식에 reparameterization trick을 적용할 수 있다.

식을 정리하면 이렇게 유도된다.

이를 다시 eq(3)에 적용하게 되면 아까 변환했던 식을 유도할 수 있다.

이로써 VAE에 대한 식을 정리하였다. VAE는 한마디로 auto-encoder에 평균과 표준 편차를 도입하고 regularization을 걸어주는 것이다. 

그 이유는 그냥 진행하게 되면 overfitting이 일어날 수 있어 z를 통해 prior를 만들어주고, 이 확률 분포 z가 noraml distribution이 되도록 하자라는 것이 VAE의 관점이다.

 

RESULT

얼굴과 mnist를 VAE를 통해 잘 구현한 모습을 볼 수 있다.

 

REFERENCE

https://www.youtube.com/watch?v=KYA-GEhObIs&t=1168s

https://wiserloner.tistory.com/1137

반응형
Comments