Skip to main content
QUICK REVIEW

[논문 리뷰] TMB: Automatic Differentiation and Laplace Approximation

Kasper Kristensen, Anders Nielsen|RePEc: Research Papers in Economics|2015. 09. 02.
Drilling and Well Engineering인용 수 35
한 줄 요약

TMB는 자동 미분(3차 미분까지)과 라플라스 근사를 사용하여 난이도 높은 비선형 혼합모형을 빠르고 자동으로 피팅할 수 있도록 해주는 R 패키지이다. C++ 템플릿, 희소 행렬 계산, OpenMP 및 BLAS를 통한 병렬처리를 활용함으로써, 특히 랜덤 효과가 많은 큰 모형에서 ADMB 대비 1.5~100배 빠른 성능을 달성한다.

ABSTRACT

TMB is an open source R package that enables quick implementation of complex nonlinear random effect (latent variable) models in a manner similar to the established AD Model Builder package (ADMB, admb-project.org). In addition, it offers easy access to parallel computations. The user defines the joint likelihood for the data and the random effects as a C++ template function, while all the other operations are done in R; e.g., reading in the data. The package evaluates and maximizes the Laplace approximation of the marginal likelihood where the random effects are automatically integrated out. This approximation, and its derivatives, are obtained using automatic differentiation (up to order three) of the joint likelihood. The computations are designed to be fast for problems with many random effects (~10^6) and parameters (~10^3). Computation times using ADMB and TMB are compared on a suite of examples ranging from simple models to large spatial models where the random effects are a Gaussian random field. Speedups ranging from 1.5 to about 100 are obtained with increasing gains for large problems. The package and examples are available at http://tmb-project.org.

연구 동기 및 목표

  • 복잡한 비선형 혼합모형에 대한 랜덤 효과를 갖는 고성능, 사용자 우호적인 프레임워크를 R 사용자에게 제공하기 위해.
  • 기울기 계산에서 유한차분 근사의 한계를 해결하기 위해, 이는 느리고 정확도가 떨어질 수 있기 때문이다.
  • 자동 미분과 희소 행렬 기법을 사용하여 최대 10^6개의 랜덤 효과와 10^3개의 파라미터를 가진 대규모 모형에 대해 효율적인 계산을 가능하게 하기 위해.
  • 모델 평가 및 행렬 연산에서의 병렬처리를 지원하여 다중 코어 시스템에서 계산을 더욱 가속화하기 위해.
  • CppAD, Eigen, CHOLMOD 등의 고성능 라이브러리를 통해 R과의 원활한 통합을 제공하면서도 C++ 수준의 성능을 유지하기 위해.

제안 방법

  • 사용자는 템플릿을 사용하여 C++에서 결합 로그우도 함수를 정의함으로써 타입의 유연성과 컴파일 시 최적화를 가능하게 한다.
  • 자동 미분(CppAD를 통해)을 사용하여 로그우도 함수의 정확한 1차, 2차, 3차 도함수를 3차 미분까지 계산한다.
  • 랜덤 효과를 통합하기 위해 라플라스 근사를 여정 우도에 적용하며, 이 근사의 도함수도 자동으로 계산된다.
  • 희소 행렬 연산은 상태공간 모형 및 GMRF 모형에서 흔한 조건부 독립성 구조를 활용하여 Eigen 및 CHOLMOD 라이브러리를 통해 처리된다.
  • OpenMP를 통해 사용자 정의 함수 평가에 병렬처리를, BLAS를 통해 큰 희소 정밀도 행렬의 콜레프스키 분해에 병렬처리를 구현한다.
  • 프레임워크는 데이터 입력과 후처리를 위해 R과 통합되며, 계산 집약적인 부분은 컴파일된 C++ 코드로 이관된다.

실험 결과

연구 질문

  • RQ1자동 미분과 라플라스 근사를 R 패키지에서 효율적으로 조합하여 복잡한 비선형 혼합모형의 우도 기반 추론을 가속화할 수 있는가?
  • RQ2랜덤 효과의 수가 증가함에 따라 TMB의 성능는 ADMB와 비교해 어떻게 다를까? 속도와 정확도 측면에서.
  • RQ3잠재변수 모형의 정밀도 행렬에서의 희소성은 얼마나 효과적으로 활용될 수 있으며, 이를 통해 대규모 문제(예: 10^6개의 랜덤 효과)의 계산 스케일링이 가능할까?
  • RQ4OpenMP와 BLAS를 통한 병렬처리가 대규모 모형의 계산 시간을 상당히 줄일 수 있을까? 그리고 코어 수 증가에 따라 성능 향상은 어떻게 변화하는가?
  • RQ5라플라스 근사와 그 도함수 평가의 계산 비용은 이론적 상한선에 비해 얼마나 되며, '저비용 기울기 원칙'을 만족하는가?

주요 결과

  • TMB는 ADMB 대비 1.5배에서 100배까지 빠른 계산 성능을 달성하였으며, 특히 더 큰 모형일수록 성능 향상이著명하다.
  • 최대 10^6개의 랜덤 효과와 10^3개의 파라미터를 가진 모형에서도 TMB는 희소성과 자동 미분의 효율적 활용 덕분에 고속과 수치적 안정성을 유지한다.
  • 라플라스 근사와 그 도함수의 계산 시간은 근사 자체의 시간보다 2.8배 이내로, 저비용 기울기 원칙을 확인하였으며 이론적 상한선 4를 넘지 않았다.
  • 1개 코어에서 10개 코어로 전환했을 때 큰 모형에서 6배의 속도 향상이 발생하여 OpenMP를 통한 효율적 병렬처리를 입증하였다.
  • 모든 테스트 케이스에서 TMB와 ADMB의 추정치와 표준오차는 실질적으로 동일했으며, 이는 구현의 정확성을 검증한다.
  • CppAD, Eigen, BLAS 등의 잘 유지되는 라이브러리를 사용한 TMB의 모듈러 설계 덕분에 장기적인 유지보수성과 새로운 성능 향상 기술의 신속한 통합이 가능하다.

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

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

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

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