简介
优质
小牛编辑
125浏览
2023-12-01
Edward 是一个用于概率建模、推理和评估的 Python 库。它是一个用于快速实验和研究概率模型的测试平台,其涵盖的模型范围从在小数据集上的经典层次模型到在大数据集上的复杂深度概率模型。Edward 融合了以下三个领域:贝叶斯统计学和机器学习、深度学习、概率编程。
Edward 的设计反映了概率建模的基础。 它定义了可互换的组件,并且可以使用概率模型进行快速实验和研究。
Edward 被命名的梗是 George Edward Pelham Box。Edward 的设计遵循了Box先生的统计学和机器学习理论(Box,1976)。
特点
它支持以下方式的建模:
- 定向图模型
- 神经网络(通过Keras 和 TensorFlowSlim等库)
- 条件特定的无向模型
- 贝叶斯非参数和概率程序
它支持以下方式的推理:
- 变分推理(Variational inference)
- 黑箱变分推理
- 随机变分推理
- 包容 KL 散度(Inclusive KL divergence)
- 最大后验估计
蒙特卡洛(Monte Carlo)
- 哈密尔顿蒙特卡罗(Hamiltonian Monte Carlo)
- 随机梯度 Langevin 动态
- Metropolis-Hastings
推理的组成
- 期望最大化(Expectation-Maximization)
- 伪边界和 ABC 方法(Pseudo-marginal and ABC methods)
- 消息传递算法(Message passing algorithms)
它支持以下的模型评估和推理
- 基于点的评估(Point-based evaluations)
- 后验预测检查(Posterior predictive checks)
同时,由于Edward 构建于 TensorFlow 之上。它支持诸如计算图、分布式训练、CPU/GPU 集成、自动微分等功能,也可以用 TensorBoard 可视化。