TensorFlow Probability

TensorFlow Probability は、TensorFlow の確率論的推論と統計分析のためのライブラリです。TensorFlow エコシステムの一部として、TensorFlow Probability は、確率論的手法とディープネットワークの統合、自動微分を使用した勾配ベースの推論、ハードウェアアクセラレーション(GPU)と分散計算を備えた大規模なデータセットとモデルへのスケーラビリティを提供します。

TensorFlow Probability をはじめるには、インストールガイドを参照し、Python ノートブックチュートリアル をご覧ください。

コンポーネント

確率的機械学習ツールは次のように構成されています。

Layer 0: TensorFlow

数値演算、特に LinearOperator クラスは、効率的な計算のために特定の構造(対角、低ランクなど)を活用できる行列のない実装を可能にします。TensorFlow Probability チームによって構築および保守されており、コア TensorFlow の tf.linalg の一部です。

Layer 1: 確率的なブロックの構築

Layer 2: モデル構築

  • 同時分布 (tfp.distributions.JointDistributionSequential): 1 つ以上の相互依存の可能性のある分布にわたる同時分布。TFP の JointDistribution を使用したモデリングの概要については、このコラボを参照してください。
  • 確率的レイヤー (tfp.layers): 不確実性を考慮した関数をもつニューラルネットワークレイヤ。TensorFlow レイヤーを拡張します。

Layer 3: 確率的推論

  • マルコフ連鎖モンテカルロ (tfp.mcmc): サンプリングを介して積分を近似するためのアルゴリズム。ハミルトニアンモンテカルロ、ランダムウォークメトロポリス-ヘイスティングス、およびカスタム遷移カーネルを構築する機能が含まれています。
  • 変分推論 (tfp.vi): 最適化により積分を近似するためのアルゴリズム。
  • オプティマイザ (tfp.optimizer): TensorFlow オプティマイザを拡張する確率的最適化手法。確率的勾配ランゲビンダイナミクス が含まれています。
  • モンテカルロ (tfp.monte_carlo): モンテカルロ法で期待値を計算するためのツール。

TensorFlow Probability は開発中であり、インターフェースが変更される可能性があります。

使用例

ナビゲーションにリストされている Python ノートブックチュートリアル の他、使用可能なスクリプトの例がいくつかあります。

問題の報告

バグの報告や機能リクエストには、 TensorFlow Probability 課題トラッカーを使用してください。