The Libra Toolkit 包含哪些学习和推理算法?

The Libra Toolkit 是一套面向离散概率模型的算法集合,覆盖贝叶斯网络(BN)、马尔可夫网络(MN)、依赖网络(DN)、和积网络(SPN)以及算术电路(AC)。它的重点不是通用推理,而是结构学习,尤其是那些精确推理效率较高的可处理模型。所有算法都以命令行程序形式实现,选项和文件格式在全工具包内保持一致,适合交互式使用或写进脚本。如果你需要的是离散概率模型的结构学习与推理工具,Libra 值得评估;如果你主要做连续变量建模或深度学习,它并不对口。

学习算法

Libra 的学习算法按目标模型大致分为以下几类:

目标 算法 说明
树结构 BN Chow-Liu 算法 学习树结构贝叶斯网络(Chow & Liu, 1968)
带上下文特定独立性的 BN 上下文特定独立性学习 Chickering 等,1997
DN 依赖网络学习 Heckerman 等,2000
从 DN 学 MN 由依赖网络学习马尔可夫网络 Lowd, 2012
紧凑算术电路 BN BN 结构学习 Lowd & Domingos, 2008
紧凑算术电路 MN MN 结构学习 Lowd & Rooshenas, 2013
树混合 Mixtures of trees Meila & Jordan, 2000
MN 权重 马尔可夫网络权重学习 —
SPN 结构 ID-SPN 算法 Rooshenas & Lowd, 2014
判别式 AC 结构 判别式结构学习 Rooshenas & Lowd, 2016,资料标注“将在下次更新中加入”

从这张表可以看出,Libra 的结构学习覆盖面偏“可处理模型”:算术电路、SPN、树混合这类能保证精确推理效率的表示是它的特色。

推理算法

推理方面,Libra 同时提供近似与精确方法:

  • 采样类:Gibbs 采样
  • 消息传递类:信念传播、最大积
  • 优化/迭代类:迭代条件模式(ICM)、平均场(Lowd & Shamaei, 2011,用于 DN 中的平均场)
  • 精确推理:AC 变量消元(Chavira & Darwiche, 2007)、精确 AC 与 SPN 推理
  • 变分方法:AC 的变分优化(Lowd & Domingos, 2010)

选择哪一类取决于你对精度的要求:需要精确结果时用 AC/SPN 推理或变量消元;模型较大、可接受近似时,Gibbs 采样、信念传播或平均场更实用。

实用方法

除学习和推理外,Libra 还包含若干辅助功能:

  • BN 中的前向采样
  • 似然与伪似然模型评分
  • 模型转换与基于证据的条件化

这些方法通常用于生成数据、评估模型质量,或在建模流程中做格式转换和条件查询。

获取与版本

最新公开版本为 libra-tk-1.1.2d(2015-12-29)。开发版可从源码仓库获取:https://bitbucket.org/libra-tk/libra-tk。

版本要点:1.1.2 改用 OASIS 构建系统,使构建和安装更清晰;1.1.2d 更新了文档,更好地说明使用 OPAM 安装,并修复了一处不兼容问题。

引用信息

若在研究中使用了 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}
}

Libra 由 Daniel Lowd 和 Amirmohammad (Pedram) Rooshenas 编写,采用修改版 BSD 许可证发布。

libra.cs.uoregon.edu