7.5.2 学习
- 若网络结构已经知道,则属性间的依赖关系已经知道,则贝叶斯的学习过程相对简单,只需要对训练样本进行“计数”,估计处每个结点的条件概率表即可以了,但在现实应用中我们往往并不知道网络结构。于是,贝叶斯学习的首要任务就是根据训练数据集来找到结构最为恰当的贝叶斯网。“评分搜索”是求解这一问题的常用方法。具体来说,我们先顶一个一个评分函数,以此来评估贝叶斯网喝训练数据的契合程度,然后基于这个评分函数来寻找结构最优化的贝叶斯网,显然,评分函数引入了我们希望获得什么样的贝贝叶斯网的归纳偏好。
- 常用评分函数通常是基于信息论准则,此类准则将学习问题看作是一个数据压缩任务。学习的目标是找到一个能以最短编码长度描述训练数据的模型,此时编码的长度包括了描述模型自身所需要的编码位数以及使用该模型描述数据所需要的编码位数,对于贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能够使得那些经常出现的样本有更短的编码,于是我们选择那个综合编码长度最短的贝叶斯网,这就是**“最小描述长度 minimal description length” 准则**。
- 给定训练集 D={x1,x2,……xm},贝叶斯网 B={G,谁他}在D上的评分函数可以写作
- s(B |D) =f(谁他) |B| - LL(B|D)
- 其中,|B|是贝叶斯网的参数个数,f(谁他)表示描述每个参数谁他所需要的编码位数
- L L(B|D) =连乘 log P (下标B)(xi) 就是贝叶斯网B 的对数似然,显然,式子f(谁他)|B|是计算贝叶斯网B所需要的编码位数,第二项就是计算B所对应的概率分布PB对D描述得有多好,。于是,学习任务就转化为了一个优化任务,即需按照一个贝叶斯网 B使得评分函数 s(B|D)最小
- 如果f(谁他)=1,即每个参数使用1编码位描述,则得到AIC评分函数
- AIC(B|D) =|B| -LL(B|D)
- 如果f(谁他)=1/2 log m,则每个参数用1/2 log m编码位描述,则得到BIC评分函数
- BIC(B|D)=logm /2|B|-LL(B|D)
- 如果f(谁他)=0.则不计算网络进行编码的长度,则评分函数退化为负对数似然,相应的,学习任务退化为极大似然估计。
- 如果f(谁他)=1,即每个参数使用1编码位描述,则得到AIC评分函数
- 不难发现,若贝叶斯网络B={G,谁他}的网络结构G固定,则评分函数 s(B|D)的第一项为常数,此时最小化 s(B|D) 等价于对参数谁他的极大似然估计,而谁他 xi|pai i能够直接在训练数据D上通过经验估计获得
- sheita xi|pai i =PD(xi | pai i)
- 其中PD(*)是D上的经验分布,因此,为了最小化评分函数s(B|D),只需要对网络结构进行搜索,而候选结构的最佳参数可直接在训练集上计算得到
- 不幸的是,从所有可能的网络空间中搜索最优化的贝叶斯网结构是一个NP问题,难以快速的求解。有两种常见的策略能过在有限的时间内求得一个近似解,第一种是贪心的方法,例如从某个网络开始,每次调整一条边(删除,增加或者是调整),直到评分函数不再降低为止。第二种是通过给网络结构施加约束来削弱搜索空间,例如将网络结构限定为树形结构等