评分函数

Bayes 网络中,若网络结构已知,则属性间的依赖关系已知,只需通过对训练样本“记数”,估计出每个节点的条件概率表即可。但实际中并不知道网络结构。贝叶斯网络学习的首要任务:根据训练数据集找出结构最恰当的贝叶斯网。

常用解决方法为「评分搜索」。先定义一个「评分函数」,以此来评估贝叶斯网和训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网络。

常用评分函数通常基于信息论准则,将学习问题看作一个数据压缩任务,学习的目标是找一个能以最短编码长度描述训练数据的模型,此时编码长度包括了描述模型自身所需的字节长度,以及使用该模型数据所需的字节长度。

最小描述长度」(Minimal Description Length, MDL)准则:选择综合编码长度(包括描述网络和编码数据)最短的贝叶斯网。

给定训练集 ,定义贝叶斯网 的对数似然为

定义贝叶斯网 上的评分函数

其中, 是贝叶斯网的参数个数, 表示描述每个参数 所需的字节数。第一项计算编码贝叶斯网 所需的字节,第二项计算 所对应的概率分布 需要多少字节来描述 。将学习任务转换为一个优化任务。即寻找一个贝叶斯网 使得评分函数 最小

,即每个参数用一个字节描述,则得到 AIC(Akaike Information Criterion) 评分函数

,即每个参数用 字节描述,则得到 BIC(Bayesian Information Criterion)评分函数

,即不计算对网络进行编码的长度,则评分函数退化为负对数似然;相应的,学习任务退化为极大似然估计。

若贝叶斯网 的网络结构 恒定,则评分函数 的第一项为常数。此时最小化 等价于对参数 的极大似然估计。同时,参数 能直接在训练数据集 上通过经验估计获得,即

其中 上的经验分布。为了最小化评分 ,只需要对网络结构进行搜索,而候选结构的最优参数可直接在训练集上计算得到。从所有可能的网络结构空间搜索最优贝叶斯网结构是一个 NP 难问题,难以快速求解。两种常用策略能够在有限时间内求得近似解。

  • 贪心法:从某个网络结构出发,每次调整一条边,直到评分函数值不能再降低为止
  • 对网络机构增加约束来削减搜索空间,如将网络结构限定为树形结构。