Search
Duplicate

AI/ Change of Variables

Change of Variables

change of variables란 한 변수의 함수를 다른 변수의 함수로 바꾸는 방법을 말한다. 이것은 복잡한 식을 단순한 형태로 변환하여 쉽게 계산하기 위한 용도로 사용된다.
예컨대 어떤 적분식에서 변수 yyy=f(x)y = f(x)라 치환한 다음 yyxx에 대해 미분하면 다음과 같이 정리할 수 있다.
y=f(x)dydx=f(x)dy=f(x)dxdyf(x)=dx(1)\begin{aligned} y &= f(x) \\ \Rightarrow {dy \over dx} &= f'(x) \\ \Rightarrow dy &= f'(x) dx \\ \Rightarrow {dy \over f'(x)} &= dx \end{aligned} \tag{1}

scalar case

change of variables를 확률 질량 함수와 확률 밀도 함수 모두에 대해 적용할 수 있다. 확률 변수 yy가 0-1사이의 값을 갖는 균등 분포 xUnif(0,1)x \sim \text{Unif}(0, 1)y=f(x)=2x+1y = f(x) = 2x + 1의 관계를 갖는다고 하자.
두 확률 분포는 1:1 대응이 되므로 두 확률 분포의 밀도는 동일해야 한다.
py(y)dy=px(x)dx=1(2)\int p_y(y)dy = \int p_x(x)dx = 1 \tag{2}
xxyy에 함수적 관계가 성립하고 역함수가 존재하므로 식 (1)을 따라 다음과 같이 정리할 수 있다.
y=f(x)dy=(ddxf(x))dx(3)y = f(x) \Rightarrow dy = \left({d \over dx} f(x) \right) dx \tag{3}
x=f1(y)=g(y)x = f^{-1}(y) = g(y)이므로 식 (1)을 따라 같은 식으로 정리하면
x=f1(y)dx=(ddyg(y))dy(4)x = f^{-1}(y) \Rightarrow dx = \left( {d \over dy} g(y) \right) dy \tag{4}
식 (4)를 식 (2)에 대입하면 (여기서 확률 함수이므로 g(y)g(y)의 도함수에 절대값을 취한다.)
py(y)dy=px(g(y))dx=px(g(y))ddyg(y)dy=1\int p_y(y)dy = \int p_x(g(y))dx = \int p_x(g(y)) \left| {d\over dy}g(y) \right| dy = 1
위 식을 yy에 대해 미분하여 정리하면
py(y)= px(g(y))ddyg(y)p_y(y) = \ p_x(g(y)) \left| {d\over dy}g(y) \right|
이것을 change of variables 공식이라고 한다.
change of variables는 결국 복잡하거나 계산이 어려운 확률 함수 py(y)p_y(y)를 해당 함수와 함수적 관계를 갖는 다루기 쉬운 확률 함수 px(x)p_x(x)와 쉬운 확률 함수로 변환하는 함수 f(x)f(x)의 역함수 f1(y)=g(y)f^{-1}(y) = g(y)를 통해 표현하는 것이라 할 수 있다.

multivariate case

다변량인 경우도 scalar와 마찬가지로 식을 전개할 수 있다. 다변량이므로 행렬-벡터 형식으로 y=f(x)\bold{y} = \bold{f}(\bold{x})x=f1(y)=g(y)\bold{x} = \bold{f}^{-1}(\bold{y}) = \bold{g}(\bold{y})로 표현하여 식을 전개하면 다음을 얻을 수 있다.
py(y)=px(g(y))det[Jg(y)]p_y(\bold{y}) = p_x(\bold{g}(\bold{y})) | \det [\bold{J}_g(\bold{y})] |
여기서 Jg=dg(y)dyT\bold{J}_g = {d\bold{g}(\bold{y}) \over d\bold{y}^T}g\bold{g}의 야코비안이고, detJ(y)| \det \bold{J(y)}|y\bold{y}에서 평가된 J\bold{J} 행렬식의 절대값이다.

참고