본문 바로가기
머신러닝/확률모델

Reparameterization Trick에 대한 수학적 이해와 기댓값의 미분가능성

by CHML 2023. 12. 21.
1. 기댓값 (Expectation)의 미분가능성

많은 머신러닝 문제에서 우리는 식 (1)과 같이 모델 매개변수 θ에 대해 어떠한 기댓값을 최대화하고자 한다.

(1)θ=argmaxθEp(x)[fθ(x)].

식 (1)을 풀기 위해 θ에 대해 Ep(x)[fθ(x)]를 미분하면 다음과 같다.

θEp(x)[fθ(x)]=θ[xp(x)fθ(x)dx]=xp(x)[θfθ(x)]dx(2)=Ep(x)[θfθ(x)].

따라서 fθ(x)가 인공신경망 등과 같이 θ에 대해 미분가능한 함수라면, 우리는 식 (1)의 기댓값에 대한 gradient를 식 (2)와 같이 gradient의 기댓값으로 계산할 수 있다.

식 (2)에서는 데이터의 참된 분포인 p(x)를 알고 있다고 가정했다. 그러나 대부분의 머신러닝 문제에서는 p(x)를 정확히 알 수 없으며, 이를 데이터로부터 추정하기 위해 p(x)pθ(x)와 같이 매개변수화한다. 매개변수화된 데이터 분포 pθ(x)를 가정할 때, 식 (2)의 과정은  아래와 같이 변형된다.

θEpθ(x)[fθ(x)]=θ[xpθ(x)fθ(x)dx]=xθ[pθ(x)fθ(x)]dx=xfθ(x)θpθ(x)dx+xpθ(x)fθ(x)dx(3)=xfθ(x)θpθ(x)dx+Epθ(x)[θfθ(x)].

식 (3)의 두번째 항은 식 (2)와 같이 pθ(x)에 대한 θfθ(x)의 기댓값으로 정의된다.

그러나 식 (3)의 첫번째 항은 pθ(x)에 대한 어떠한 함수의 기댓값으로 표현되지 않는다. 따라서 x에 대한 샘플을 추출하여 몬테카를로 방법 (Monte Carlo method)을 기반으로 식 (3)의 첫번째 항을 근사할 수 없다. 만약 θpθ(x)에 대한 analytic solution을 구할 수 있다면 몬테카를로 방법 없이도 계산이 가능하겠지만 대부분의 경우에 우리는 θpθ(x)에 대한 analytic solution을 찾을 수 없다.

 

2. Reparameterization Trick

많은 머신러닝 방법론에서 입력 데이터 x의 숨겨진 정보를 나타내는 잠재 표현 (latent representation) z를 가정하기 때문에 기댓값 Epθ(z)[fθ(z)]에 대해 모델 매개변수 θ를 최적화하는 문제가 자주 나타난다. 그러나 식 (3)에서 보이듯이 pθ(z)를 따르는 확률변수의 어떠한 기댓값 Epθ(z)[]에 대해 θ의 gradient를 계산하는 것이 항상 가능한 것은 아니다. Reparameterization trick의 핵심은 확률 변수 z를 deterministic 부분과 stochastic 부분으로 나누는 것이다.

만약 z가 정규분포 N(μ,σ2)을 따른다면, zμ를 중심으로 σ 정도의 변동성을 가진 값일 것이다. 따라서 N(μ,σ2)에서 z를 바로 샘플링하는 것이 아니라, 먼저 표준정규분포인 N(0,1)에서 ϵ를 샘플링하고 아래의 식 (4)와 같이 z를 재구성할 수 있다.

(4)z=μ+ϵ×σ

이러한 reparameterization trick을 일반화하면 아래의 식 (5)와 같다.

(5)z=gθ(x,ϵ)

식 (5)에서 ϵ은 우리가 이미 알고있는 어떠한 확률분포를 따르는 확률변수이며, z는 입력 데이터 x와 난수 ϵ을 기반으로 매개변수화된 함수 gθ에 의해 z=gθ(x,ϵ)으로 계산된다. 이러한 reparameterization trick을 적용하면 우리가 최대화하고자 하는 기댓값은 아래와 같이 변형된다.

(6)Epθ(z)[fθ(z)]=Ep(ϵ)[fθ(gθ(x,ϵ))]

Reparameterization trick에서 가장 중요한 점은 우리가 이미 ϵ의 확률분포 p(ϵ)을 알고있기 때문에 매개변수화된 함수로 근사할 필요가 없다는 것이다. 따라서 p(ϵ)은 우리가 최적화해야하는 매개변수 θ와 독립이며, 식 (6)에 대한 θ의 gradient는 아래와 같이 계산된다.

(7)θEp(ϵ)[fθ(gθ(x,ϵ))]=Ep(ϵ)[θ(fθ(gθ(x,ϵ)))]

우리는 이미 p(ϵ)를 알고있기 때문에 p(ϵ)을 따르는 ϵ을 샘플링할 수 있으며, N을 샘플의 수라고 할 때 몬테카를로 방법에 의해 식 (7)은 아래와 같이 근사된다.

(8)Ep(ϵ)[θ(fθ(gθ(x,ϵ)))]1Nn=1Nθfθ(gθ(xn,ϵn)).

일반적으로 머신러닝에서는 fθgθ 모두 미분가능한 인공신경망으로 정의되기 때문에 경사하강법 (gradient descent method)을 이용하면 (8)에 대한 최적의 매개변수 θ (정확히는 local optimum solution)를 찾을 수 있다.