The Libra Toolkit 是什么?
The Libra Toolkit 是俄勒冈大学(libra.cs.uoregon.edu)发布的一套离散概率模型算法工具集,用于概率模型的学习与推理。它覆盖贝叶斯网络(BN)、马尔可夫网络(MN)、依赖网络(DN)、和积网络(SPN)和算术电路(AC)等模型,与其他工具包相比更侧重结构学习,尤其是那些可以高效进行精确推理的可处理模型。工具由 Daniel Lowd 和 Amirmohammad (Pedram) Rooshenas 编写,采用修改版 BSD 许可证发布。如果你需要的是命令行环境下、可脚本化的概率图模型学习与推理工具,它值得考虑;如果你需要图形界面或深度学习框架式的 API,它并不合适。
它包含哪些算法
Libra 的算法分为学习、推理和实用工具三类,每个算法都实现为一个命令行程序。
学习算法
- Chow-Liu 算法:学习树结构贝叶斯网络(Chow & Liu, 1968)
- 带上下文特定独立性的贝叶斯网络学习(Chickering 等, 1997)
- 依赖网络学习(Heckerman 等, 2000)
- 从依赖网络学习马尔可夫网络(Lowd, 2012)
- 紧凑算术电路的贝叶斯网络结构学习(Lowd & Domingos, 2008)
- 紧凑算术电路的马尔可夫网络结构学习(Lowd & Rooshenas, 2013)
- 树混合模型(Meila & Jordan, 2000)
- 马尔可夫网络权重学习
- 使用 ID-SPN 算法学习 SPN 结构(Rooshenas & Lowd, 2014)
- 算术电路的判别式结构学习(Rooshenas & Lowd, 2016,计划在后续更新中加入)
推理算法
- Gibbs 采样
- 信念传播
- Max-product
- 迭代条件模式(ICM)
- 平均场(Lowd & Shamaei, 2011,用于依赖网络)
- AC 变量消元(Chavira & Darwiche, 2007)
- 精确的 AC 与 SPN 推理
- AC 的变分优化(Lowd & Domingos, 2010)
实用方法
- 贝叶斯网络中的前向采样
- 似然与伪似然模型评分
- 模型转换与证据条件化
使用方式与获取
Libra 中每个算法都是命令行程序,整个工具包保持一致的选项和文件格式,因此既适合交互式使用,也适合写进脚本批量运行。
最新公开发布版本为 libra-tk-1.1.2d(2015 年 12 月 29 日)。版本 1.1.2 改用 OASIS 构建系统以简化构建和安装;1.1.2d 更新了文档以更好地说明使用 OPAM 安装,并修复了一处不兼容问题。
如果需要比公开发布版更新的开发版本,可以从源码仓库获取:https://bitbucket.org/libra-tk/libra-tk。
引用信息
在学术工作中使用 Libra 时,官方给出的引用格式为:
@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}
}
适合谁用
- 研究离散概率图模型、需要复现或对比结构学习算法的研究者;
- 需要在脚本中批量做模型学习、推理和评分,且偏好命令行工具的用户;
- 关注可处理模型(精确推理高效)与算术电路、和积网络方向的开发者。
如果你的任务依赖图形界面、Python 原生 API 或深度学习生态,Libra 的命令行形态和 2015 年前后的发布节奏可能不匹配你的需求。