※ Jacobian matrix의 정식 한글 명칭은 ‘야코비 행렬’인 것으로 보이나 통상적으로 많이 사용하는 ‘자코비안 행렬’로 부르고자 합니다.
※ 본 article에서는 열벡터(column vector) convention을 따릅니다.
※ 본 포스팅은 Grant Sanderson의 Khan Academy Jacobian 강의로부터 대부분의 내용을 차용했음을 밝힙니다.
Khan Academy 영상 출처: https://www.khanacademy.org/math/multivariable-calculus/multivariable-derivatives/jacobian/v/jacobian-prerequisite-knowledge
prerequisites
Jacobian 행렬의 기하학적 의미를 이해하기 위해선 다음의 내용에 대해 숙지하고 오는 것이 좋습니다.
자코비안 행렬의 정의
조금 복잡해 보이겠지만, 우선은 자코비안 행렬의 정의에서부터 이야기를 시작해보자.
$n$차원 벡터 $x\in\mathbb{R}^n$를 입력으로 받고 $m$차원 벡터 $f(x)\in\mathbb{R}^m$를 출력으로 생성하는 벡터 함수 $f: \mathbb{R}^n \rightarrow \mathbb{R}^m$가 있다고 가정해보자.
이 때, 이 함수의 1차 편미분이 $\mathbb{R}^n$의 실수 벡터 공간에서 존재한다고 하면, 자코비안은 다음과 같이 $m\times n$ 행렬로 정의할 수 있다.
\[J = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n}\\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix}\]자코비안 행렬의 복잡한 수식을 보자마자 알 수 있는 것 중 하나는 자코비안 행렬의 원소들은 모두 1차 미분 계수로 구성되어 있다는 점이다. 또, 자코비안 행렬은 미소 변화에 관한 선형 변환이라는 것을 알 수 있다.
사실, 자코비안이 말하고자 하는 것은 미소 영역에서 ‘비선형 변환’을 ‘선형 변환으로 근사’ 시킨 것이다.
이에 대해선 차근히 더 이해해보도록 하자.
다변수함수의 chain rule
Jacobian 행렬을 이해하기에 앞서, 가장 핵심적인 내용인 chain rule에 대해 짧게 짚고 넘어가보자.
일반적으로 다변수함수라고 하면 2개 이상의 입력을 갖는 함수를 생각할 수 있지만, 추후에 볼 예시는 모두 2차원 평면상에 표시할 수 있는 함수를 이용해 진행할 것이기 때문에 이변수함수에 한정해 chain rule을 알아보도록 하자.
이변수 함수 $z = f(x,y)$에 대해 $x = g(t)$, $y = h(t)$이고, $f(x,y)$, $g(t)$, $h(t)$가 모두 미분 가능한 함수이면
\[\frac{dz}{dt} = \frac{\partial z}{\partial x}\frac{dx}{dt} + \frac{\partial z}{\partial y}\frac{dy}{dt}\]이다.
위 식을 약간 변형하면 다음과 같이 쓸 수 있다.
\[dz = \frac{\partial z}{\partial x}dx + \frac{\partial z}{\partial y}dy\]Jacobian 행렬의 기하학적 의미
비선형 변환
행렬과 선형변환에서는 선형대수학의 기본정리를 설명하였다. 한 마디로 행렬은 선형 변환이라는 것이었다.
기하학적으로 선형변환이란 다음과 같은 특징을 가진 변환이다.
- 변환 후에도 원점의 위치가 변하지 않고,
- 변환 후에도 격자들의 형태가 직선의 형태를 유지하고 있으며,
- 격자 간의 간격이 균등해야 한다.
대표적인 선형변환인 shear 행렬의 선형변환 애니메이션을 보도록 하자.
선형변환 예시: shear matrix
\[\begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}\]위의 shear matrix의 변환 전, 후의 격자의 형태를 보면 위의 세 가지 선형 변환의 기하학적 특성을 만족시키는 것을 알 수 있다.
반면, 비선형 변환은 쉽게 말하면 선형변환이 아닌 변환을 통칭한다고 할 수 있을 것 같다.
아래의 비선형 변환의 예시를 보고, 기하학적으로 선형변환의 특징을 가지지 않는다는 것을 시각적으로 확인해보자.
비선형 변환 예시
\[f(x,y) = \begin{bmatrix} x + \sin(y/2) \\ y + \sin(x/2)\end{bmatrix}\]비선형 변환 결과를 국소적으로 관찰하면?
앞서 자코비안의 정의에 대해 알아볼 때 자코비안이 말하고자 하는 것은 미소 영역에서 ‘비선형 변환’을 ‘선형 변환으로 근사’ 시킨 것이라고 언급한 바가 있다. 그렇다면 정말 비선형 변환을 미소 영역에서 본다면 선형 변환으로 충분히 근사할 수 있는 것일까?
아래의 시각적 예시를 확인해보자.
왼쪽 그래프에 있는 흰색 박스의 장면을 확대 해놓은 것이 오른쪽 그래프에 그려져 있다.
위 비선형 변환의 국소적 관찰에 관련된 Javascript applet의 마지막 장면은 아래의 그림 1과 같다.
그림 1에서 볼 수 있듯이 비선형 변환을 국소적으로 관찰하면 변환 후에도 격자들의 형태가 직선 형태에 가까우며 격자들 간의 간격도 균등하게 유지되고 있는 것을 알 수 있다.
그림 1. 비선형 변환을 국소적으로 관찰하면 선형변환으로 근사시켜 생각할 수 있다.
그렇다면, 처음 언급했던 선형변환의 기하학적 특징 중 원점의 위치가 변하지 않는 것은 어떻게 해결할까?
아래의 그림 2에서 볼 수 있듯이 변환하고자 하는 $(x_0, y_0)$에서의 점을 원점이라 생각하고 근사하고자 하는 행렬을 얻으면 그것이 비선형 변환을 선형 변환으로 근사시킨 행렬인 ‘자코비안 행렬’을 얻을 수 있게 되는 것이다.
그림 2. 자코비안 행렬은 비선형 변환을 선형 변환으로 근사시킨 결과이다.
출처: https://math.stackexchange.com/questions/951917/what-do-i-do-with-these-equations-to-create-a-jacobian-matrix
Jacobian 행렬의 유도
이젠 자코비안 행렬이 비선형 변환을 국소적으로 선형변환으로 근사한 것이라는 사실을 알았으니 직접 자코비안 행렬을 유도해보도록 하자.
아래의 그림과 같이 비선형 변환의 결과를 선형 변환과 유사하게 근사시켰을 때 $(u,v)$ 좌표계에서 $(x,y)$ 좌표계로 변하는 경우로 볼 수 있다고 상정해보자.
그림 3. 비선형 변환 전, 후의 미소 변위 간의 관계
그러면 어떤 선형변환 $J$에 의해서 $du$와 $dv$는 $dx$와 $dy$로 변환된다고 볼 수 있다.
수식으로 나타내면 다음과 같다.
\[\begin{bmatrix} dx \\ dy \end{bmatrix} = J \begin{bmatrix}du \\ dv\end{bmatrix} = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} du \\ dv \end{bmatrix}\]위 수식을 풀어서 쓰면 다음과 같은데,
\[dx = a\times du + b\times dv\] \[dy = c \times du + d \times dv\]위 두 수식은 chain rule을 통해 얻은 식 (3)을 통해 생각하면 국소적 비선형 변환의 전 후의 관계식을 얻을 수 있으므로, 자코비안 행렬은 다음과 같이 생각할 수 있다.
\[J = \begin{bmatrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \end{bmatrix}\]Jacobian 행렬의 행렬식
행렬식의 기하학적 의미편에서는 행렬식은 선형변환 할 때 단위 면적이 얼마만큼 늘어나는가를 나타낸다고 언급하였다.
아래의 그림 4에서 볼 수 있듯이 선형 변환 전의 사각형의 넓이가 1이었다면 선형 변환 후에는 행렬식 값 만큼의 넓이인 $ad-bc$로 사각형이 변형된다.
그림 4. 행렬식의 기하학적 의미. 행렬식은 선형 변환 할 때 단위 면적이 얼마만큼 늘어나는가를 말해준다.
따라서, Jacobian의 행렬의 행렬식의 의미는 원래 좌표계에서 변환된 좌표계로 변환될 때의 넓이의 변화 비율을 말해준다.
아래의 그림 5에서 $(u, v)$ 좌표계에서 $(x, y)$ 좌표계로 변환 될 때, $dx\times dy$와 $du\times dv$의 관계는 다음과 같다.
\[dx\times dy = |J| (du\times dv)\]여기서 $|J|$는 Jacobian 행렬의 행렬식을 의미한다.
(여기서 $\times$ 기호는 단순 곱셈 기호이지 외적 기호가 아니다.)
그림 5. 행렬식의 기하학적 의미. 행렬식은 선형 변환 할 때 단위 면적이 얼마만큼 늘어나는가를 말해준다.
Jacobian 행렬식 사용 예시
이번에는 자코비안을 이용해서 원의 넓이를 구해보는 예시를 수행해보도록 하자.
원의 넓이를 구하는 방법은 여러가지가 있을 수 있지만 $r, \theta$ 좌표계에서 원의 넓이를 구하는 방법을 이용하는 것도 한 가지 방법이다.
그렇다면 Jacobian을 이용해서 $r, \theta$ 좌표계에서 원의 넓이를 구한다는 것은 무슨 의미일까?
그것은, 가로축이 $r$이고 세로축이 $\theta$인 좌표계에서 무엇인가를 계산한 뒤(여기서는 해당 $r, \theta$ 좌표계에서의 넓이) 가로축이 $x$, 세로축이 $y$인 좌표계로 변환을 시켜주겠다는 의미이며,
여기서 Jacobian 행렬식의 역할은 좌표계 간의 변환 시 필요한 넓이의 보정값이라고 할 수 있다.
이를 이해하기 위해 아래의 두 애니메이션을 관찰해보자.
위 애니메이션의 첫 장면에서는 $r, \theta$ 좌표게에 있던 점들을 볼 수 있는데, 애니메이션의 후반부에서는 이 점들이 $x, y$ 좌표게로 옮겨지는 것을 알 수 있다.
이 과정에서 왼쪽 애니메이션의 경우에는 결과 부분에서 원의 넓이가 듬성 듬성하게 보이지만, 오른쪽 애니메이션의 경우 원의 넓이가 어느정도는 꽉 차 보이는 것을 알 수 있다.
이 때, 적절히 꽉 채워줄 만큼의 넓이 보정값이 Jacobian의 행렬식 값이 되는 것이다.
$r, \theta$ 좌표게에서 $x,y$ 좌표계로의 변환 공식은 아래와 같다.
\[\begin{bmatrix}x \\ y \end{bmatrix} = \begin{bmatrix}r\cos(\theta) \\ r\sin(\theta)\end{bmatrix}\]이 공식에서 Jacobian 행렬을 계산하면,
\[J = \begin{bmatrix} \frac{\partial x}{\partial r} & \frac{\partial x}{\partial \theta} \\ \frac{\partial y}{\partial r} & \frac{\partial y}{\partial \theta} \end{bmatrix}\] \[= \begin{bmatrix}\cos(\theta) & -r\sin(\theta) \\ \sin(\theta) & r\cos(\theta)\end{bmatrix}\]이며, Jacobian의 행렬식 값을 계산하면 다음과 같다.
\[|J| = r\cos^2(\theta) + r\sin^2(\theta) = r\]이제 이 Jacobian의 행렬식 값을 이용해 $r,\theta$ 좌표계에서 반지름이 3인 원의 넓이를 계산해보자.
\[\int_{r=0}^{r=3}\int_{\theta = 0}^{\theta = 2\pi}dxdy\] \[=\int_{r=0}^{r=3}\int_{\theta = 0}^{\theta = 2\pi}|J|drd\theta\] \[=\int_{r=0}^{r=3}\int_{\theta = 0}^{\theta = 2\pi}r drd\theta\] \[=\int_{r=0}^{r=3}r\theta|_{\theta = 0}^{\theta = 2\pi}dr\] \[=2\pi \frac{1}{2}r^2|_{r=0}^{r=3}\] \[=2\pi\cdot \frac{1}{2}3^2 = 3^2\pi\]
그림 6. $r, \theta$ 좌표계에서 $x, y$ 좌표계로의 선형 변환
출처: 8일간의 선형대수학, 경문사, 박부성 지음