TensorFlow Probability は、TensorFlow の確率論的推論と統計分析のためのライブラリです。TensorFlow エコシステムの一部として、TensorFlow Probability は、確率論的手法とディープネットワークの統合、自動微分を使用した勾配ベースの推論、ハードウェアアクセラレーション(GPU)と分散計算を備えた大規模なデータセットとモデルへのスケーラビリティを提供します。
TensorFlow Probability をはじめるには、インストールガイドを参照し、Python ノートブックチュートリアル をご覧ください。
コンポーネント
確率的機械学習ツールは次のように構成されています。
Layer 0: TensorFlow
数値演算、特に LinearOperator
クラスは、効率的な計算のために特定の構造(対角、低ランクなど)を活用できる行列のない実装を可能にします。TensorFlow Probability チームによって構築および保守されており、コア TensorFlow の tf.linalg
の一部です。
Layer 1: 確率的なブロックの構築
- Distributions (
tfp.distributions
): バッチおよびブロードキャスト セマンティクスを使用した確率分布および関連する統計の大規模なコレクション。 - Bijectors (
tfp.bijectors
): 確率変数の可逆的で構成可能な変換。Bijectors は、対数正規分布 のような古典的な例から、マスクされた自己回帰フロー のような高度な深層学習モデルまで、変換された分布の豊富なクラスを提供します。
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 課題トラッカーを使用してください。