본문 바로가기
딥러닝 with Python

[개념정리] ELBO란? Evidence Lower Bound란?

by CodeCrafter 2024. 10. 30.
반응형

 

이번에 알아볼 것은 Variational Auto Encoder에서 중요한 역할을 하는 개념 중 하나인 ELBO에 대해서 알아보겠습니다.

 

1. ELBO란? Evidence Lower Bound란?

- ELBO는 학습 데이터의  log likelihood를 최대화하기 위해 사용되는 최적화 목적함수 중 하나입니다.

 

- ELBO는 입력 데이터 x에 대한 잠재 변수 z가 있는 모델에서 log likelihood 인 logp(x)를 직접 계산하기 어려운 경우, 이를 대신해서 최적화하는 하한(Lower Bound)를 제공해줍니다.

 

- ELBO의 유도(Derivation)에 대해 알아본다면, 다음과 같이 데이터 x의 loglikelihood인 logp(x)를 approximate하는 상황을 가정해보겠습니다.

 

- 이 적분은 계산하기 어려운 경우가 많으며, 특히 샘플링 된 x를 가지고 z에 대한 모집단을 활용해야한다는 부분때문에 결국 값을 근사하는 추론을 할 수 밖에 없습니다.

 

- 이를 Expectiation의 개념을 활용해 식을 변형하고, p(z given x)를 근사하는 q(z given x)가 있다고 할때, 아래와 같이 정리할 수 있습니다.

 

- 위 식에서 두번째 항인 KL Divergence 항은 두 분포인 q(z given x)와 p(z given x) 사이의 분포 차이를 측정하는 항이 되겠습니다. 이때 KL Divergence 는 항상 0보다 크거나 같기에 결국 다음과 같은 하한(Lower Bound) 식을 얻을 수 있습니다.

 

- 이를 우리는 ELBO라고 합니다.

 

- 이 ELBO를 분해 해보면 다음과 같이 2가지 항으로 구성됩니다.

 

 * 첫번째인 재구성 손실은 Auto Encoder의 재구성 손실 개념과 같습니다.

 * 두번째인 정규화항은 z에 대한 근사 분포인 q(z given x)와 실제 z의 분포인 p(z)의 차이를 줄이는 항이 되겠습니다. ELBO를 최대화하는 입장에서 KL Divergence의 항이 작을수록 앞에 붙은 -와 연산되어 전체적인 ELBO의 값이 커지기 때문에 해당 Term을 활용해서 목적 함수를 최대화 할 수 있습니다. 

 

[딥러닝 with Python] KL Divergence Loss란?

 

[딥러닝 with Python] KL Divergence Loss란?

이번에 알아볼 것은 KL Divergence Loss 입니다.  1. KL Divergence란?- KL Divergence는 Kullback-Leibler Divergence의 줄임말로, 두 확률 분포간의 차이를 측정하는 비대칭적인 척도를 의미합니다.* 여기서 비대칭

jaylala.tistory.com

 

반응형

댓글