看完了参数学习,我们再来看看结构学习。

结构学习(structure learning)的任务是找到与数据匹配度最高的网络结构,需要同时学习未知图模型的结构和参数。这也很容易理解:模型的结构都不知道,参数自然也是不知道的,所以需要一并来学习。结构学习的任务是根据训练数据集找到结构最恰当的模型,这无疑比参数学习要复杂得多,也有更多的不确定性。

对图模型进行结构学习的目的有两个。一方面在于知识发现(knowledge discovery),根据因变量的结果来判定自变量之间的依赖关系;另一方面则在于密度估计(density estimation),估计出数据分布的特性,据此对新样本进行推断。

对图模型进行结构学习有哪些方法呢?主要有三种,分别是基于约束的学习基于评分的学习基于回归的学习,这三种方法都可以应用在有向的贝叶斯网络和无向的马尔可夫随机场中,但在下面的介绍中我将以较为简单的贝叶斯网络为例。

基于约束的结构学习(constraint-based structure learning)将贝叶斯网络视为条件独立性的表示,与贝叶斯网络的语义非常贴近。这种方法首先从数据中识别出一组条件独立性作为约束,然后尝试找到最符合这些约束的网络结构。基于约束的学习与贝叶斯网络的结构特征密切相关,但它缺乏类似于似然函数的显式目标函数,因而不能直接找到全局的最优结构,也就不适用于概率框架。

基于约束的典型算法是 SGS 算法,这个名字来源于三位设计者的首字母缩写。SGS 采用遍历式的方法来判定结点之间是否应该有边存在,它首先在结点集合上构造出全连接的无向图,再对图中多余的边做出删减。具体的做法是判断选出的两个节点 i,ji,j