본문 바로가기
AI 수학/최적화

벡터 함수를 벡터로 미분하기 : 자코비안

by 세인트 워터멜론 2020. 7. 16.

벡터 \( {\bf x} = \begin{bmatrix} x_1 &x_2 & ... & x_n \end{bmatrix} ^T \) 의 구성요소를 변수로 하는 다변수 스칼라 함수 \(f(x_1, x_2, …, x_n) \) 을 간단히 \( f( {\bf x}) \) 로 표기했다. 동일한 벡터를 변수로 갖는 스칼라 함수가 여럿 있다면 \( f( {\bf x}) \), \( g( {\bf x}) \), \( h( {\bf x}) \), \(... \) 이렇게 구별할 수 있을 것이다.

 

 

그런데 함수가 많다면 함수 이름으로 사용할 알파벳이 동날 것이므로, 보통 함수에 아래 첨자를 써서 그 함수들을 구별한다. 만약 스칼라 함수가 \( m \) 개 있다면, \( f_1( {\bf x}) \), \( f_2( {\bf x}) \), \(... \), \( f_m( {\bf x}) \) 로 표기한다. 아래 첨자가 다르면 서로 다른 함수다.

벡터 함수는 2개 이상의 스칼라 함수를 구성요소로 하는 벡터를 말한다. 벡터 \( {\bf x} \) 를 변수로 하는 벡터 함수를 \( {\bf f}({\bf x}) \)로 표기한다.

 

\[ {\bf f}({\bf x}) = \begin{bmatrix} f_1( {\bf x}) \\ f_2({\bf x}) \\ \vdots \\ f_m({\bf x}) \end{bmatrix} = \begin{bmatrix} f_1(x_1, x_2, ..., x_n) \\ f_2(x_1, x_2, ..., x_n) \\ \vdots \\ f_m(x_1, x_2, ..., x_n) \end{bmatrix} \]

 

이렇게 표기하면 다변수-다함수가 마치 변수가 한 개, 함수도 한 개인 단변수-단함수인 것처럼 보기가 편해진다.

다음은 벡터 함수의 예다. 극좌표계 \( (r,\theta) \)를 직교 좌표계 \( (x,y) \)로 바꾸는 벡터 함수다.

 

\[ {\bf f}({\bf x}) = \begin{bmatrix} f_1( r,\theta) \\ f_2(r,\theta) \end{bmatrix} = \begin{bmatrix} r \cos \theta \\ r \sin \theta \end{bmatrix} \]

 

여기서 \( {\bf x} = \begin{bmatrix} r \\ \theta \end{bmatrix} \) 이고, \( f_1=x\), \( f_2=y \) 이다.

 

 

벡터 함수 \( {\bf f} \) 를 벡터 \( {\bf x} \) 에 대해 미분한다는 표기인 \( \frac{d\bf f}{d\bf x} \) 는 다음과 같이 정의한다.

 

\[ \frac{d {\bf f}}{d {\bf x}} = \begin{bmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_2}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_1} \\ \frac{\partial f_1}{\partial x_2} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_m}{\partial x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial f_1}{\partial x_n} & \frac{\partial f_2}{\partial x_n} & \cdots & \frac{\partial f_m}{\partial x_n} \end{bmatrix} \]

 

정의에 의하면 \( \frac{d\bf f}{d\bf x} \) 는 열의 개수가 \( m \) , 행의 개수가 \( n \) 인 행렬이다. \( m \) 은 스칼라 함수의 개수, \( n \) 은 벡터의 구성요소 개수다. 벡터 함수의 벡터 미분인 \( \frac{d\bf f}{d\bf x} \) 자코비안 행렬(Jacobian matrix)이라고 한다.

자코비안 행렬의 정의를 보면 행렬의 첫번째 열은 첫번째 스칼라 함수 \( f_1 \) 의 그래디언트, 두번째 열은 두번째 스칼라 함수 \( f_2 \) 의 그래디언트인 것을 알 수 있다. 이와 같이 자코비안 행렬의 \( j \) 번째 열은 \( j \) 번째 스칼라 함수 \( f_j \) 의 그래디언트이다.

책이나 논문에 따라서는 행과 열을 바꾸어서 자코비안을 정의하기도 한다. 쓰임새에 따라서 장단점이 있으니 둘 중 하나의 정의를 선택한 후 일관성 있게 사용하면 된다.

예를 들어 보자. 극좌표계 \( (r,\theta) \) 를 직교 좌표계 \( (x,y) \) 로 바꾸는 벡터 함수의 자코비안 행렬 \( \frac{d \bf f}{d \bf x} \) 는 다음과 같이 계산된다.

 

\[ \frac{d {\bf f}}{d {\bf x}} = \begin{bmatrix} \frac{\partial f_1}{\partial r} & \frac{\partial f_2}{\partial r} \\ \frac{\partial f_1}{\partial \theta} & \frac{\partial f_2}{\partial \theta} \end{bmatrix} = \begin{bmatrix}\cos \theta & \sin \theta \\ -r \sin \theta & r \cos \theta \end{bmatrix} \]

 

 

댓글