p.s. youtube에서 좋은 강의를 찾았으나, 당장은 시간이 없어서 후에 천천히 들으려 한다. 만약 autoencoder이라는 단어를 처음 들어봤거나 잘 모른다면 추천드립니다. 오토인코더의 모든 것
Preliminary
VAE 논문을 읽다 보면 처음으로 접하는 개념들이 많다. 논문을 읽기 전 알아두면 좋은 것들을 간략하게 정리하였다.
Mainfold hypothesis
mainfold hypothesis란 실제 세계에서 발생하는 많은 high-dimensional 한 data들은 실제로 low-dimensional latent mainfold를 따라 놓여 있다는 가정이다. 보다 쉽게 말하면, 고차원 data들을 더 작은 크기의 latent vector으로 압축해서 표현할 수 있다.
Auto Encoder
Autoencoder는 위 그림과 같이 생긴 신경망이다. Autoencoder의 기본 목적은 input X를 잘 표현하는 더 낮은 차원의 벡터 z를 얻는 것이다. 이때 z는 latent vector, 혹은 code 등으로 불린다.
input X가 encoder을 통과하여 latent vector Z를 얻고, Z는 decoder을 통과하여 output X'를 얻는다.
- 이때, latent vector Z는 X보다 낮은 dimension이며, output X'는 X와 같은 dimension이다.
latent vector Z가 input X를 잘 표현하는지 확인하기 위하여, decoder에서는 input X를 복원하려 시도한다.
- 따라서, 학습 과정은 decoder의 결과 X'과 input X의 차이를 줄이는 것이다.
본 논문에서 예시로 든 VAE의 경우, autoencoder을 학습시킨 뒤 decoder 부분을 떼어내어 input latent vector z에 대하여, output image X를 만드는 generative model로 사용하였다.
분포 θ를 추정하기 위하여 Maximum likelihood 방식을 사용한다. argmaxθ[pθ(x)=∫zpθ(x,z)=∫zpθ(x∣z)pθ(z)]
Bayesian inference
모든 변수를 확률 변수화 하기
아는 condition을 given으로 주고, 모르는 변수에 대하여 확률 변수를 구하기.
Variational Inference
target distribution p(x)를 tractable distribution q(x)를 이용하여 근사하는 기법 q∗=argminq∈QKL(q∣∣p)
q를 계속 update하면서 p와의 거리(KL divergence)가 작은 q를 찾는 기법
1. Introduction
기존의 Variational Bayesian approach는 posterior을 근사하는 방법을 제안한다. 현재 사용되는 방법은 이를 계산하기 위해 approximate posterior의 모든 기댓값을 analytic하게 계산해야 하며, 이는 일반적으로 불가능하다.
이에, 우리는 variational lower bound를 reparameterization하고, 이를 이용하여 미분 가능한 unbiaised estimator을 만들고자 한다.
우리가 만든 SGVB(Stochastic Gradient Variational Bayes) estimator은 constinuous latent vecoter/parameter을 가지는 어떤 모델에서도 well-work한다. (효율적으로 posterior을 근사할 수 있어 gradient ascent로 직접적으로 최적화 가능)
만약 각 datapoint가 continuous latent vector을 가지는 i.i.d. dataset이면, Auto-Encoding VB (AEVB) 알고리즘을 제안한다.
AEVB에 SGVB estimator을 적용하였고, 각 datapoint에서 MCMC와 같은 연산량이 많은 반복적 추론 없이 모델의 파라미터를 효율적으로 학습하게 해준다.
이 방식으로 학습된 모델은 recognition, denoising, representation, visualization와 같은 목적을 위해 사용될 수 있다.
Recognition model에 neural network가 사용되었을 때, 우리는 variational auto-encoder에 도달한다.
2. Method
continuous latent variable을 가진 여러 directed graphic model에서 사용되는 lower bound estimator을 찾는 유도하는 것이다.
여기서, directed graphical model이라 함은 위의 그림과 같은 것을 의미한다. learnable parameter ϕ,θ가 있다. X는 pθ(z)pθ(x∣z)의 과정을 통하여 생성되며, intractable한 posterior pθ(z∣x)를 추정하기 위하여 variational approximation qϕ(z∣x)가 존재한다.
조건
1) 각 datapoint가 잠재 변수를 가지는 i.i.d 데이터셋이 존재하는 일반적인 경우로만 제한
2) 파라미터들에 대해서는 maximum likelihood (ML)이나 maximum posteriori (MAP) 추론을 진행
3) latent variable에 대해 variational inference를 수행한다.
예를 들어서 이 시나리오를 우리가 variational inference를 global parameters에 수행하는 경우로 확장하는 것은 간단하며, 이는 appendix에 들어있고 이 케이스에 해당하는 실험은 future work로 남긴다.
우리의 방법은 streaming data와 같은 online-non-stationary setting에도 적용할 수 있으나, 단순함을 위해 고정된 데이터셋을 가정한다.
2.1 Problem senario
전제
dataset : continuous/discrete 변수 x가 N개의 i.i.d smaple로 구성된 dataset X={x(i)}i=1N
data는 unobserve continuous random variable z에 의하여 생성되었다고 가정한다.
기존의 방법
process는 다음 두 단계로 구성된다.
1) z(i) 가 어떠한 prior distribution pθ∗(z)로부터 생성
2) x(i)가 어떠한 conditional distrinution pθ∗(x∣z)로부터 생성
prior pθ∗(z)과 likelihood pθ∗(x∣z)가 parametric families of distribution pθ(z), pθ(x∣z)로부터 왔고, 이들의 PDF는 θ와 z에 의하여 거의 모든 곳에서 미분 가능하다고 가정한다.
기존의 방법의 문제점
그러나, 이러한 방식에는 많은 과정이 생략되어 있다. true parameter θ∗와 latent variable z∗는 우리가 알 수 없다.
개선하고자 하는 사항
- Intractability : marginal likelihood의 적분 ∫pθ(z)pθ(x∣z)dz이 intractable하여 true posterior density pθ(z∣x)=pθ(x∣z)pθ(z)/pθ(x)이 intractable하다. 이 때문에 이를 추정하는 알고리즘인 mean-fild VB 알고리즘에 필요한 적분값이 intractable하다.
- large dataset : 데이터가 많아, 전체 batch로 학습은 어렵다. minibatch나 하나의 datapoint에서 parameter update가 가능하여야 한다.
위의 개선하고자 하는 사항을 해결하기 위하여 문제를 재정의하면 다음과 같다.
1. θ의 추정을 위한 효율적인 ML이나 MAP 근사
2. latent vector z의 posterior inference의 효율적인 근사.
3. variable x의 marginal inference의 효율적인 근사.
해결방법
true posterior pθ(x∣z)을 근사하는 tractable한 recognition model qϕ(x∣z)를 도입한다. qϕ(x∣z)는 기존에 문제가 있던 mean-field variational inference를 이용하지 않는다. 이는 factorial(각 변수를 독립으로 가정)일 필요가 없으며 parameters ϕ는 closed-form expectation으로부터 계산되지 않는다. 대신, generative model parameter θ와 같이 계산된다.
Coding theory에서는 관측되지 않은 변수 z를 latent representation 혹은 code로 해석한다.
따라서 우리는 recognitioni model qϕ(z∣x)를 probabilistic encoder으로 지칭하며, 이는 주어진 datapoint x에서 z의 possible value의 distribution을 만든다.
반면, pθ(x∣z)는 probabilistic decoder으로 지칭하며, 주어진 code z에서 datapoint x의 possible value의 distribution을 만든다.
The Variational Bound (ELBO)
ELBO 식 유도
marginal likelihood(data에 관한 확률분포, pθ(x)를 지칭)는 각각의 datapoint들의 marginal likelihood의 합으로 구성된다.
logpθ(x(1),...,x(N))=∑i=1Nlogpθ(x(i))
이 식은 다음과 같이 정리할 수 있다. log(pθ(x(i)))=∫zqϕ(z∣x)logqϕ(z∣x)pθ(z,x)+∫zqϕ(z∣x)logpθ(z∣x)qϕ(z∣x)=L(θ,ϕ;x(i))+DKL(qϕ(z∣x(i))∥pθ(z∣x(i)))
이때, 우변의 두 번째 항은 true posterior pθ(z∣x(i))와 approximate qϕ(z∣x(i)) 간의 KL divergence이다. KL divergence는 non-negative 항이므로 첫 항 L(θ,ϕ;x)은 datapoint i의 marginal likelihood에 대한 lower bound이다.
이제 여기서 DKL(qϕ(z∣x)∣∣pθ(z))는 analytic하게 계산이 가능하다. [논문 Appendix B 참조] 그러나, 나머지 부분 Eqϕ(z∣x)[logpθ(x∣z)]의 계산이 난해하다.
θ와 ϕ에 대하여 최적화를 하기 위해서는 gradient를 구해야 한다. 그러나 일반적으로 사용하는 방식인 Monte Carlo gradient estimator을 사용하면 ∇ϕEqϕ(z)[f(z)]=Eqϕ(z)[f(z)∇qϕ(z)logqϕ(z)]≃L1∑l=1Lf(z)∇qϕ(z(l))logqϕ(z(l)), z(l)qϕ(z∣x(i))이다.
그러나 이러한 gradient estimator은 매우 높은 variance를 보이기에 실용적이지는 않다.
ELBO의 의미
ELBO 식 L(θ,ϕ;x)=−DKL(qϕ(z∣x)∣∣pθ(z))+Eqϕ(z∣x)[logpθ(x∣z)]에서,
후반부 항 Eqϕ(z∣x)[logpθ(x∣z)]는 autoencoder의 loss이다. x가 들어왔을 때 z를 sampling하고, z에 대하여 다시 x값을 계산한다. -> reconstruction term 계산.
따라서, 전반부 DKL(qϕ(z∣x)∣∣pθ(z))는 regularization term으로 볼 수 있다.
The SGVB estimator and AEVB algorithm
이제, lower bound와 그 미분에 대한 practical estimator을 소개한다.
approximate posteror을 qϕ(z∣x)의 형태로 가정하나, x에대한 조건부가 아닌 qϕ(z)의 경우에도 적용 가능하다.
주어진 parameters에 대한 posterior을 추론하는 fully variational Bayesian method는 appendix에 있다.
특정한 조건 하에, 주어진 approximate posterior qϕ(z∣x)에 대하여, noise varaiable ϵ을 이용하여 random variable을 reparameterization할 수 있다. (세부 사항은 2.4에서 다룬다.)
z=gϕ(ϵ,x) with ϵ∼p(ϵ)
이를 이용하여 Monte Carlo estimation의 expectation을 계산할 수 있다. Eqϕ(z∣x(i))[f(z)]=Ep(ϵ)[f(gϕ(ϵ,x(i)))]≃L1l=1∑Lf(gϕ(ϵ(l),x(i)))whereϵ(l)
이것을 varaiational lower bound(ELBO)의 2번 식에 적용함으로써 Stochastic Gradient Variational Bayes (SGVB) estiamtor LA(θ,ϕ;x(i))≃L(θ,ϕ;x(i))이 만들어진다.
LA(θ,ϕ;x(i))=L1l=1∑Llogpθ(x(i),z(i,l))−logqϕ(z(i,l)∣x(i)) where z(i,l)=gϕ(ϵ(i,l),x(i)) and ϵ(l)∼p(ϵ)
또한, ELBO의 3번 식에서 KL-divergence DKL(qϕ(z∣x)∣∣pθ(z))가 analytic하게 적분이 가능하다. [Appendix B]
따라서, 우리는 reconstruction error인 Eqϕ(z∣x)[logpθ(x∣z)] 항만 sampling으로 estimation하면 된다. 이것이 바로 SGVB estimator의 두 번째 버전 LB(θ,ϕ;x(i))≃L(θ,ϕ;x(i))이 만들어진다.
이제 dataset X의 N개의 datapoint에 대하여 각각의 estimator을 계산하였다. 이를 이용하여 marginal likelihood lower bound를 minibatch를 이용하여 구할 수 있다. 이때 minibatch는 N개의 dataset에서 M개의 datapointsfmf 무작위로 추출한다. L(θ,ϕ;X)≃LM(θ,ϕ;XM)=MN∑i=1ML(θ,ϕ;x(i))
실험에서 minibatch size M이 충분히 크다면(100 이상) datapoint당 sample의 수인 L은 1로 지정할 수 있다.
이로부터 미분값 ∇θ,ϕL(θ;XM)을 얻을 수 있고, 이를 이용하여 SGD나 Adagard와 같은 stochastic optimization method를 적용할 수 있다. SGVB estimator을 적용한 AEVB 알고리즘의 개요는 다음과 같다.
Auto-encoder과의 관계는 식 (7)의 objective funcion에서 볼 수 있다. KL divergence의 첫 번째 항은 regularizer으로 기능하며, 두 번째 항은 negative reconstruction error의 기댓값이다. 함수 gϕ(.)는 z(i,l)∼qϕ(z∣x(i))라는 가정 하에, datapoint x(i)와 random noise vector ϵ(l)을 approximate posterior으로 mapping하는 function이다. 나아가, sample \z(i,l)은 logpθ(x(i)∣z(i,l))의 input이며, 이는 z(i,l)이 주어졌을 때 generative model 하에서 datapoint x(i,l)의 probability density와 같다. logpθ(x(i)∣z(i,l))은 auto-encoder에서 negative reconstruction error으로 사용되는 항이다.
2.4 The reparameterization trick
reparameter trick 유도
z∼qϕ(z∣x)인 random variable을 z=gϕ(ϵ,x)의 deterministic variable로 바꾸는 방법이다. 이때 ϵ은 independent marginal p(ϵ)의 auxiliary variable(보조변수)이며, gϕ(.)은 ϕ로 parameterize된 vector valued function이다.
이러한 reparameterization은 qϕ(z∣x)에 대한 기댓값을 재작성하는 데 사용될 수 있기 때문에 우리의 경우에 유용하며, 이러한 기댓값의 Monte Carlo estimate는 ϕ에 대하여 미분 가능하게 만든다.
deterministic mapping을 z=gϕ(ϵ,x)라 하자.
그러면, 아래 식이 주어진다. qϕ(z∣x)∏idzi=p(ϵ)∏idϵi Q. 저게 왜주어지지?
따라서, 아래 식이 성립한다. ∫qϕ(z∣x)f(z)dz=∫p(ϵ)f(z)dϵ=∫p(ϵ)f(gϕ(ϵ,x))dϵ
이는 아래와 같이 미분가능한 estimator을 형성하게 한다. 2.3의 ELBO에서 이 trick을 적용하여 미분가능한 ELBO estimator을 만들 수 있다. ∫qϕ(z∣x)f(z)dz≃L1∑l=1Lf(gϕ(x,ϵ(l)))
예를 들어, univariate Gaussian의 경우를 보자 z∼p(z∣x)=N(μ,σ2) 라 하자.
이때의 reparameterization은 아래와 같다. z=μ+σϵ, ϵ∼N(0,1)
이를 estimator에 적용하면 다음과 같다. EN(z;μ,σ2)[f(z)]=EN(ϵ;0,1)[f(μ+σϵ)]≃L1∑l=1Lf(μ+σϵ(l)) where ϵ(l)∼N(0,1)
qϕ(z∣x)에 대하여 differentiable transformation gϕ(.)과 주변변수 ϵ∼p(ϵ)을 사용할 수 있는 접근들은 다음과 같다.
1. tractable한 inverse CDF. ϵ∼U(0,I) 이고, qϕ(z∣x)의 inverse CDF gϕ(ϵ,x)를 가정한 경우.
ex) Exponential, Cauchy, Logistic, Rayleigh, Pareto, Weibull, Reciprocal, Gompertz, Gumbel and Erlang distributions.
2. Gaussian과 유사하게, standard distribution을 선택할 수 있는 'location-scale' family 분포들.
ex) Laplace, Elliptical, Student’s t, Logistic, Uniform, Triangular and Gaussian distributions. location-scale faimily란 평균과 분산의 조정을 통하여 같아질 수 있는 분포들을 의미한다. 즉, 위의 말은 평균과 분산을 조정했을 때 standard distribution이 될 수 있는 분포들을 의미한다.
3. random variable을 다른 분포의 auxiliary variable로 transform 할 수 있는 분포들. (다른 분포들을 통해 표현할 수 있는 분포)
ex) Log-Normal (exponentiation of normally distributed
variable), Gamma (a sum over exponentially distributed variables), Dirichlet (weighted sum of Gamma variates), Beta, Chi-Squared, and F distributions.
3. Example : Varaiational Auto-Encoder
이 부분은 probabilistic encoder qϕ(z∣x)를 위하여 neural network를 사용하고, parameter의 ϕ,θ의 추정을 위하여 AEVB 알고리즘을 사용한 예제이다.
가정
latent variable의 prior : isomorpic multivariate Gaussian
- pθ(z)=N(z;0,I)
- 이 경우, prior에는 parameter이 없다.
pθ(x∣z)는 given z에 대하여 MLP로 계산되는 multivariate Gaussian(real data일 때) 이거나 Bernoulli(binary data)
- 이 경우, posterior pθ(x∣z)는 intractable
qϕ(z∣x)는 근사적으로 diagonal covariance를 가지는 Gaussian이다.
- logqϕ(z∣x(i))=logN(z;μ(i),σ2(i)I)
- μ(i)와 σ(i)는 datapoint x(i)와 ϕ에 대한 nonlinear function encoding MLP의 output이다.
학습과정
2.4에서 말했다시피, posterior z(i,l)∼qϕ(z∣x(i))을 sample하기 위하여 z(i,l)=gϕ(x(i),ϵ(l))=μ(i)+σ(i)⊙ϵ(l)
where ϵ(l)∼N(0,I)
을 사용한다. 이때 ⊙는 elementwise product이다.