로그인 바로가기 하위 메뉴 바로가기 본문 바로가기

인공지능 및 기계학습 심화 2

임시 이미지 KAIST 산업및시스템공학과 문일철 교수님
http://kooc.kaist.ac.kr/aiml-adv2/forum/129549
좋아요 96 수강생 501

안녕하세요, 조교입니다.

제가 조교업무를 할 동안에는 앞으로 매달 topic별로 새로운 시각을 주는 아이디어를 설명드리도록 하겠습니다.

먼저, VAE의 ELBO에 대한 추가적인 이해를 할 필요가 있습니다.

ELBO는 보통은 log-likelihood의 lower bound로 구하는데, 왜 log-likelihood를 maximize하는 것이 좋은지,

그리고 이 lower bound가 도대체 얼마나 좋은 물건인지 우리가 모르고 있습니다.

그렇기 때문에 ELBO 수식을 '누군가가' 유도한것만 보고 깊이 생각해보지 않는다면 그저 그런 수준의 이해에서 끝나게 됩니다.


그렇다면, 이제 본격적으로 들어가 보도록 할까요?

먼저, ELBO는 아래와 같이 유도됩니다.

 log{p_{\theta}(x)}=\log{\int p_{\theta}(x\vert z)p(z) dz}\ge\int q_\phi(z\vert x)\log{\frac{p_{\theta}(x\vert z)p(z)}{q_{\phi}(z\vert x)}}dz  logpθ(x)=logpθ(xz)p(z)dzqϕ(zx)logqϕ(zx) pθ(xz)p(z)dz 

이 식의 좌, 우변에  log{p_{data}(x)}  logpdata(x) 를 빼면 아래와 같은 ELBO의 equivalent한 식이 됩니다.

 log{\frac{p_{\theta}(x)}{p_{data}(x)}}\ge\int q_{\phi}(z\vert x)\log{\frac{p_{\theta}(x\vert z)p(z)}{q_{\phi}(z\vert x)p_{data}(x)}dz}  logpdata(x) pθ(x)qϕ(zx)logqϕ(zx)pdata(x) pθ(xz)p(z)dz 

자, 이제 위의 식을  p_{data}  pdata 로 expectation을 취해 보도록 하겠습니다.

 LHS=\int p_{data}(x)\log{\frac{p_{\theta}(x)}{p_{data}(x)}}\ge\int p_{data}(x)(\int q_{\phi}(z\vert x)\log{\frac{p_{\theta}(x\vert z)p(z)}{q_{\phi}(z\vert x)p_{data}(x)}}dz)dx=RHS  LHS=pdata(x)logpdata(x) pθ(x)pdata(x)(qϕ(zx)logqϕ(zx)pdata(x) pθ(xz)p(z)dz)dx=RHS

이제 위의 Left-Hand Side (LHS, 좌변)은 우리가 잘 아는 statistical divergence로 떨어집니다.

 LHS=-D_{KL}(p_{data}(x)\Vert p_{\theta}(x))  LHS=DKL(pdata(x)pθ(x)) 

위의 Right-Hand Side (RHS, 우변) 또한 우리가 잘 아는 statistical divergence로 떨어집니다.

 RHS=\int p_{data}(x)(\int q_{\phi}(z\vert x)\log{\frac{p_{\theta}(x\vert z)p(z)}{q_{\phi}(z\vert x)p_{data}(x)}}dz)dx=-D_{KL}(p_{data}(x)q_{\phi}(z\vert x)\Vert p_{\theta}(x\vert z)p(z))  RHS=pdata(x)(qϕ(zx)logqϕ(zx)pdata(x) pθ(xz)p(z)dz)dx=DKL(pdata(x)qϕ(zx)pθ(xz)p(z)) 

마이너스를 양변에 곱하면 우리는 아래와 같은 식을 얻습니다

 D_{KL}(p_{data}(x)\Vert p_{\theta}(x))\le D_{KL}(p_{data}(x)q_{\phi}(z\vert x)\Vert p_{\theta}(x\vert z)p(z))  DKL(pdata(x)pθ(x))DKL(pdata(x)qϕ(zx)pθ(xz)p(z)) 

즉, data variable과 generative variable 사이의 KL divergence를 계산할 수 없기 때문에 우리는 latent variable z를 하나 더 넣어주어서 joint distribution들 사이의 tractable한 KL divergence를 최적화해주는 것입니다.

여기서, 우변은 한번 더 살펴볼 필요가 있습니다. 우변의 첫번째 joint distribution은  p_{data}(x)q_{\phi}(z\vert x)  pdata(x)qϕ(zx) 이어서 inference joint distribution이라고 생각할 수 있습니다. 특히, 이는 inference network (encoder)에만 의존하는 joint distribution입니다.

두번째 joint distribution은  p_{\theta}(x\vert z)p(z)  pθ(xz)p(z) 이고, 이는 generative network (decoder)에만 의존하는 generative joint distribution이라고 할 수 있겠습니다.

또한, 원래 ELBO 식에서 유추해 보면, 각 network의 역할을 아래와 같이 요약할 수 있습니다.

1. inference network는 optimal point에서 ELBO를 exact log-likelihood가 되게 만든다. 즉, inference network는  D_{KL}(p_{data}(x)\Vert p_{\theta}(x))  DKL(pdata(x)pθ(x)) 를 좀 더 잘 추정하게 만들어 주는 역할

2. generative network는 optimal encoder일 때는 ELBO가  D_{KL}(p_{data}(x)\Vert p_{\theta}(x))  DKL(pdata(x)pθ(x)) 가 되기 때문에 optimal point에서는 data distribution을 추종하게 만들어 주는 역할


다음 시간에 다시 찾아뵙겠습니다.

감사합니다