本文基于Alchemy用户手册完成。尽管我这里对内容做了选择和扩张,并加入了些许个人理解;但是还是强烈建议您阅读原文。
Alchemy主页:http://alchemy.cs.washington.edu/
Alchemy用户手册:http://alchemy.cs.washington.edu/user-manual/manual.html
1. 介绍
Alchemy是一个用于学习马尔可夫逻辑网络[http://en.wikipedia.org/wiki/Markov_logic_network]和使用马尔可夫逻辑网络进行推理的平台。Alchemy里面包括了一系列基于马尔可夫逻辑形式表示的统计关系学习[http://en.wikipedia.org/wiki/Statistical_relational_learning]和概率逻辑推理算法。
注1:如果对统计关系学习和马尔科夫网络不熟悉的中文朋友可以阅读在计算机研究与发展上发表的《统计关系学习研究进展》和软件学报上发表的《马尔可夫逻辑网络研究》。
注2:如果希望更深入的学习马尔可夫逻辑网络,推荐阅读文献为http://alchemy.cs.washington.edu/user-manual/Bibliography.html列出的[3,8,9,11,12]。
注3:Alchemy系统邮箱是[email protected]; 任何有关该软件包的问题可以发送至该邮箱。
目前该系统还是Beta版本,该版本包括的功能有:
1) 判别式权重学习(Voted Perceptron, Conjugate Gradient, Newton's Method)
2) 产生式权重学习
3) 结构学习
4) 最大后验概率估计(MAP)和
伪最大似然估计(MPE)推理(包括节省内存使用的方法)[注:参数学习部分]
5) 概率推断: MC-SAT, Gibbs抽样, 模拟退火, 信念扩散(包括lifted)[注:此处不懂]
6) 支持内联函数[注:指使用C++函数]
7) 对于包含互斥和不全值的变量[注:指一个领域下的变量没有全部给出],使用基于块的推理和学习方法
8) 使用EM算法处理学习的时候不确定真值的闭原子
9) Specification of indivisible formulas (i.e. formulas that should not be broken up into separate clauses)[注:此处不懂]
10) 支持连续变量的特征和领域[注:指值的类别,可以理解为type或category]
11) 在线推理
下个版本计划包括如下功能:
1) 在线学习
2) 对于小领域的精确推理
3) 对于MLN中的规则,不仅仅指明权重还能指明概率,在数据库中指定闭原子的概率
4) 决策论
5) 更详细全面的文档
2. 安装
Alchemy是安装在Linux平台上滴,所以呢,如果你用的是windows,那么只有用Cygwin了。
在安装Alchemy之前,请确保你的Linux下有以下软件包:
Bison
Flex
g++
Perl
[注:如果是cygwin也需要手动安装这些包,默认情况下也是没有安装的。]
1) 下载alchemy.tgz文件,放入/home目录[注:非必须]
2) 解压文件: tar xvfz alchemy.tgz
3) 如果Bison,Flex,g++,Perl都已经安装正确了,则进入/home/alchemy/src目录,编译代码,使用如下命令:make depend; make
4) 此时/home/alchemy/bin目录下就有编译完成的可执行文件
[注:主要包括infer、learnstruct和learnwts]
好了,此时你就可以用infer做推理,用learnwts学习规则权重,用learnstruct学习结构了。