Stochastic Backpropagation and Approximate Inference in DGM

1. Preliminary

1-0 기본 용어

  • $p(z \vert X)$ : 사후 확률 (posterior)
  • $p(X \vert z)$ : 우도 (likelihood)
  • $p(z)$ : 사전 확률 (prior)
  • $p(X)$ : 증거 (evidence)

1-1 Bayesian Inference

  • 사전 확률 P(z) 과 추가적인 정보를 통해 해당 대상의 사후 확률 P(z X)을 추론하는 방법
  • 주어진 데이터를 변수화시켜 사후 확률을 계산하는 것이 핵심
\[P(z \vert X) = \frac{P(X \vert z)P(z)}{P(X)}\]

1-2 변분추론(Variational Inference)

하지만 많은 경우 사후 확률 $P(z \vert X)$을 계산하는 것은 불가능하다. 따라서 아래 그림처럼 사후 확률을 알기 쉬운 분포 q(z)로 근사시켜 계산하는 것을 변분추론(Variational Inference, VI)이라 한다. q(z)를 posterior $P(z \vert X)$에 근사시키기 위해 두 확률분포의 차이를 계산하는 데에 사용하는 Kullback Leibler Divergence(KLD) 개념을 활용하고 KLD가 감소하는 방향으로 q(z)를 update한다.

e.g. p(z|X)를 정규분포(q(z))로 근사한 경우

factorio thumbnail

변분추론을 사용하는 이유는 크게 2가지가 있다.

  1. Marginal Probability를 계산하기 힘들어서
  2. likelihood($P(X \vert z))$, prior(p(z))를 복잡하게 모델링하고 싶어서

1-3 잠재공간(Latent Space)

학습에 필요한 데이터들이 있을 때 데이터의 모든 feature가 필요하지 않을 수도 있고 몇몇 특정 feature는 다른 feature의 조합으로 표현될 수도 있다. 따라서 데이터들을 충분히 잘 설명할 수 있는 공간은 실제 데이터 공간의 크기보다 작을 수 있다. 이처럼 데이터를 기반으로 실제 데이터 공간을 가장 잘 표현할 수 있는 잠재공간(latent space)를 파악하는 것이 중요하다. 딥러닝 모델을 이용해 고차원의 input 데이터 공간을 상대적으로 저차원의 잠재공간으로 매핑시킨다.

2. Introduction

2-1 Latent Variable Model

기존의 generative model 연구에 대해 accurate하면서 scalalble한 model을 만들기 위한 많은 노력들이 있었다. 한 가지 예로 belief network와 같은 directed model과 latent variable 모델들은 효율성 측면에서 많은 아쉬움을 보였다. 그 이후에도 수 많은 연구들을 통해 아래 3가지 조건을 만족시키는 generative model을 만들기 위한 노력들이 있었다.

  1. 데이터의 복잡한 구조 파악을 위한 Deep Model
  2. Fast Sampling
  3. Tractable and Scalable to high-dimensional data

위 조건을 만족시키기 위해 논문에서 제안한 방법은 다음과 같다.

  • 가우시안 잠재변수를 더하면서 깊고 복잡한 구조를 가진 모델 구축
  • Generative model과 Recognition model을 동시에 최적화
  • Recognition model을 활용한 잠재 변수의 사후 확률 근사

이제부터 어떻게 위 방법들이 적용되었는지 소개하겠다.

3. Deep Latent Gaussian Model (DLGM)

factorio thumbnail

DLGMs Architecture

현재 아키텍처에서는 가우시안 분포를 generative model과 recognition model의 중간에서 사용되는 것처럼 표현이 되었는데, 이는 엄밀히 말하면 잘못된 표현이다. 정확히는 latent space에서 가우시안 분포 벡터를 샘플링하여 이를 generative model과 recognition model의 각 Layer 안에 가우시안 잠재변수가 포함되도록 학습시키는 방법을 활용하였다. 각 레이어마다 noise들을 집어넣어 학습을 진행하게 되는 것이다. 다만, 논문의 저자는 쉽게 이해하도록 가우시안 잠재변수를 그림과 같이 generative model과 recognition model 밖으로 빼낸 것으로 보인다.

How to generate data??

DLGM은 각 layer마다 가우시안 잠재변수를 가진 deep directed graphical model이다. 데이터가 생성되는 과정은 다음과 같다. L개의 layer가 있다고 가정할 때 top-most layer인 L번째 layer의 가우시안 분포에서 샘플링(식 1) 후 matrix $G_l$을 곱하여 $h_L$을 얻는다(식 2). 그 후 $l$+1번째 $h_{l+1}$에 multi-layer perceptrons(MLPs) $T_l$을 곱하고 $l$번째 layer의 가우시안 샘플링 값 $\xi_l$과 $G_{l-1}$을 곱하여 더해준다(식 3). 그리고 최종적으로 최하단의 layer에서 근사를 통해 학습한 함수 $\pi(v \vert ·)$로부터 데이터를 생성한다(식 4). DLGM은 layer를 깊게 쌓음으로써(L layers) 데이터 분포의 복잡한 구조를 파악하고 모델의 표현력을 높였다.

\[\xi_l \sim \mathcal{N}(\xi_l \vert 0, I),\quad l = 1, ..., L\qquad(1)\] \[h_L = G_L\xi_L \qquad(2)\] \[h_l = T_l(h_{l+1}) + G_l\xi_l, \quad l = 1... L-1\qquad(3)\] \[v \sim \pi(v \vert T_0(h_1)),\qquad(4)\]

또한 모델의 joint pdf는 다음과 같이 두 가지 방정식으로 표현될 수 있다.

\[p(v, h) = p(v \vert h_1,\theta^g)p(h_L \vert \theta^g)p(\theta^g)\prod_{l=1}^{L-1} p_l(h_l \vert h_{l+1}, \theta^g)\qquad(5)\] \[p(v, \xi) = p(v \vert h_1(\xi_{1, ... ,L}), \theta^g)p(\theta^g)\prod_{l=1}^L\mathcal{N}(\xi \vert 0, I)\qquad(6)\]

식(5)를 식(6)으로 바꾸면서 deterministic한 부분과 stochastic한 부분을 나눌 수 있고 이로 인해 여러번의 non-linear transformation $(T_l)$ 을 통해 empirical distribution에 근사하게 됩니다.

4. Stochastic Backpropagation

gradient descent 방법을 적용하기 위해서는 $\nabla_{\theta}E_{q_{\theta}}[f(\xi)]$ 계산이 필요하지만 아래 2가지 이유로 직접적인 계산이 어렵다.

  1. 기댓값을 계산하기 어려움
  2. $q_{\theta}$에 무작위성이 포함되어 있어 역전파 불가

이 문제를 stochastic backpropagation을 통해 해결했고 아래에서 설명하겠다.

4.1 Gaussian Backpropagation (GBP)

$\nabla_{\theta}E_{q_{\theta}}[f(\xi)]$ 을 각각 mean과 covariance로 미분하면 아래 식과 같다. 이에 대한 증명은 각각 아래와 같으며 Bonnet’s theorem과 Price’s theorme으로 $\mu, C$ 로 해야하는 미분을 $\xi$로 미분할 수 있게된다. 즉, 식(7)과 식(8)에서 무작위성이 포함되어 있는 $\mu_i$ 와 $C_i$ 를 $\xi$ 로 reparameterization 하면서 unbiased gradient estimate를 가능하게 했다.

\[\nabla_{\mu_i}E_{q_{\theta}}[f(\xi)] = E_{\mathcal{N}(\mu, C)}[\nabla_{\xi_i}f(\xi)]\qquad(7)\]

image

\[\nabla_{C}E_{q_{\theta}}[f(\xi)] = \frac{1}{2}E_{\mathcal{N}(\mu, C)}[\nabla_{\xi_i, \xi_j}^2f(\xi)]\qquad(8)\]

image

그리고 위 식7, 식8을 더하고 chain rule을 사용하여 아래와 같이 gradient를 구할 수 있다.

\[\nabla_{\theta}E_{q_{\theta}}[f(\xi)] = E_{\mathcal{N}(\mu, C)}[g^T\frac{\partial\mu}{\partial\theta} + \frac{1}{2}Tr(H\frac{\partial C}{\partial\theta})]\qquad(9)\]
  • g : gradient of the function $f(\xi)$
  • H : hessian of the function $f(\xi)$

5. Scalable Inference in DLGMs

5.1 Free Energy Objective

DLGM에서 inference를 하기 위해서는 모든 latent variable 에 대해 계산하는 과정인 integrated(marginal) likelihood $(\sum_zp(V \vert \xi))$ 계산 과정이 필요하다. 하지만 실제로는 적분 불가능한 값이다. 이 문제를 해결하기 위해 KLD와 reconstruction의 합으로 표현되는 ELBO를 최대화하는 방향으로 모델의 최적화를 진행한다. 즉, $q(\xi)$ 를 $p(\xi \vert V)$ 에 근사시키는 것이 목표이다.

\[\begin{matrix} L(V) &=& -log{p(V)} = -log{\int{p(V \vert \xi, \theta^g)p(\xi, \theta^g)}d\xi} \\ &=& -log{\int{\frac{q(\xi)}{q(\xi)}p(V \vert \xi, \theta^g)p(\xi, \theta^g)}d\xi} \\ &\leqq& D_{KL}[q(\xi)||p(\xi)] - E_q[log{p(V \vert \xi, \theta^g}p(\theta^g)] \\ &=& \mathcal{F}(V) \end{matrix}\]

이 때 계산의 편리화를 위해 $q(\xi \vert V)$ 는 L개의 layer를 거쳐 인수분해되는 가우시안 분포를 가정한다 (식 12).

\[q(\xi \vert V, \theta^g) = \prod_{n=1}^{N}\prod_{l=1}^{L} \mathcal{N}(\xi_{n,l} \vert \mu_l(v_n), C_l(v_n))\\qquad(12)\]

이때 가우시안 prior와 가우시안 recognition 모델을 가정하면 위 ELBO 식에서 KLD 부분은 analytically하게 풀 수 있다.

\[D_{K L}[\mathcal{N}(\boldsymbol{\mu}, \mathbf{C}) | \mathcal{N}(\mathbf{0}, \mathbf{I})] = \frac{1}{2} \left[\operatorname{Tr}(\mathbf{C})- \log{\mathbf{|C|}} +\boldsymbol{\mu}^{\top} \boldsymbol{\mu}-D\right]\]

그리고 목적함수 $\mathcal{F}(V)$ 는 아래 식과 같이 표현된다.

\[\mathcal{F}(\mathbf{V})=-\sum_{n} \mathbb{E}{q}\left[\log p\left(\mathbf{v}{n} \mid \mathbf{h}\left(\boldsymbol{\xi}_{n}\right)\right)\right]+\frac{1}{2 \kappa}\left|\boldsymbol{\theta}^{g}\right|^{2} + \frac{1}{2}\sum_{n,l}[||\mu_{n,l}||^2 + Tr(C_{n, l}) - log|C_{n, l}| -1]\]

recognition 모델 $q(\xi \vert V)$ 로 인해 EM알고리즘과 같이 반복적인 계산을 수행하는 것이 아닌 single pass 만으로 테스트할 때 빠른 inference를 할 수 있게 되고 Introduction에서 제시한 번째 조건을 만족시킨다. 그리고 최고의 inference를 하기 위해서는 $q(\xi \vert V)$ 가 flexible해야할 필요가 있다. 그리고 데이터 input에 bit-flip이나 drop-out과 같은 noise를 추가하여 regularize하면서 모델의 generality를 높였다.

5.2 Gradients of the Free Energy

ELBO를 최대화하기 위해 monte carlo 방법을 사용했다. $\mathcal{F}(v)$ 를 각각 generative model과 recognition model의 파라미터 $\theta^g, \theta^r$ 로 미분하면 아래 (식14), (식15, 식16)과 같다. 전체 모델 구조에서 generative모델의 gradient는 recognition model $q(\xi \vert V)$ 에서의 몇개의 샘플(h)을 통해 (식14)를 근사시키며서 얻을 수 있고 recognition 모델의 gradient는 $\xi \sim q(\xi \vert V)$ 인 $\xi$ 를 샘플링해서 얻을 수 있고 (식3)을 통해 generative model의 layer들을 update할 수 있다.

\[\nabla_{\theta_{j}^{g}} \mathcal{F}(\mathbf{V})=-\mathbb{E}{q}\left[\nabla{\theta_{j}^{g}} \log p(\mathbf{V} \mid \mathbf{h})\right]+\frac{1}{\kappa} \theta_{j}^{g} \\qquad(14)\] \[\nabla_{\mu_{l}} \mathcal{F}(\mathbf{v}) =-\mathbb{E}{q}\left[\nabla{\boldsymbol{\xi}{l}} \log p(\mathbf{v} \mid \mathbf{h}(\xi))\right]+\boldsymbol{\mu}{l} \\qquad(15)\] \[\begin{aligned} \nabla_{R_{l, i, j}} \mathcal{F}(\mathbf{v}) =-\frac{1}{2} \mathbb{E}{q}\left[\epsilon{l, j} \nabla_{\xi_{l, i}} \log p(\mathbf{v} \mid \mathbf{h}(\boldsymbol{\xi}))\right] &+\frac{1}{2} \nabla_{R_{l, i, j}}\left[\operatorname{Tr} \mathbf{C}{n, l}-\log \left|\mathbf{C}{n, l}\right|\right] \\qquad(16) \end{aligned}\]

모델의 전체 알고리즘을 간단하게 설명하면

  1. forward pass
    • recognition (bottom-up pass)
    • generative (top-down pass)
  2. backward pass
    • gradient 계산
    • update gradient $\theta^{g, r} \leftarrow \theta^{g, r} + \triangle\theta^{g, r}$

이 때 chapter 3의 모델 구조 그림에서 검은색 화살표 forward pass를 의미하고 붉은색 화살표는 backward pass를 의미한다.

factorio thumbnail

6. Results

6.1 Analysing the Approximate Posterior

첫번째로 MNIST 데이터의 true posterior 분포를 보았을 때 아래 그림의 (a)와 같이 구형이거나 타원형인 것으로 보아 가우시안 분포로 추정을 하는 것이 타당했다. 그리고 prior로 부터 샘플링된 샘플(초록)들은 중요한 posterior 중심 근처에는 모여 있지 않고 공간 전체에 퍼져있는데 반해 recognition model로 부터 샘플링된 샘플(파랑)들은 posterior에 집중되어 있다는 것을 확인할 수 있는데, 이는 recognition model이 posterior 분포를 잘 학습했다는 것이다.

image

6.2 Simulation and Prediction & Data Visualisation

두번째로 MNIST 데이터셋을 이용해서 모델을 평가한 결과 생성되는 숫자들이 정답 데이터와 일치하고 시각적으로도 잘 생성되는 것을 확인했다 (아래 좌측 그림). 그리고 MNIST가 아닌 3차원의 real-image 데이터셋에 적용했을 때도 우수한 성능을 보였다.

세번째로 MNIST 데이터를 2차원의 latent space에 투영시켰을 때의 결과가 아래 오른쪽 그림에 나타나 있다. 그림을 보면 각 번호의 클래스가 서로 다른 지역에 나뉘어져있는데 이는 모델이 각 숫자들을 잘 표현한다는 것을 의미한다.

image

6.3 Missing Data Imputation and Denoising

데이터가 노이즈에 의해 일부 가려져 있는 경우 즉, 모델이 얼마나 결측치를 잘 대체하는지에 대해서도 평가했다. 모델은 노이즈에 의해 일부분이 가려져 있어도 denoising을 통해 원래 데이터를 잘 생성했다.

image

7. Conclusion

본 논문은 빠르고 계산 가능한 inference를 하는 recognition model을 제안했고 계산이 불가능한 marginal likelihood를 ELBO를 통해 근사할 수 있도록 했다. 또한 reparameterization trick을 통해 샘플링을 하더라도 backpropagation이 가능하게 했으며 이로 인해 모든 파라미터들을 동시에 학습할 수 있게 했다.

8. Opinion

마지막으로 우리가 생각하는 본 논문에 대한 몇가지 장단점에 대해 소개하겠다.

8.1 Advantages

  • 인식 모델(Encoder)과 생성 모델(Decoder)을 동시에 학습시켜 줌으로써 효율적인 반복 계산 비용 감소
  • 변분 추론에 확률론적 경사 하강법을 적용시켜 모델의 정확성과 빠른 샘플링이 가능
  • 다중 Layer를 활용함으로써 복잡한 구조를 학습 가능

8.2 Disadvantages

노이즈를 완벽하게 복원해내지 못한다는 변분추론 모델의 공통적인 한계점으로 인해 생성 이미지가 아래 그림처럼 흐릿하다는 단점을 가지고 있다. image