헤시안 행렬 (Hessian Matrix)
쉽게 풀면
산의 어느 지점에 서 있다고 해봅시다. 그 지점이 정말 정상(꼭대기)인지, 아니면 골짜기 바닥인지, 혹은 말안장처럼 한쪽은 오르막이고 다른 쪽은 내리막인 지점인지 알고 싶습니다. 기울기(1차 미분)만 봐서는 "평평하다"는 것만 알 수 있고, 어떤 모양인지는 알 수 없습니다.
이때 필요한 것이 헤시안 행렬(Hessian Matrix)입니다. 여러 방향으로 얼마나 볼록하게 또는 오목하게 휘어져 있는지를 2차 미분값들로 정리해 두면, 그 지점이 최댓값인지 최솟값인지 안장점인지 구분할 수 있습니다.
왜 중요한가
헤시안 행렬은 함수의 곡률 정보를 담고 있어, 최적화 문제에서 어떤 지점이 최솟값인지 안장점인지를 판별하거나 더 빠르게 수렴하는 최적화 알고리즘을 설계하는 데 핵심적으로 쓰입니다. 딥러닝의 손실함수처럼 복잡한 비볼록 함수를 다룰 때는 헤시안의 성질을 분석함으로써 학습이 왜 정체되는지, 지역 최솟값과 안장점을 어떻게 구분하는지에 대한 통찰을 얻을 수 있습니다. 이 때문에 최적화 이론뿐 아니라 딥러닝 이론 연구에서도 자주 다뤄집니다.
핵심 정리
스칼라 함수 f(x₁, …, xn)의 헤시안 행렬 H는 2차 편미분을 모은 n×n 행렬이고, 원소는 Hij = ∂²f / ∂xi∂xj입니다. 2차 도함수가 연속이면 ∂²f/∂xi∂xj = ∂²f/∂xj∂xi이므로 H는 대칭 행렬입니다.
헤시안은 곡률 정보를 담고 있어 최적화에서 세 가지로 쓰입니다(Nocedal & Wright, 2006).
- 임계점 판정: 기울기가 0인 점에서 H의 고유값이 모두 양수이면 극솟값, 모두 음수이면 극댓값, 부호가 섞여 있으면 안장점입니다. 고유값에 0이 섞이면 이 검사만으로 판단할 수 없습니다. 2변수에서는 D = fxxfyy − fxy²의 부호와 fxx로 같은 판정을 합니다.
- 볼록성 판정: 모든 점에서 H가 양의 준정부호이면 f는 볼록함수입니다(Boyd & Vandenberghe, 2004).
- 뉴턴 방법: x를 x − H⁻¹∇f로 갱신하여 곡률을 반영한 빠른 수렴을 얻습니다.
예시로 보기
계산 예 1(임계점 판정). f(x, y) = x³ − 3x + y²의 기울기는 (3x² − 3, 2y)이므로 임계점은 (1, 0)과 (−1, 0)입니다. 헤시안은 [[6x, 0], [0, 2]]입니다(코드로 계산).
- (1, 0): 고유값 2, 6 → 모두 양수이므로 극솟값 (f = -2)
- (−1, 0): 고유값 -6, 2 → 부호가 섞이므로 안장점 (f = 2)
계산 예 2(뉴턴 방법). 이차함수 f(x, y) = x² + xy + y²의 헤시안은 H = [[2, 1], [1, 2]]이고 한 점 (3, 3)에서 기울기는 (9, 9)입니다. 뉴턴 한 걸음은 (3, 3) − H⁻¹(9, 9) = (0, 0)으로, 이차함수에서는 한 걸음에 최솟값에 도달합니다.
자주 하는 오해
- “기울기가 0이면 최솟값이다”라는 오해: 기울기가 0인 점은 극댓값, 극솟값, 안장점일 수 있고 헤시안으로 구별합니다.
- “헤시안이 양의 정부호이면 전역 최솟값이다”라는 오해: 한 점에서의 헤시안은 그 근방(국소)에 관한 정보입니다. 전역 최솟값을 말하려면 볼록성처럼 더 강한 조건이 필요합니다.
- “고유값에 0이 있어도 판정된다”라는 오해: 0 고유값이 섞이면 2차 정보만으로는 판정할 수 없고, 더 높은 차수 항을 살펴야 합니다.
- “딥러닝에서도 헤시안을 그대로 쓰면 된다”라는 오해: 매개변수가 1,000,000개면 헤시안은 1,000,000×1,000,000 행렬이어서, 단정밀도(4바이트)로 저장해도 약 4 TB가 필요합니다(코드로 계산). 그래서 근사나 일부 고유값 추정을 씁니다. 안장점이 고차원 비볼록 최적화의 어려움이라는 지적이 있습니다(Dauphin 외, 2014).
- “야코비 행렬과 같다”라는 오해: 야코비 행렬은 벡터 함수의 1차 미분, 헤시안은 스칼라 함수의 2차 미분입니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 모델 학습이 멈춘 지점에서 손실함수의 곡률을 계산해 보니 모든 방향으로 오목하게 위로 휘어 있어서(양의 정부호), 그 지점이 진짜 최솟값이 맞다는 것을 수학적으로 확인했다는 뜻입니다. 뉴턴 계열의 최적화 방법에서는 경사하강법보다 빠르게 수렴하기 위해 헤시안 행렬을 직접 활용하기도 합니다.
수치최적화 연구에서 헤시안 전체를 매번 구하는 대신 근사치를 활용해 효율을 높이는 접근이 흔히 쓰인다는 것을 보여주는 문장이다.
딥러닝 이론 연구에서 헤시안의 고유값 분포를 통해 손실 지형의 구조를 분석하는 방식이 사용된다는 것을 보여주는 문장이다.
조금 더 깊게 보면
헤시안 행렬의 고유값은 각 방향으로의 곡률을 나타내며, 모든 고유값이 양수이면 극솟값, 모두 음수이면 극댓값, 부호가 섞여 있으면 안장점임을 시사합니다. 변수 개수가 매우 많을 때는 헤시안 전체를 계산하는 대신 준뉴턴 방법처럼 근사치를 활용하거나, 고유값 중 일부만 추정하는 방식이 흔히 쓰입니다. 논문에서 "헤시안의 조건수" 또는 "고유값 분포"를 언급한다면 최적화 난이도나 손실 지형의 형태를 논하고 있다고 이해하면 됩니다.
주의할 점
헤시안 행렬은 변수 개수가 많아지면 계산 비용이 급격히 커집니다. 그래서 실제 딥러닝처럼 변수가 수백만 개인 경우에는 헤시안 전체를 구하지 않고, 1차 미분값만 쓰는 경사하강법을 주로 사용합니다. 또한 볼록함수인지 판단할 때도 헤시안 행렬의 정부호 여부가 기준으로 쓰입니다.
헷갈리기 쉬운 용어
미분으로 만든 행렬들은 입력과 출력의 모양, 미분의 차수가 서로 다릅니다.
| 용어 | 함수의 종류 | 무엇을 담나 |
|---|---|---|
| 헤시안 행렬 | 스칼라 함수 | 2차 편미분(곡률) |
| 야코비 행렬 | 벡터 함수 | 1차 편미분(입력 변화에 대한 각 출력의 변화) |
| 양의 정부호 행렬 | — | 임계점에서 헤시안이 이 성질이면 극솟값(국소적으로 아래로 볼록) |
| 볼록함수 | — | 모든 점에서 헤시안이 양의 준정부호 |
참고 문헌
- Nocedal, J., & Wright, S. J. (2006). Numerical Optimization (2nd ed.). Springer.
- Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press.
- Dauphin, Y. N., Pascanu, R., Gulcehre, C., Cho, K., Ganguli, S., & Bengio, Y. (2014). Identifying and attacking the saddle point problem in high-dimensional non-convex optimization. Advances in Neural Information Processing Systems, 27.
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.