tensorflow/probability

Probabilistic reasoning and statistical analysis in TensorFlow

What it solves

確率論的推論と統計分析のためのフレームワークを提供し、開発者が確率論的手法をディープラーニングネットワークに統合できるようにします。GPU によるハードウェア加速と分散計算を活用することで、大規模な複雑な統計計算と推論の課題を解決します。

How it works

このライブラリは、層状のアーキテクチャで構成されています:

  • Layer 0 (Numerical Operations): TensorFlow の数値計算操作、特に効率的な行列なし実装を実現するための LinearOperator クラスを利用します。
  • Layer 1 (Statistical Building Blocks): 膨大な確率分布のコレクション(tfp.distributions)と、Bijectors と呼ばれる確率変数の可逆変換(tfp.bijectors)を提供します。
  • Layer 2 (Model Building): 相互依存する変数間の結合分布の作成、および不確実性を取り入れた確率論的ニューラルネットワーク層の作成を可能にします。
  • Layer 3 (Probabilistic Inference): 積分近似のためのアルゴリズムを実装しています。これには、サンプリングのための Markov chain Monte Carlo (MCMC)、最適化のための Variational Inference (VI)、および特殊な確率的オプティマイザが含まれます。

さらに、このライブラリは JAX と併用する場合、「Tensor-friendly Probability」として動作させることができます。

Who it’s for

TensorFlow または JAX のスケーラビリティが必要な、確率論的機械学習、ベイズニューラルネットワーク、および複雑な統計モデリングに取り組む研究者や開発者向けに設計されています。

Highlights

  • Hardware Acceleration: 大規模モデル向けに GPU と分散計算をサポートしています。
  • Flexible Substrates: TensorFlow と JAX の両方に対応しています。
  • Comprehensive Toolset: 膨大な確率分布から高度な MCMC や Variational Inference アルゴリズムまで、あらゆるツールセットを含んでいます。
  • Uncertainty Integration: 標準的なニューラルネットワーク関数に不確実性を追加するための確率論的層を提供します。