网站深度测评
The Libra Toolkit是什么网站?
The Libra Toolkit 是一个面向离散概率模型的开源算法工具包,由 Daniel Lowd 和 Amirmohammad (Pedram) Rooshenas 开发,采用修改版 BSD 许可证发布。它把学习、推理和常用工具方法实现为一系列命令行程序,选项和文件格式在全套工具中保持一致,适合交互式使用或写进脚本。
它具体能做什么
支持的概率模型包括贝叶斯网络(BN)、马尔可夫网络(MN)、依赖网络(DN)、和积网络(SPN)以及算术电路(AC)。
- 学习算法:Chow-Liu 树结构 BN、带上下文特定独立性的 BN、DN 学习、从 DN 学习 MN、紧凑算术电路的 BN/MN 结构学习、树混合、马尔可夫网络权重学习、ID-SPN 结构学习等。
- 推理算法:Gibbs 采样、信念传播、max-product、迭代条件模式、平均场、AC 变量消元、AC 与 SPN 的精确推理、AC 的变分优化等。
- 工具方法:BN 前向采样、似然与伪似然评分、模型转换与证据条件化。
和其他工具包的侧重差异
资料明确说明:相比其他工具包,Libra 更聚焦于结构学习,尤其是精确推理效率高的可处理模型(tractable models)。也就是说,如果你的任务是从数据里学出网络结构、并且希望后续精确推理可行,它比通用概率编程工具更对口。
谁适合用
- 研究或教学中需要复现 BN/MN/SPN/AC 结构学习算法的场景。
- 需要在命令行/脚本里批量跑概率模型学习与推理的实验流程。
- 想对比不同可处理模型(如 SPN、AC)在精确推理下的表现。
获取方式
最新公开发布版是 libra-tk-1.1.2d.tar.gz(2015-12-29)。1.1.2 版改用 OASIS 构建系统;1.1.2d 更新了文档以更好说明用 OPAM 安装,并修复了一处不兼容问题。更新的开发版可从源码仓库获取。引用信息见其 JMLR 2015 论文(第 16 卷,2459–2463 页)。
Libra Toolkit 支持哪些概率模型的结构学习?
Libra Toolkit 支持对以下离散概率模型做结构学习(部分也包含权重学习):
- 贝叶斯网络(BN)
- Chow-Liu 树结构学习
- 带上下文特定独立性(CSI)的 BN 学习
- 将 BN 结构学习为紧凑算术电路(AC)
- 马尔可夫网络(MN)
- 从依赖网络(DN)学习 MN
- 将 MN 结构学习为紧凑算术电路
- 马尔可夫网络权重学习
- 依赖网络(DN)
- 学习 DN
- 和积网络(SPN)
- 使用 ID-SPN 算法学习 SPN 结构
- 算术电路(AC)
- BN 的紧凑算术电路结构学习
- MN 的紧凑算术电路结构学习
- 算术电路的判别式结构学习(资料注明将在下次更新中加入)
它的侧重点是结构学习,尤其是精确推理高效的可处理模型(如 AC、SPN)。每个算法都是命令行程序,选项和文件格式统一,便于交互使用或写脚本。
例如,需要从数据中学习一个可做精确推理的紧凑模型时,可以选 AC 或 SPN 的结构学习算法;只需要树状 BN 时,可用 Chow-Liu 算法。
同类工具中,bnlearn 更偏 R 语言下的 BN 学习与推理,PyMC 侧重贝叶斯建模与采样,而 Libra 的差异化在于把 AC、SPN 这类可处理模型的结构学习做成统一命令行工具集。若你要对比,重点看它是否覆盖你需要的模型类型(尤其 AC/SPN)以及是否接受命令行工作流。
如何使用 Libra Toolkit 进行精确推理?
Libra Toolkit 的精确推理主要通过 AC(算术电路)与 SPN(和积网络)推理程序完成,而不是靠 Gibbs 采样、信念传播这类近似方法。资料中明确列出的精确推理相关算法包括:Exact AC and SPN inference、AC variable elimination(Chavira & Darwiche, 2007)、Variational optimization of ACs,以及把 BN/MN 结构学习成紧凑算术电路的两类算法。
具体使用情境
- 如果你已经有一个可编译为算术电路或和积网络的模型,直接用精确 AC/SPN 推理程序做查询。
- 如果只有普通贝叶斯网络或马尔可夫网络,需要先用 Libra 的“BN/MN structure learning of compact arithmetic circuits”把模型转成可做高效精确推理的电路形式,再做推理。
- 需要按证据条件化(conditioning on evidence)时,用工具包提供的模型转换与条件化工具先处理证据,再送入精确推理程序。
操作方式
Libra 的每个算法都是命令行程序,选项和文件格式在整个工具包中保持一致,因此适合交互式使用或写进脚本。典型流程是:
- 从源码仓库 libra-tk 源码仓库 获取最新开发版,或使用页面提供的 libra-tk-1.1.2d 发布包。
- 按安装文档构建(1.1.2 起改用 OASIS 构建系统,1.1.2d 补充了用 OPAM 安装的说明)。
- 用结构学习程序生成算术电路/SPN 模型文件。
- 调用精确 AC/SPN 推理程序,按统一选项指定查询与证据文件。
选择条件
- 模型规模小、结构简单:直接用 AC variable elimination 或精确 AC/SPN 推理即可。
- 需要可扩展的精确推理:优先选紧凑算术电路方向的结构学习算法(Lowd & Domingos 2008;Lowd & Rooshenas 2013)。
- 只想要近似结果:可改用 Gibbs 采样、信念传播、mean field 等,不必走精确推理路径。
引用与来源
该工具包由 Daniel Lowd 和 Amirmohammad (Pedram) Rooshenas 编写,采用修改版 BSD 许可证,参考论文为 Journal of Machine Learning Research 2015 年第 16 卷的《The Libra Toolkit for Probabilistic Models》。
Libra Toolkit 的下载和安装方式是什么?
Libra Toolkit 提供公开源码下载,安装方式以源码构建为主。
下载
- 最新公开发布版:
libra-tk-1.1.2d.tar.gz(2015-12-29),从官网 Downloads 栏目获取。 - 开发版:从源码仓库
https://bitbucket.org/libra-tk/libra-tk获取,比发布版更新。
安装
- 1.1.2 版起改用 OASIS 构建系统,构建和安装更清晰。
- 1.1.2d 版更新了文档,更好地说明用 OPAM 安装的方法,并修复了一处兼容性问题。
- 由于是源码分发,需要先获得源码,再按官方文档用 OASIS/OPAM 流程构建安装。
使用前提
- 每个算法都是命令行程序,选项和文件格式在全工具包内保持一致,适合交互式使用或写进脚本。
- 采用修改版 BSD 许可证,可自由用于研究和脚本化流程。
下一步
- 想要稳定版本:下载
libra-tk-1.1.2d.tar.gz。 - 想要最新功能:克隆 Bitbucket 仓库,按仓库内文档构建。
Libra Toolkit 与其他概率模型工具包相比有什么特点?
Libra Toolkit 最突出的特点是:它更偏重结构学习,而且重点放在那些能高效做精确推理的可处理模型上,而不是把精力平均铺在所有概率模型任务上。
它覆盖的模型范围
Libra 面向离散概率模型,包括贝叶斯网络(BN)、马尔可夫网络(MN)、依赖网络(DN)、和积网络(SPN)以及算术电路(AC)。相比很多只聚焦 BN 或 MN 的工具包,它把 SPN、AC 这类可处理模型也作为一等公民。
与其他工具包相比的侧重点
- 结构学习优先:内置 Chow-Liu 树结构学习、带上下文特定独立性的 BN 学习、DN 学习、从 DN 学习 MN、BN/MN 的紧凑算术电路结构学习、ID-SPN 结构学习等。这是它区别于通用推理库的主要地方。
- 可处理模型:强调精确推理高效的结构,如紧凑算术电路和 SPN,适合需要精确推理又要控制模型规模的研究场景。
- 命令行一致:每个算法都是命令行程序,选项和文件格式统一,方便交互使用或写脚本批量跑实验。
- 推理方法齐全:除精确 AC/SPN 推理外,也提供 Gibbs 采样、信念传播、max-product、ICM、平均场、AC 变量消元、AC 变分优化等近似方法。
- 附带工具方法:BN 前向采样、似然/伪似然评分、模型转换与证据条件化。
适合谁、什么情况下选它
如果你在做概率图模型的结构学习研究,尤其是想比较树模型、DN、MN、SPN、算术电路在精确推理下的表现,Libra 的命令行设计和统一格式会让实验脚本更容易搭。若你主要需求是大规模近似推理或深度学习集成,可能需要搭配其他框架。
使用条件
Libra 采用修改版 BSD 许可证,最新公开版本为 libra-tk-1.1.2d(2015-12-29),开发版在源码仓库中。引用时可参考 Lowd & Rooshenas 2015 年发表在 JMLR 的论文。
如何引用 Libra Toolkit?
引用 Libra Toolkit 时,官方指定的是下面这条论文引用(BibTeX 格式,来自官网 Citation 部分):
@article{lowd&rooshenas2015,
title = {The Libra Toolkit for Probabilistic Models},
author = {Lowd, Daniel and Rooshenas, Amirmohammad},
journal = {Journal of Machine Learning Research},
year = {2015},
volume = {16},
pages = {2459-2463}
}
使用时注意几点
- 作者署名是 Daniel Lowd 和 Amirmohammad Rooshenas;工具本身由这两位编写。
- 这是发表在 Journal of Machine Learning Research 的论文,卷 16,页码 2459–2463,年份 2015。
- 如果引用的是具体算法,官网的 Algorithms 列表里每个算法都标注了对应原始文献(如 Chow & Liu 1968、Lowd & Domingos 2008、Rooshenas & Lowd 2014 等),可以一并引用对应论文,更精确。
- 若你在论文中同时说明软件版本,可提到使用的发布版(如 libra-tk-1.1.2d)或源码仓库版本,方便读者复现。
例如需要引用其中的 SPN 结构学习算法 ID-SPN,除了上面的工具论文,还应加上 Rooshenas & Lowd (2014) 那篇;只用了工具整体功能,用上面的 @article 即可。
用户评价(0)