다변수 미적분은 인공지능에서 수없이 사용되는, 필수적인 기초 수학 개념이다.
'Khan Academy'의 'Multivariable Calculus' 유튜브를 보고 내용을 정리해 둔다.
너무 기초적인 내용은 배제하고, 잊고 있었던 개념 위주로 정리할 예정이다.
https://www.youtube.com/watch?v=TrcCbdWwCBc&list=PLSQl0a2vh4HC5feHa6Rc5c0wbRTx56nF7
목차
4. Multivariable Chain Rule
다변수 함수의 미분에서 chain rule을 어떻게 적용하는지는 chain rule에 대한 개념과 편미분에 대한 개념을 알고 있다면 간단하다.
x, y 변수에 대한 스칼라 함수 f가 존재하고, x와 y는 각각 매개변수 t에 대한 함수라 하자.
이때, t에 대한 f의 미분은 다음과 같이 구할 수 있다.
\( \frac{d}{dt} f \left(x(t), y(t) \right) = \frac{\partial f}{\partial x} \cdot \frac{dx}{dt} + \frac{\partial f}{\partial y} \cdot \frac{dy}{dt} \)
이는 직관적으로 다음과 같이 설명할 수 있다.
\( dx = \frac{dx}{dt} dt , dy = \frac{dy}{dt} dt \)
\(df = \frac{\partial f}{\partial x} dx, df = \frac{\partial f}{\partial y} dy \)
따라서
\( df = \frac{\partial f}{\partial x} \cdot \frac{dx}{dt} \cdot dt + \frac{\partial f}{\partial y} \cdot \frac{dy}{dt} \cdot dt \)
여기서 양변에 \(dt\)를 나누면 위와 같은 결과가 나오는 것이다.
1) Vector Form of Multivariable Chain Rule
벡터로 표기하면서 다변수 함수의 chain rule을 일반화할 수 있다.
벡터 함수 \( \mathbf{v}(t) = \begin{bmatrix} x(t) \\ y(t) \end{bmatrix} \)를 정의하자.
이때, 벡터 함수를 t에 대해 미분한다고 하면, v에 대한 편도함수를 구한다고 생각할 수 있을 것이다.
이는 각 요소를 미분하는 것으로, 다음과 같이 나타낼 수 있다.
\( \frac{\mathbf{v}(t)}{dt} = \begin{bmatrix} \frac{dx}{dt} \\ \frac{dy}{dt} \end{bmatrix} \)
아래의 다변수 함수의 연쇄 법칙을 살펴보면, 내적과 같이 요소끼리 곱하여 더한 개념임을 알 수 있다.
\( \frac{d}{dt} f \left(x(t), y(t) \right) = \frac{\partial f}{\partial x} \cdot \frac{dx}{dt} + \frac{\partial f}{\partial y} \cdot \frac{dy}{dt} \)
따라서 위 식은 다음과 같이 벡터의 내적으로 간단히 나타낼 수 있다.
\( \begin{align*} \frac{d}{dt} f \left(x(t), y(t) \right) &= \frac{\partial f}{\partial x} \cdot \frac{dx}{dt} + \frac{\partial f}{\partial y} \cdot \frac{dy}{dt} \\ &= \begin{bmatrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{bmatrix} \cdot \begin{bmatrix} \frac{dx}{dt} \\ \frac{dy}{dt} \end{bmatrix} \end{align*} \)
여기서 왼쪽 벡터는 gradient of f \(\nabla f \)이고, 오른쪽 벡터는 \( \frac{d\mathbf{v}}{dt} = \mathbf{v}^\prime (t) \)이므로, 다음과 같이 표현 가능하다.
\( \nabla f \cdot \mathbf{v}^\prime (t) \)
이는 곧 다변수 함수의 chain rule의 또다른 표현이며, 더 정확하게 다음과 같이 나타낼 수 있다.
\( \nabla f(\mathbf{v}(t)) \cdot \mathbf{v}^\prime \)
이는 마치 변수가 하나인 함수의 chain rule \( \frac{d}{dx} f(g(x)) = f^\prime(g(x)) g^\prime(x) \) 과 같은 형태이다.
5. Jacobian
Jacobian에 대해 알아보자.
구체적으로 Jacobian Matrix, associated determinant에 대해 다룰 것이다.
1) Prerequisite Knowledge
Jacobian에 대해 배우기 이전에, 알아두어야 할 지식이 있다.
선형대수, 특히 행렬을 공간의 변환으로 이해하고 있어야 한다.
해당 내용은 다른 포스팅에 정리되어있다.
https://jjuke-brain.tistory.com/90?category=969282
1) Local Linearity of a Multivariable Function
이제까지 배운 Multivariate Calculus 내용은 Linear Algebra와 겹치는 내용이 상당히 많다.
그리고 이것을 변형하여 비선형 문제에 적용시킬 수도 있다.
예를 들어, 다음과 같은 변환 함수를 생각해보자.
\( f \left( \begin{bmatrix} x \\ y \end{bmatrix} \right) = \begin{bmatrix} x + \sin(y) \\ y + \sin(x) \end{bmatrix} \)
변환이 이루어지는 과정을 아래와 같이 나타냈듯이, 해당 변환은 선형 변환이 아니다.
변환이 매우 복잡해보이지만, multivariable calculus의 성질에 따라 'Locally Linear' 성질을 갖는다.
이는 전체적으로는 선형이 아니지만, 아주 작은 부분을 확대하면 그 부분은 'locally' 선형 변환으로 볼 수 있다는 뜻이다.
2) Jacobian Matrix
Jacobian Matrix는 위와 같이 선형인것 처럼 보이는 변환 행렬을 말한다.
예시에서 함수를 두 개의 스칼라 함수로 나누어 다음과 같이 표현할 수 있다.
\( f \left( \begin{bmatrix} x \\ y \end{bmatrix} \right) = \begin{bmatrix} f_1 (x, y) \\ f_2 (x, y) \end{bmatrix} = \begin{bmatrix} x + \sin(y) \\ y + \sin(x) \end{bmatrix} \)
변환은 2 × 2 행렬일 것이다.
여기서 (1, 1) 요소는 \(f_1\)함수에 대한 \(x\) 방향으로의 partial change, (1,2) 요소는 \(f_2\) 함수에 대한 \(x\) 방향으로의 partial change일 것이다.
마찬가지로 (2, 1) 요소는 \(f_1\)함수에 대한 \(y\)방향으로의 partial change, (2, 2) 요소는 \(f_2\) 함수에 대한 \(y\) 방향으로의 partial change이다.
이를 행렬로 나타내면 다음과 같다.
\( \begin{bmatrix} \frac{\partial f_1}{\partial x} & \frac{\partial f_1}{\partial y} \\ \frac{\partial f_2}{\partial x} & \frac{\partial f_2}{\partial y} \end{bmatrix} \)
이 행렬을 Jacobian Matrix라 한다.
주어진 예의 Jacobian Matrix는 다음과 같다.
\( \begin{bmatrix} 1 & \cos(y) \\ \cos(x) & 1 \end{bmatrix} \)
만약 특정 점 (-2, 1)을 변환시킬 때, 다음과 같은 변환 행렬을 가질 것이다.
\( \begin{bmatrix} 1 & \cos(1) \\ \cos(-2) & 1 \end{bmatrix} \)
6. Hessian Matrix
Hessian Matrix는 이계 도함수의 정보를 모두 모아놓은 집합이다.
정의는 다음과 같다.
\( \mathbf{H} = \begin{bmatrix} \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} \\ \frac{\partial^2 f }{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2} \end{bmatrix} \)
다음과 같은 다변수 함수가 있다고 하자.
\(f(x, y) = e^{x/2} \sin(y) \)
이때 f에 대한 Hessian Marix는 다음과 같다.
\( \mathbf{H}_f = \begin{bmatrix} \frac{1}{y} e^{x/2} \sin(y) & \frac{1}{2} e^{x/2} \cos(y) \\ \frac{1}{2} e^{x/2} \cos(y) & e^{x/2} (- \sin(y)) \end{bmatrix} \)
이는 행렬 함수이기도 한데, (x, y)에 값을 대입해주면 행렬을 얻게 된다.
Hessian Matrix는 변수 개수에 따라 무수히 확장이 가능하다. ( '변수 개수' × '변수 개수' 행렬)
예를 들어, \(f(x, y, z)\)에 대한 Hessian Matrix는 다음과 같다.
\( \mathbf{H}_f = \begin{bmatrix} \frac{\partial^2 f}{\partial x^2} & \frac{\partial^2 f}{\partial x \partial y} & \frac{\partial^2 f}{\partial x \partial z} \\ \frac{\partial^2 f }{\partial y \partial x} & \frac{\partial^2 f}{\partial y^2} & \frac{\partial^2 f}{\partial y \partial z} \\ \frac{\partial^2 f}{\partial z \partial x} & \frac{\partial^2 f}{\partial z \partial y} & \frac{\partial^2 f}{\partial z^2} \end{bmatrix} \)
이러한 표기를 통해 이계 편도함수 정보를 쉽게 나타낼 수 있다.
최근댓글