TensorFlow Probability

TensorFlow Probability는 TensorFlow에서 확률적 추론 및 통계 분석을 수행하기 위한 라이브러리입니다. TensorFlow 에코시스템의 일부인 TensorFlow Probability는 확률적 방법과 심층 네트워크의 통합, 자동 미분을 사용한 그래디언트 기반 추론, 하드웨어 가속(GPU) 및 분산 계산을 통한 대규모 데이터세트 및 모델로의 확장성을 제공합니다.

TensorFlow Probability를 시작하려면 설치 가이드를 참조하고 Python 노트북 튜토리얼를 살펴보세요.

구성 요소

확률적 머신러닝 도구는 다음과 같이 구성됩니다.

레이어 0: TensorFlow

수치 연산 - 특히, LinearOperator 클래스를 이용하면 특정 구조(대각선, 낮은 순위 등)를 활용할 수 있는 행렬 없는 구현이 가능하여 계산 효율이 개선됩니다. 이러한 연산은 TensorFlow Probability 팀에서 빌드 및 유지관리하며 핵심 TensorFlow의 tf.linalg에 포함되어 있습니다.

레이어 1: 통계 구성 요소

레이어 2: 모델 구축

  • 결합 분포(예: tfp.distributions.JointDistributionSequential): 하나 이상의 상호 의존적 분포에 대한 결합 분포입니다. TFP의 JointDistribution을 사용한 모델링에 대한 소개는 이 colab을 확인하세요.
  • 확률적 레이어(tfp.layers): 레이어가 나타내는 전체 함수에 걸쳐 불확실성을 갖진 신경망 레이어로, TensorFlow 레이어를 확장합니다.

레이어 3: 확률적 추론

  • Markov 체인 Monte Carlo(tfp.mcmc): 샘플링을 통해 적분을 근사 계산하는 알고리즘입니다. Hamiltonian Monte Carlo, 랜덤 워크 Metropolis-Hastings 및 사용자 정의 전환 커널을 빌드하는 기능이 포함됩니다.
  • 변량 추론(tfp.vi): 최적화를 통해 적분을 근사 계산하는 알고리즘입니다.
  • 옵티마이저(tfp.optimizer): 확률적 최적화 방법으로, TensorFlow 옵티마이저를 확장합니다. 확률적 그래디언트 Langevin Dynamics를 포함합니다.
  • Monte Carlo(tfp.monte_carlo): Monte Carlo 기대치를 계산하기 위한 도구입니다.

TensorFlow Probability는 현재 개발 중이며 인터페이스가 달라질 수 있습니다.

탐색에 나열된 Python 노트북 튜토리얼 외에도 사용 가능한 몇 가지 예제 스크립트가 있습니다.

문제 보고하기

TensorFlow Probability 문제 추적기를 사용하여 버그 또는 기능 요청을 보고하세요.