patrick-kidger/lineax

Linear solvers in JAX and Equinox. https://docs.kidger.site/lineax

해결하는 문제

Lineax는 선형 시스템($Ax = b$에서 $x$를 구하는 문제)과 선형 최소제곱 문제를 해결하기 위해 설계된 JAX 라이브러리입니다. 행렬 $A$가 직사각형이거나 불안정한 경우에도 처리 가능하며, JAX 생태계 내에서 이러한 수학적 연산을 더 통합적이고 안정적으로 수행할 수 있도록 지원합니다.

작동 방식

Lineax는 선형 연산자(Linear Operators)를 사용하여 행렬과 자코비안을 표현하여, 메모리에 전체 행렬을 생성할 필요 없이 문제를 해결할 수 있습니다. QR 소거법, 공액 기울기(CG) 방법 등 다양한 소거기를 지원하며, JAX와 깊이 통합되어 자동 미분, GPU/TPU 지원, 자동 병렬화를 활용할 수 있습니다.

대상 사용자

과학 계산, 머신러닝, 과학용 AI 분야에서 연구 및 개발을 수행하는 연구자 및 개발자에게 적합합니다. JAX와 Equinox와 호환되며, 효율적이고 수치적으로 안정적인 선형 대수 연산이 필요한 사용자에게 이상적입니다.

주요 특징

  • PyTree 기반의 행렬과 벡터: 선형 대수에 적합한 복잡한 데이터 구조를 지원합니다.
  • 일반적인 선형 연산자: 행렬을 메모리에 전개하지 않고도 자코비안과 전치를 처리할 수 있습니다.
  • PyTree 기반의 행렬과 벡터: 실수 및 복소수 입력 모두를 지원합니다.
  • 수치적 안정성: 선형 최소제곱을 통해 안정적인 기울기를 제공합니다.
  • JAX 통합: 자동 미분, GPU/TPU 가속, 구조화된 행렬(예: 대칭 행렬)을 완전히 지원합니다.
  • 성능: 특정 알고리즘에서 컴파일 시간과 런타임이 향상됩니다.

관련

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