google-deepmind/kfac-jax

Second Order Optimization and Curvature Estimation with K-FAC in JAX.

해결하는 문제

KFAC-JAX는 K-FAC(Kronecker-factored Approximate Curvature) 최적화기와 곡률 추정기의 사용하기 쉬운 구현을 제공합니다. 일반적으로 1차 미분 방법보다 계산 비용이 높은 신경망의 2차 미분 최적화 문제를, 곡률 행렬의 확장 가능한 근사치를 제공함으로써 해결합니다.

작동 방식

JAX 위에 구축된 이 라이브러리는 연구자가 모델에 K-FAC 최적화를 통합할 수 있도록 합니다. 사용자는 손실 함수를 등록해야 하며, 예를 들어 register_softmax_cross_entropy_loss를 사용합니다. 이렇게 하면 라이브러리가 곡률 행렬을 올바르게 근사할 수 있습니다. 최적화기는 내부적으로 jax.jit 또는 jax.pmap를 사용한 스테이징을 자동으로 처리하므로, 사용자는 최적화기의 스텝 함수나 손실 함수에 수동으로 이들 함수를 적용해서는 안 됩니다.

대상 사용자

JAX와 Haiku를 사용하여 신경망을 훈련하고 있으며, 훈련 효율성 또는 수렴을 향상시키기 위해 2차 미분 최적화 기법을 활용하고자 하는 AI 연구자들입니다.

주요 특징

  • JAX 네이티브: Haiku와 통합된, 라이브러리 생태계에 특화된 구현.
  • 확장 가능한 곡률: 효율적인 2차 미분 최적화를 위한 K-FAC 구현.
  • 자동 스테이징: jit와 pmap를 내부적으로 관리하여 사용자 경험을 단순화.
  • 적응형 파라미터: 적응형 학습률, 모멘텀, 댐핑을 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트