베이지안 딥러닝의 목적은 새로운 입력(x*,y*)에 대한 Posterior를 추론하는 것이고 그에 대한 식은 다음과 같이 나타낼 수 있다. $$P(y_{*},x_{*}) = \int_{w}P(y|x_{*},w)P(w|x,y)dw$$
이전 글에서 본 바와 같이 posterior $P(w|D)$를 구하기 어렵고 구했다해도 수많은 파라미터 w에 대해 적분을 해주는 것이 불가능하다. 그래서 다른 방법을 이용하여야 하는데 이때 사용하는 방법 중 하나가 variational inference이다. 간단히 말하면 우리가 알고 있는 어떤 분포 Q(w)를 Posterior $P(w|D)$로 근사하는 것이다. 그렇다면 그 방법은 무엇인가? 이때 등장하는 것이 KL-divergence 와 Evidence Lower BOund(ELBO)이다.
우선 KL-divergence란 간단히 말해 어떤 두 분포 p와 q의 차이를 계산하는데 사용하는 함수다. 차이가 클수록 값이 커지고 유사할수록 작아진다. 이를 Variational inference와 함께 생각해보면 Q(w)를 P(w|D)로 근사시키기 위해서는 두 분포의 KL-divergence를 Minimize 하면 된다는 결론이 나온다. KL-divergence는 Entropy를 사용하여 다음과 같이 유도된다. (H(p)는 p의 엔트로피, 이산 분포의 경우를 가정)
$$ H(p,q) = -\sum_{i}p_{i}log(q_{i})$$
$$ = - \sum_{i}p_{i}log(q_{i}) - \sum_{i}p_{i}log(p_{i}) + \sum_{i}p_{i}log(p_{i})$$
$$ = H(p) + \sum_{i}p_{i}log(p_{i}) - \sum_{i} p_{i}log(q_{i})$$
$$ = H(p) + \sum_{i}p_{i}log(\frac {p_{i}} {q_{i}})$$
p와 q의 엔트로피는 p의 엔트로피에 추가적인 항을 더한 것이다. 그러므로 두 분포는 추가로 더해지는 항만큼의 차이가 있다는 뜻이다. 즉, p와 q의 차이는 $\sum_{i}p_{i}log(\frac {p_{i}} {q_{i}})$이며 이를 KL-divergence라고 한다.
하지만 KL-divergence는 $D_{KL}(q(w|\theta)||p(w|D))$로 Posterior를 구해야 하므로 직접 구하는 것은 어렵다. 그래서 이때 Evidence Lower Bound의 개념이 등장한다. 이는 log marginal likelihood로부터 식을 유도할 수 있는데 다음과 같다. $$lnP(D) = \int lnP(D)Q(w|\theta)dw$$
$$ = \int Q(w|\theta) ln \frac {P(D)P(w|D)} {P(w|D)} dw$$
$$ = \int Q(w|\theta) ln \frac {P(w,D)} {P(w|D)} dw $$
$$ = \int Q(w|\theta) ln \frac {P(D|w)P(w)} {P(w|D)} dw $$
$$ = \int Q(w|\theta) ln \frac {Q(w|\theta)P(D|w)P(w)} {Q(w|\theta)P(w|D)} dw $$
$$ = \int Q(w|\theta) ln \frac {Q(w|\theta)} {P(w|D)} dw + Q(w|\theta)ln \frac {P(D|w)P(w)} {Q(w|\theta)}dw$$
$$ = D_{KL}(Q(w|\theta)||P(w|D)) + F[Q]$$
마지막 줄의 식에서 첫항이 KL-divergence를 나타내며 두 번째 항이 Variational Free Energy 혹은 Evidence Lower Bound(ELBO)라고 불린다. 즉, log marginal likelihood를 높이기 위해서는 KL-divergence를 줄이거나 ELBO를 높여야 하는데 KL-divergence는 구하기 힘드므로 대신 ELBO를 Maximize 하여 간접적으로 KL-divergence를 줄여 Q(w) 분포를 Posterior P(w)로 근사하는 문제로 풀게 된다. ELBO의 경우는 Likelihood와 Prior를 구하면 되므로 풀 수 있다.
정리하면, Posterior 분포에 근사하는 Q(w)를 구하려고 하는데 이를 Variational inference이라고 한다. 이는 KL-divergence를 Minimize 해서 구해야 하지만 직접 구하지 못하여 ELBO를 Maximize 하여 간접적으로 구한다. 이는 결과적으로 우리가 가진 데이터로 Neural network를 잘 튜닝하는 것을 의미한다.
참조 : Bayesian Neural Networks, Vikram Mullachery
www.edwith.org/bayesiandeeplearning/lecture/25280/www.edwith.org/bayesiandeeplearning/joinLectures/14426
'머신러닝&딥러닝 > 베이지안' 카테고리의 다른 글
Gaussian Process Regression (0) | 2021.08.22 |
---|---|
베이지안 딥러닝 (3) - 베이지안 딥러닝은 무엇인가? (1) | 2020.10.12 |
베이지안 딥러닝 (2) - Gaussian Process Regression (1) (0) | 2020.10.12 |
베이지안 딥러닝 (1) - 기초 정리 (베이즈룰,ML,MAP) (0) | 2020.10.11 |