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 许可证发布。