Hessian / Curvature 이해: 왜 곡률이 최적화 난이도를 바꾸는가

난이도: 중상

태그: foundations,hessian,curvature,optimization

gradient가 "어느 방향으로 내려갈지"를 알려준다면, Hessian은 "그 방향의 지형이 얼마나 가파르고 휘어져 있는지"를 알려준다.

딥러닝에서 loss surface는 단순한 그릇 모양이 아니다. 어떤 방향은 매우 급하고, 어떤 방향은 완만하다. 이 차이를 설명하는 핵심 개념이 곡률(curvature)이고, 그것을 수학적으로 담는 도구가 Hessian이다.

처음 공부할 때 Hessian은 너무 추상적으로 느껴질 수 있다. 하지만 실전에서는 왜 어떤 optimizer가 잘 흔들리고, 왜 어떤 학습은 learning rate에 민감하며, 왜 어떤 지점은 gradient가 작아도 쉽게 수렴하지 않는지를 설명하는 중요한 배경 개념이다. 즉 Hessian은 최적화 난이도를 읽는 언어라고 보면 된다.

시각 자료로 먼저 보기

Gradient descent의 등고선 이동 그림
등고선 위에서 gradient descent가 가장 가파른 방향으로 내려가는 모습을 보여준다. Hessian은 이 지형의 굽힘 정도를 정량화한다.
원본 / 라이선스 · Olegalexandrov · Public domain
Saddle point 주변 등고선
안장점 주변의 등고선. 어떤 방향은 올라가고 어떤 방향은 내려가는 비등방성 곡률을 직관적으로 보여준다.
원본 / 라이선스 · Ekem · CC BY-SA 3.0
Hessian 행렬 시각화
Hessian이 여러 2차 미분 성분을 담은 행렬이라는 점을 직접적으로 보여주는 시각 자료다.
원본 / 라이선스 · Gowerrobert · CC BY-SA 3.0

1. Hessian 정의

H=2L(θ)

Hessian은 2차 미분을 모아 만든 행렬이다. 각 원소는 한 파라미터를 조금 움직였을 때 gradient가 어떻게 바뀌는지를 나타낸다.

gradient가 "지금 어느 방향으로 내려갈지"를 알려주는 1차 정보라면, Hessian은 그 방향 주변의 표면이 얼마나 굽어 있는지를 알려주는 2차 정보다. 그래서 더 많은 정보를 주지만 계산과 해석도 훨씬 어렵다.

2. 왜 중요한가

3. 직관

길게 늘어진 골짜기 모양 loss surface를 생각해보면, 한 축은 가파르고 다른 축은 완만하다. SGD는 이런 지형에서 좌우로 흔들리기 쉽다. 그래서 momentum, Adam 같은 기법이 도움이 된다.

4. 2차 근사

L(θ+Δ)L(θ)+gTΔ+12ΔTHΔ

여기서 마지막 2차 항이 곡률 정보를 담는다. 이 항이 있으면 단순히 "내리막 방향"뿐 아니라 "얼마나 급하게 휘어져 있는가"까지 고려할 수 있다.

5. 실무에서의 의미

다만 실제 대형 모델에서는 Hessian 전체를 직접 계산하는 일은 거의 불가능하다. 그래서 Hessian-vector product, trace 근사, 최대 고유값 추정처럼 일부 정보만 읽는 방식이 주로 쓰인다. 중요하지만 그대로 전부 계산하지는 않는 이유가 여기에 있다.

6. 체크리스트