Skip to main content
QUICK REVIEW

[논문 리뷰] Efficient Computation of Hessian Matrices in TensorFlow

Geir Kjetil Nilsen, Antonella Z. Munthe-Kaas|arXiv (Cornell University)|2019. 05. 14.
Matrix Theory and Algorithms참고 문헌 2인용 수 7
한 줄 요약

이 논문은 딥러닝 모델에서 정확한 및 근사 헤시안 행렬을 계산하기 위한 효율적인 방법을 제시한다. 텐서플로우의 내장 미분 기능의 한계를 극복하기 위해 벡터화된 기울기 연산과 근사 고유분해를 사용한다. 주요 기여는 오픈소스 pyhessian 모듈을 통해 스케일러블한 구현을 제공하여 이차 공간 복잡도를 감소시켜 대규모 모델에서 실용적인 곡률 분석을 가능하게 한다.

ABSTRACT

The Hessian matrix has a number of important applications in a variety of different fields, such as optimzation, image processing and statistics. In this paper we focus on the practical aspects of efficiently computing Hessian matrices in the context of deep learning using the Python scripting language and the TensorFlow library. We define a general feed-forward neural network model and show how to efficiently compute two quantities: the cost function's exact Hessian matrix, and the cost function's approximate Hessian matrix, known as the Outer Product of Gradients (OPG) matrix. Furthermore, as the number of parameters (weights and biases) in deep learning usually is very large, we show how to reduce the quadratic space complexity by an efficient implementation based on approximate eigendecompositions.

연구 동기 및 목표

  • 딥러닝에서 헤시안 행렬을 계산할 때 텐서플로우의 내장 기능 tf.hessians()의 비효율성과 부정확성을 해결하기 위해.
  • 대규모 모델에서 정확한 헤시안 행렬과 외적 기울기(Opg) 근사치를 실용적으로 계산할 수 있도록 하기 위해.
  • 매개변수 수가 많을 경우(매개변수 수 P) 헤시안 계산의 이차 공간 복잡도를 근사 고유분해를 통해 감소시키기 위해.
  • 일般적인 피드포워드 및 컨volutional 신경망 아키텍처를 지원하는 견고하고 오픈소스의 구현(pyhessian)을 제공하기 위해.

제안 방법

  • 이 방법은 모델 매개변수에 대해 기울기 벡터를 미분하여 두 번째 도함수를 계산하기 위해 벡터화된 기울기 연산을 사용하여, 각 예제의 기울기 계산에서 발생하는 병목 현상을 피한다.
  • 기울기 벡터의 자코비안을 사용하여 헤시안 계산을 행렬-벡터 곱으로 재구성함으로써, 텐서플로우의 자동 미분 기능을 통해 효율적인 계산을 가능하게 한다.
  • 외적 기울기(OPG) 행렬은 각 예제의 기울기의 외적 곱으로 계산되며, 이는 진짜 헤시안에 대한 저랭크 근사치를 제공한다.
  • 헤시안에 대해 근사 고유분해를 적용하여 공간 복잡도를 O(P²)에서 K개의 주요 고유값을 유지할 때 O(KP)로 감소시킨다.
  • 이 방법은 밀집층, 활성화 함수, 소프트맥스 교차엔트로피와 같은 손실 함수를 처리할 수 있도록 일반화되었으며, 모델 매개변수를 벡터 ω ∈ ℝᴾ로 적절히 평탄화한다.
  • 구현은 GitHub에 공개된 오픈소스 pyhessian 모듈로 제공되며, 텐서플로우와의 통합이 가능하고 대규모 모델에 대해 확장 가능하도록 설계되었다.

실험 결과

연구 질문

  • RQ1tf.hessians()의 제약과 각 예제의 기울기 계산 문제로 인해 텐서플로우에서 헤시안 행렬을 어떻게 효율적으로 계산할 수 있는가?
  • RQ2매개변수 수 P가 매우 큰 대규모 딥러닝 모델에서 헤시안 행렬을 근사하는 데 가장 효과적인 방법은 무엇인가?
  • RQ3실제로 공간 복잡도를 O(P²)에서 더 확장 가능한 형태로 감소시키는 방법은 무엇인가?
  • RQ4외적 기울기(OPG) 행렬은 딥러닝에서 진짜 헤시안에 대한 신뢰할 수 있는 저랭크 근사치로 기능할 수 있는가?
  • RQ5주요 고유공간을 사용하고 잔여 부분공간에 대해 일정한 고유값을 부여함으로써, 전체 랭크 근사 헤시안을 어떻게 구성할 수 있는가?

주요 결과

  • 제안된 방법은 벡터화된 기울기 미분을 사용하여 텐서플로우의 한계를 극복함으로써 정확한 두 번째 도함수 계산을 가능하게 하였다.
  • 외적 기울기(OPG) 행렬은 진짜 헤시안에 대한 유효하고 효율적인 저랭크 근사치로 입증되었으며, 특히 대규모 모델에서 유용하다.
  • 근사 고유분해를 적용함으로써 공간 복잡도를 O(P²)에서 K개의 주요 고유값을 유지할 때 O(KP)로 감소시켜 대규모 모델에서의 헤시안 계산을 실용적으로 가능하게 하였다.
  • 전체 랭크 헤시안 근사는 H̃̃ = QₗΛₗQₗᵀ + λ̃(I - QₗQₗᵀ)로 구성되며, 모든 고유값이 양수이고 행렬이 가역적이게 보장한다.
  • 구현은 오픈소스 pyhessian 모듈로 공개되었으며, 표준 손실 함수(예: 소프트맥스 교차엔트로피 포함)를 사용하는 일반적인 피드포워드 및 컨volutional 신경망 아키텍처를 지원한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.