Google I/O にご注目いただきありがとうございます。すべてのセッションをオンデマンドで表示オンデマンドで見る

TensorFlow Probability

TensorFlow Probability は TensorFlow における確率的推論と統計的分析のためのライブラリです。 TensorFlow エコシステムの一部として、TensorFlow Probability は確率的手法とさまざまな手法や機能との統合を提供します。 たとえば、深層ネットワークを用いた確率的な手法、自動微分を用いた勾配に基づく推論、GPU のようなハードウェア高速化や分散処理による大きなデータセットやモデルに対するスケーラビリティなどです。

TensorFlow Probability を始めるためには、インストールガイドPython notebook チュートリアルを参照してください。

コンポーネント

我々の確率的機械学習ツール群は以下のような構造になっています:

Layer 0: TensorFlow

数値処理—特に、LinearOperator クラスが可能にする、効率的な演算のための特定の構造 (対角、低ランク) を開発できるようにする行列フリーな実装。 TensorFlow Probability チームによりメンテナンスされていて、TensorFlow コアの tf.linalg の一部です。

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

Layer 2: モデル構築

  • Edward2 (tfp.edward2): プログラムとして柔軟な確率的モデルを定義するための確率的プログラミング言語
  • Probabilistic layers (tfp.layers): TensorFlow の layers を拡張して、それらが表現する関数の不確実性を出力できるニューラルネットワーク層
  • Trainable distributions (tfp.trainable_distributions): 確率分布を出力するニューラルネットワークを構築することを簡単にする、1つの Tensor によるパラメータをもつ確率分布

Layer 3: 確率的推論

  • Markov chain Monte Carlo (tfp.mcmc): サンプリングによる積分近似のためのアルゴリズム ハミルトンモンテカルロ法、 ランダムウォークメトロポリス・ヘイスティング法、カスタム遷移カーネルを構築することができる機能を含みます。
  • Variational Inference (tfp.vi): 最適化による積分近似のためのアルゴリズム
  • Optimizers (tfp.optimizer): TensorFlow Optimizers を拡張した、確率的最適化モジュール。 Stochastic Gradient Langevin Dynamics を含みます。
  • Monte Carlo (tfp.monte_carlo): モンテカルロ法を用いたツール群

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

使用例

ナビゲーションに載っている Python notebook チュートリアル に加えて、いくつかのスクリプト例が利用できます:

issue の報告

バグ報告や機能要望は TensorFlow Probability issue tracker を使用してください。