机器学习40讲-38:完备数据下的参数学习有向图与无向图 介绍完表示和推断之后,我们将进入概率图模型的最后一个任务,也就是学习问题。在推断任务中,我们会根据已知的模型来确定实例的特性,模型的结构和参数都作为输入的一部分出现。学习任务(model learning)则是将推断任务的过程颠倒过来,根据数据来构造出能够反映数据潜在规律的模型,也就是对概率图模型的训练。概率图模型的学习和其他的机器学习一样,都属于自动化的建模方式。构造概率图模型的依据是变量之间的依赖关系,这些依赖关系的建立则需要仰赖垂直领域的先验知识。如果用纯人工的方式来构建概率图模型,那么在网络的节点数目较多、规模较大时,其工作量将是惊人的。将学习任务引入概率图模型之中,就可以基于结构化的数据高效地计算出网络的结构与参数,从而大大简化训练的流程。根据学习对象的不同,学习任务可以大体分为参数学习和结构学习两类。参数学习(parameter learning)是在已知图模型结构的前提下估计其参数,也就是节点之间的条件概率,这可以看成是个数值优化问题。结构学习(structure learning)是在图模型完全未知的情况下先确定其结构,再根据结构来计算参数。结构学习可以看成是针对结构和参数的联合优化,可以存在单一的全局最优解。今天这一讲中,我们先来看看参数学习,这个任务还可以进一步地分类。根据模型结构的不同,参数学习可以分为对贝叶斯网络的学习和对马尔可夫随机场的学习。有向和无向的差异给两种结构的学习带来了截然不同的解决方案:在贝叶斯网络中,每一对节点之间都定义了归一化的条件概率分布,因此学习任务针对的是每个单独的局部;而在马尔可夫随机场中,归一化操作是通过全局化的划分函数来完成的,参数的全局耦合性使得这个复杂的任务不能被分解成若干简单任务的组合,造成了更大的学习难度。最简单的参数学习问题是利用完全观测的数据估计贝叶斯网络的参数,网络结构中并不存在隐变量。从频率主义出发,可以基于似然概率最大化来实现参数的估计。最大似然估计的目标是找到让现有数据出现的概率、也就是似然函数最大化的那一组参数。根据贝叶斯网络的局部特性,全局似然函数可以被拆解成一些独立的局部似然函数的乘积,每个独立项都对应着网络中的一个条件概