Gradient, Jacobian, Hessian 정리 | 입력과 출력 차원에 따라 미분 결과가 달라지는 이유

딥러닝 수학에서 Gradient, Jacobian, Hessian이 헷갈리는 이유는 미분 공식이 어려워서라기보다 입력과 출력의 형태가 달라지기 때문이다.

입력이 스칼라인지 벡터인지, 출력이 스칼라인지 벡터인지에 따라 미분 결과는 숫자, 벡터, 행렬로 달라진다.


먼저 함수 형태를 구분해야 한다

미분 결과를 이해하려면 함수가 어떤 형태인지 먼저 봐야 한다.

함수 형태 의미 미분 결과

f: \mathbb{R} \rightarrow \mathbb{R} 스칼라 입력 → 스칼라 출력 스칼라
f: \mathbb{R}^n \rightarrow \mathbb{R} 벡터 입력 → 스칼라 출력 Gradient
f: \mathbb{R}^n \rightarrow \mathbb{R}^m 벡터 입력 → 벡터 출력 Jacobian
f: \mathbb{R}^n \rightarrow \mathbb{R}의 2차 미분 벡터 입력 → 스칼라 출력 함수의 2차 미분 Hessian

핵심은 입력과 출력이 몇 차원인지다.


Gradient | 다변수 함수의 1차 미분

Gradient는 입력이 여러 개인 함수의 각 입력 방향별 변화율을 모아둔 벡터다.

예를 들어:

f(x, y, z) = xyz

각 변수에 대해 편미분하면 다음과 같다.

∂f/∂x = yz
∂f/∂y = xz
∂f/∂z = xy

따라서 gradient는 아래처럼 쓴다.

∇f = (yz, xz, xy)

즉, gradient는 각 입력 변수가 출력값에 얼마나 영향을 주는지를 담은 벡터다.


Gradient가 중요한 이유

머신러닝에서는 손실 함수가 보통 여러 파라미터를 입력으로 받고, 하나의 손실값을 출력한다.

Loss(w1, w2, ..., wn) → loss value

이때 각 파라미터 방향으로 손실이 얼마나 변하는지 알아야 업데이트 방향을 정할 수 있다.

그래서 딥러닝 최적화에서 gradient가 기본이 된다.


Jacobian | 벡터 함수를 미분한 행렬

Jacobian은 입력도 여러 개, 출력도 여러 개인 함수에서 나온다.

예를 들어:

F(x, y, z) = (f1, f2, f3)

처럼 출력이 여러 개라면, 각 출력값을 각 입력값에 대해 모두 편미분해야 한다.

          입력 x   입력 y   입력 z
출력 f1   ∂f1/∂x  ∂f1/∂y  ∂f1/∂z
출력 f2   ∂f2/∂x  ∂f2/∂y  ∂f2/∂z
출력 f3   ∂f3/∂x  ∂f3/∂y  ∂f3/∂z

이렇게 만들어지는 행렬이 Jacobian이다.


Jacobian을 직관적으로 보면

Jacobian은 입력과 출력의 모든 조합에 대한 변화율 표다.

입력이 3개이고 출력이 3개라면 Jacobian은 3×3 행렬이 된다.

입력 3개 × 출력 3개 → 3×3 행렬

출력 하나만 보는 것이 아니라, 각 출력이 각 입력에 얼마나 민감하게 반응하는지를 모두 정리한 것이다.


Hessian | 다변수 함수의 2차 미분 행렬

Hessian은 벡터 입력을 받는 스칼라 출력 함수의 2차 미분이다.

1차 미분인 gradient가 벡터이므로, 그 gradient를 다시 입력 변수들에 대해 미분하면 행렬이 된다.

f: Rⁿ → R
1차 미분 → Gradient vector
2차 미분 → Hessian matrix

Hessian은 각 변수 조합에 대한 2차 변화율을 담는다.

∂²f/∂x₁∂x₁   ∂²f/∂x₁∂x₂
∂²f/∂x₂∂x₁   ∂²f/∂x₂∂x₂

즉, Hessian은 함수가 얼마나 휘어지는지, 곡률 정보를 담는 행렬이다.


Gradient, Jacobian, Hessian 차이

개념 대상 함수 결과 형태 의미

Gradient 벡터 입력 → 스칼라 출력 벡터 각 입력 방향의 변화율
Jacobian 벡터 입력 → 벡터 출력 행렬 입력-출력 모든 조합의 변화율
Hessian 벡터 입력 → 스칼라 출력의 2차 미분 행렬 곡률, 2차 변화율

딥러닝에서 어떻게 연결되는가

딥러닝에서는 입력, 파라미터, 출력이 대부분 벡터나 행렬 형태다.

그래서 단순한 스칼라 미분보다 gradient, Jacobian 같은 벡터 미분 개념이 더 자주 등장한다.

대표적으로:

  • 손실 함수 최적화 → Gradient
  • 여러 출력이 입력에 반응하는 구조 → Jacobian
  • 곡률 기반 최적화 또는 2차 근사 → Hessian

으로 연결된다.


핵심 흐름

스칼라 함수 미분
→ 다변수 함수 미분
→ Gradient
→ 벡터 함수 미분
→ Jacobian
→ 2차 미분
→ Hessian

Gradient는 다변수 함수의 1차 미분 벡터, Jacobian은 벡터 함수의 1차 미분 행렬, Hessian은 다변수 함수의 2차 미분 행렬이다.