헤시안 행렬 (Hessian Matrix)

수학
한 줄 정의: 함수가 여러 방향으로 얼마나 휘어져 있는지(곡률)를 변수 쌍마다 정리한 2차 미분값들의 표입니다.

쉽게 풀면

산의 어느 지점에 서 있다고 해봅시다. 그 지점이 정말 정상(꼭대기)인지, 아니면 골짜기 바닥인지, 혹은 말안장처럼 한쪽은 오르막이고 다른 쪽은 내리막인 지점인지 알고 싶습니다. 기울기(1차 미분)만 봐서는 "평평하다"는 것만 알 수 있고, 어떤 모양인지는 알 수 없습니다. 이때 필요한 것이 헤시안 행렬(Hessian Matrix)입니다. 여러 방향으로 얼마나 볼록하게 또는 오목하게 휘어져 있는지를 2차 미분값들로 정리해 두면, 그 지점이 최댓값인지 최솟값인지 안장점인지 구분할 수 있습니다.

왜 중요한가

헤시안 행렬은 함수의 곡률 정보를 담고 있어, 최적화 문제에서 어떤 지점이 최솟값인지 안장점인지를 판별하거나 더 빠르게 수렴하는 최적화 알고리즘을 설계하는 데 핵심적으로 쓰입니다. 딥러닝의 손실함수처럼 복잡한 비볼록 함수를 다룰 때는 헤시안의 성질을 분석함으로써 학습이 왜 정체되는지, 지역 최솟값과 안장점을 어떻게 구분하는지에 대한 통찰을 얻을 수 있습니다. 이 때문에 최적화 이론뿐 아니라 딥러닝 이론 연구에서도 자주 다뤄집니다.

논문에서는 이렇게 쓰입니다

"손실함수의 헤시안 행렬(Hessian matrix)이 양의 정부호(positive definite)임을 확인하여 학습 종료 지점이 지역 최솟값임을 검증하였다."

이 문장은 모델 학습이 멈춘 지점에서 손실함수의 곡률을 계산해 보니 모든 방향으로 오목하게 위로 휘어 있어서(양의 정부호), 그 지점이 진짜 최솟값이 맞다는 것을 수학적으로 확인했다는 뜻입니다. 뉴턴 계열의 최적화 방법에서는 경사하강법보다 빠르게 수렴하기 위해 헤시안 행렬을 직접 활용하기도 합니다.

"제안된 준뉴턴 방법은 헤시안 행렬을 직접 계산하는 대신 근사값을 갱신하여 계산 비용을 크게 줄였다."

수치최적화 연구에서 헤시안 전체를 매번 구하는 대신 근사치를 활용해 효율을 높이는 접근이 흔히 쓰인다는 것을 보여주는 문장이다.

"신경망 손실함수의 헤시안 고유값 분포를 분석한 결과, 대부분의 고유값이 0에 가까워 손실 지형이 매우 평탄한 방향을 다수 포함하고 있음을 확인하였다."

딥러닝 이론 연구에서 헤시안의 고유값 분포를 통해 손실 지형의 구조를 분석하는 방식이 사용된다는 것을 보여주는 문장이다.

조금 더 깊게 보면

헤시안 행렬의 고유값은 각 방향으로의 곡률을 나타내며, 모든 고유값이 양수이면 극솟값, 모두 음수이면 극댓값, 부호가 섞여 있으면 안장점임을 시사합니다. 변수 개수가 매우 많을 때는 헤시안 전체를 계산하는 대신 준뉴턴 방법처럼 근사치를 활용하거나, 고유값 중 일부만 추정하는 방식이 흔히 쓰입니다. 논문에서 "헤시안의 조건수" 또는 "고유값 분포"를 언급한다면 최적화 난이도나 손실 지형의 형태를 논하고 있다고 이해하면 됩니다.

주의할 점

헤시안 행렬은 변수 개수가 많아지면 계산 비용이 급격히 커집니다. 그래서 실제 딥러닝처럼 변수가 수백만 개인 경우에는 헤시안 전체를 구하지 않고, 1차 미분값만 쓰는 경사하강법을 주로 사용합니다. 또한 볼록함수인지 판단할 때도 헤시안 행렬의 정부호 여부가 기준으로 쓰입니다.

관련 용어