TensorFlow 概率是一个用于在 TensorFlow 中进行概率推理和统计分析的库。作为 TensorFlow 生态系统的一部分,TensorFlow 概率提供了概率方法与深度网络的集成、使用自动微分的基于梯度的推理,以及通过硬件加速 (GPU) 和分布式计算扩展到大型数据集和模型的能力。
要开始使用 TensorFlow 概率,请参阅 安装指南 并查看 Python 笔记本教程。
组件
我们的概率机器学习工具的结构如下
第 0 层:TensorFlow
数值运算——特别是 LinearOperator
类——支持可以利用特定结构(对角线、低秩等)进行高效计算的无矩阵实现。它由 TensorFlow 概率团队构建和维护,是核心 TensorFlow 中 tf.linalg
的一部分。
第 1 层:统计构建块
- 分布 (
tfp.distributions
): 大量概率分布和相关统计信息,具有批处理和 广播 语义。 - 双射器 (
tfp.bijectors
): 随机变量的可逆且可组合的变换。双射器提供了一类丰富的变换分布,从经典示例(如 对数正态分布)到复杂的深度学习模型(如 掩蔽自回归流)。
第 2 层:模型构建
- 联合分布(例如,
tfp.distributions.JointDistributionSequential
): 一个或多个可能相互依赖的分布的联合分布。有关使用 TFP 的JointDistribution
进行建模的介绍,请查看 此 colab - 概率层 (
tfp.layers
): 扩展 TensorFlow 层的具有函数表示不确定性的神经网络层。
第 3 层:概率推理
- 马尔可夫链蒙特卡罗 (
tfp.mcmc
): 通过采样近似积分的算法。包括 哈密顿蒙特卡罗、随机游走 Metropolis-Hastings,以及构建自定义转移核的能力。 - 变分推理 (
tfp.vi
): 通过优化近似积分的算法。 - 优化器 (
tfp.optimizer
): 扩展 TensorFlow 优化器的随机优化方法。包括 随机梯度朗之万动力学。 - 蒙特卡罗 (
tfp.monte_carlo
): 用于计算蒙特卡罗期望值的工具。
TensorFlow 概率处于积极开发中,接口可能会发生变化。
示例
除了导航中列出的 Python 笔记本教程 之外,还提供了一些示例脚本
报告问题
使用 TensorFlow Probability 问题跟踪器 报告错误或功能请求。