콘텐츠로 이동

12강에서는 입력이 하나인 함수에서 순간변화율을 미분으로 읽었습니다. 하지만 실제 AI 함수는 거의 항상 입력이 여러 개입니다. 이미지 한 장도 수많은 픽셀을 입력으로 받고, 신경망 한 층도 여러 값을 동시에 출력합니다. 13강은 이때 변화율을 어떻게 읽는지 다룹니다. 편미분은 한 변수만 바꿔 보는 변화율, gradient는 가장 빠르게 증가하는 방향, Jacobian은 여러 입력과 여러 출력의 변화를 한 표로 정리한 것입니다.

먼저 알아둘 말

  • 편미분: 여러 변수 중 하나만 바꾸고 나머지는 고정했을 때의 변화율이다.
  • gradient: 스칼라 함수가 가장 빠르게 증가하는 방향을 담은 벡터다.
  • 방향미분: 어떤 특정 방향으로 움직일 때의 변화율이다.
  • Jacobian: 벡터값 함수의 편미분을 행렬 형태로 정리한 것이다.
  • 국소선형근사: 아주 작은 범위에서는 함수를 선형 함수처럼 보는 근사다.
  • 입력공간: 함수에 넣는 값들이 놓인 공간이다.
  • 출력공간: 함수가 내놓는 값들이 놓인 공간이다.

이 강의에서 답할 질문

  • 입력이 여러 개일 때 왜 보통 미분 하나로는 부족한가?
  • 편미분은 왜 한 변수만 바꾸는 계산으로 정의되는가?
  • gradient는 왜 가장 빨리 증가하는 방향을 가리키는가?
  • 여러 출력이 있으면 왜 Jacobian이 필요한가?
  • Jacobian은 왜 다변수 함수의 미분 행렬이라고 불리는가?

먼저 떠올릴 장면

  • 산 위 한 지점에 서 있으면 동쪽으로 갈 때의 경사와 북쪽으로 갈 때의 경사가 다를 수 있습니다.
  • 레시피에서 설탕을 늘릴 때와 소금을 늘릴 때 결과 맛의 변화는 다릅니다.
  • 신경망 한 층은 여러 입력을 받아 여러 출력을 만들기 때문에, 변화율도 한 숫자가 아니라 표처럼 정리되어야 합니다.

생각의 순서

  1. 먼저 한 변수 미분만으로는 부족한 이유를 봅니다.
  2. 그다음 편미분으로 각 변수 방향의 변화를 따로 읽습니다.
  3. 이어서 편미분들을 모아 gradient를 만듭니다.
  4. 출력이 여러 개일 때는 Jacobian으로 확장합니다.
  5. 마지막으로 Jacobian이 국소선형근사와 역전파에 왜 중요한지 연결합니다.

본문

입력이 하나인 함수

$$ f(x) $$

에서는 미분

$$ f'(x) $$

하나로 변화율을 표현할 수 있었습니다. 하지만 함수가

$$ f(x,y) $$

처럼 입력이 둘 이상이면 상황이 달라집니다. x를 바꿀 때의 변화와 y를 바꿀 때의 변화가 다를 수 있기 때문입니다.

예를 들어

$$ f(x,y)=x^2+3y $$

를 봅시다. 이 함수에서 x는 제곱 형태로 들어가므로 위치에 따라 영향이 달라지고, y는 항상 3배로 반영됩니다. 즉 두 입력의 역할이 같지 않습니다. 그래서 각 입력을 따로 바꾸어 보는 변화율이 필요합니다. 이것이 편미분입니다.

편미분은 한 변수만 바꾸고 나머지는 잠깐 고정합니다.

$$ \frac{\partial f}{\partial x}, \qquad \frac{\partial f}{\partial y} $$

는 각각 x 방향과 y 방향 변화율입니다.

위 함수에 대해 계산하면

$$ \frac{\partial f}{\partial x}=2x, \qquad \frac{\partial f}{\partial y}=3 $$

입니다.

이 식의 뜻을 말로 읽어 보면 더 중요합니다.

  • x 방향으로 조금 움직이면 변화율은 현재 x값에 따라 달라집니다.
  • y 방향으로 조금 움직이면 변화율은 항상 3입니다.

즉 편미분은 각 입력이 결과에 미치는 영향을 축별로 분해해서 보여 줍니다.

하지만 편미분 두 개를 따로따로 들고 있으면 전체 그림이 잘 안 보일 수 있습니다. 그래서 스칼라값 함수에서는 편미분들을 한 벡터로 모읍니다. 그것이 gradient입니다.

$$ \nabla f(x,y)= \begin{bmatrix} \frac{\partial f}{\partial x} \ \frac{\partial f}{\partial y} \end{bmatrix} $$

방금 함수에서는

$$ \nabla f(x,y)= \begin{bmatrix} 2x \ 3 \end{bmatrix} $$

가 됩니다.

gradient가 왜 중요한지 이해하려면 방향미분을 생각하면 됩니다. 어떤 방향 벡터

$$ u $$

로 조금 움직일 때 함수가 얼마나 변하는지는 대략 gradient와 연결됩니다. 특히 gradient가 가리키는 방향으로 움직이면 함수가 가장 빨리 증가합니다. 반대로

$$ -\nabla f $$

방향으로 움직이면 가장 빨리 감소합니다.

그래서 최적화에서는 gradient가 핵심입니다. 손실함수를 줄이고 싶다면 gradient의 반대 방향으로 움직이면 되기 때문입니다. 경사하강법이 바로 이 생각을 구현한 알고리즘입니다.

지금까지는 출력이 하나인 함수만 생각했습니다. 그런데 실제 시스템은 출력도 여러 개인 경우가 많습니다. 예를 들어

$$ F(x,y)= \begin{bmatrix} f_1(x,y) \ f_2(x,y) \end{bmatrix} $$

처럼 벡터를 출력하는 함수라면, 각 출력이 각 입력에 얼마나 민감한지를 한꺼번에 정리해야 합니다. 이때 Jacobian을 씁니다.

Jacobian은 다음과 같이 정의합니다.

$$ J_F(x,y)= \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은 여러 입력과 여러 출력의 편미분을 한 장의 표에 모은 것입니다. 그래서 Jacobian을 다변수 함수의 미분 행렬이라고 부릅니다.

예를 들어

$$ F(x,y)= \begin{bmatrix} x+y \ xy \end{bmatrix} $$

라면 첫 번째 출력은

$$ x+y $$

이므로 x와 y에 대한 편미분이 둘 다 1입니다. 두 번째 출력은

$$ xy $$

이므로 x로 미분하면

$$ y $$

이고 y로 미분하면

$$ x $$

입니다. 따라서

$$ J_F(x,y)= \begin{bmatrix} 1 & 1 \ y & x \end{bmatrix} $$

가 됩니다.

Jacobian이 중요한 가장 큰 이유는 다변수 함수도 아주 작은 범위에서는 선형처럼 움직이기 때문입니다. 점

$$ x_0 $$

근처에서 함수는 대략

$$ F(x_0+\Delta x)\approx F(x_0)+J_F(x_0)\Delta x $$

처럼 행동합니다.

이 식은 Jacobian이 그 점에서의 가장 좋은 선형 근사라는 뜻입니다. 1변수 함수에서 미분계수가 접선의 기울기였다면, 다변수 함수에서는 Jacobian이 그 역할을 행렬 형태로 맡습니다.

AI에서는 이 생각이 직접 쓰입니다. 신경망의 한 층은 벡터를 벡터로 보내는 함수이고, 여러 층이 쌓이면 전체 변화율은 각 층의 Jacobian이 연결된 결과로 읽을 수 있습니다. 역전파는 결국 이 변화율 정보를 효율적으로 전달하는 과정입니다.

결국 편미분은 축별 변화율, gradient는 가장 빠른 증가 방향, Jacobian은 다변수 함수 전체의 변화 구조를 보여 주는 도구입니다.

예제

  1. 편미분 계산하기 문제: 함수

$$ f(x,y)=x^2+3y $$

의 편미분을 구하라.

풀이:

$$ \frac{\partial f}{\partial x}=2x, \qquad \frac{\partial f}{\partial y}=3 $$

해설: x를 미분할 때는 y를 상수처럼 보고, y를 미분할 때는 x를 상수처럼 본다. 이것이 편미분의 기본 규칙이다.

  1. gradient 만들기 문제: 위 함수의 gradient를 써라.

풀이:

$$ \nabla f(x,y)= \begin{bmatrix} 2x \ 3 \end{bmatrix} $$

해설: 각 변수 방향의 변화율을 한 벡터로 모은 것이 gradient다. 이 벡터는 함수가 가장 빨리 증가하는 방향과 연결된다.

  1. Jacobian 구하기 문제: 함수

$$ F(x,y)= \begin{bmatrix} x+y \ xy \end{bmatrix} $$

의 Jacobian을 구하라.

풀이:

$$ J_F(x,y)= \begin{bmatrix} 1 & 1 \ y & x \end{bmatrix} $$

해설: 첫째 행은 첫 번째 출력의 변화율, 둘째 행은 두 번째 출력의 변화율이다. Jacobian은 여러 출력의 편미분을 한 번에 정리한다.

스스로 점검

  1. 왜 입력이 여러 개이면 미분 하나만으로는 부족한지 설명할 수 있는가?
  2. 편미분이 왜 한 변수만 바꾸는 변화율인지 설명할 수 있는가?
  3. gradient가 어떤 방향 정보를 담고 있는지 말할 수 있는가?
  4. Jacobian의 행과 열이 각각 무엇을 뜻하는지 설명할 수 있는가?

$$ F(x_0+\Delta x)\approx F(x_0)+J_F(x_0)\Delta x $$

가 왜 국소선형근사를 뜻하는지 설명할 수 있는가?