贝叶斯网络结构学习总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
l * ( * | ) max l * ( | ) ,这就是最大优参似然准则。
家族 CH 评分 设定 p(BS | D) score(i, pai )
i 1 n
--- Bs 表示网络结构, D 表示一组
变量 X1,X2,...,Xn 的完整实例数据 其中 score(i, pai ) [
-----------------------一个变量顺序(设它与变量下标一致) -----------------------变量父亲节点个数的上界
-----------------------一组完整的数据
常用的评分函数介绍如下:
最优参数对数似然函数 结构 与相应的参数集合 组成贝叶斯网络( , ) 。相对于数据 最优的贝叶斯网 ( * , ) 应该使对数似然函数达到最大,即
*
l ( * ,** | ) max sup l ( , | )
向。 2002 年,Cheng 将信息论与统计测试相结合,使用相互信息代替 了条件独立性测试。经过 Drafting、Thickening、Thinning 三个步骤, 通过计算相互信息量来确定节点间的条件独立性。 从而构造出多连接 有向图模型。
2. 基于评分搜索的结构学习方法:
贝叶斯网络基于评分搜索的结构学习方法主要包括两步: 模型 选择和模型优化。 模型选择部分要制定模型选择准则,即评分函数,目前较常用的几个 评分函数如下:最优参数对数似然函数,CH 评分,BIC 评分等,还有 MDL(minimum description length),AIC(Akaike information criterion) 评分函数,HVL(holdout validation likelihood)评分(验证数据似然 度) 。 CVL(cross validation likelihood)评分(交叉验证) 。 模型优化就是要根据模型选择准则,即评分函数,选择出评分最 高的网络结构,也就是搜索策略问题。从所有可能的网络结构空间搜 索最佳的贝叶斯网络结构被证明为 NP-hard 问题,所以一般使用启发 式搜索算法, 主要有 K2, hill-climbing 算法; 随机重复爬山法 (random restart hill-climbing) ,禁忌搜索(tabu search) ,模拟退火(simulated annealing)及遗传算法(genetic algorithm)等。
发挥各自优势,来保证建模的效率和准确性。但是,在不具备专家知 识或知识库的前提下, 从数据中学习贝叶斯网络模型结构的研究显得 尤为重要。 常用的结构学习方法主要有两类,分别是基于依赖性测试的学习 和基于搜索评分的学习。 第一类方法是基于依赖性测试的方法,它是在给定数据集 D 中评 估变量之间的条件独立性关系,构建网络结构。基于条件独立测试方 法学习效率最好,典型的算法包括三阶段分析算法(TPDA) 。基于依 赖性测试的方法比较直观,贴近贝叶斯网络的语义,把条件独立性测 试和网络结构的搜索分离开, 不足之处是对条件独立性测试产生的误 差非常敏感。 且在某些情况下条件独立性测试的次数相对于变量的数 目成指数级增长。 第二类方法是基于评分搜索的方法,其原理是在所有节点的结构 空间内按照一定的搜索策略及评分准则构建贝叶斯网络结构, 这种算 法虽然能够搜索到精确的网络结构,但是由于结构空间很大,从所有 可能的网络结构空间搜索最佳的贝叶斯网络结构被证明为 NP-hard 问 题,所以一般需要使用启发式算法,代表性算法有 K2 算法等。基于 搜索评分的方法是一种统计驱动的方法,试图在准确性、稀疏性、鲁 棒性等多个因素之间找个平衡点。但由于搜索方法的先天弱点,导致 用搜索评分的方法不一定能找到最好的结构,但是应用范围很广。 当观察到的数据足够充分且计算次数足够多时,基于搜索评分的 方法和基于依赖性测试的方法都可以学到“正确”的网络结构。
MDL 评分 它是最短描述长度(minimum description length)的简称。这个准则 的基本思想如下:数据分析的目的是要找出蕴含在数据中的规律,然 后可以利用它们对数据进行压缩, 从而降低数据的编码 (描述) 长度, 所以, 用贝叶斯网分析数据是否成功可以用数据和模型的编码总长度 来度量。 AIC 评分 它是 Akaike 信息准则的简称,他假设数据 是从一个概率分布 P(X)
j 1 qi
(ij* ) (ij* Nij*
)
k 1
ri
(ijk Nijk ) (ijk )
]
ri ri
其中 Nijk 是 D 中满足 Xi =k, i =j 的样本个数,Nij* Nijk ,ij* ijk 。
k 1 k 1
在使用 CH 评分之前,首先需要选定参数先验分布 p(B | Bs ) 中超参数
HVL 评分 罚项的作用是防止过度拟合,还有一种防止过度拟合的方法,它的基 本思想是把数据 随机地分成训练数据 t 和验证数据 v 。对于一个模 型结构 ,首先基于训练数据对其参数进行估计,得到一个贝叶斯网
( , t ) ,然后计算验证数据 v 对数似然度:
HVL( | v ,t ) log P(v | , t ) 。这就是 HVL 评分函数。
此外,有人结合上述两种方法,提出了一些混合算法,这类算法 首先利用独立性测试降低搜索空间的复杂度, 然后执行评分搜索找到 最佳网络,如稀疏候选算法(sparse candidate)及 MMHC(max-min hill-climbing)算法等。
1. 基于依赖性测试结构学习方法
基于依赖性测试的结构学习算法将贝叶斯网络看作是编码了变量 间独立性关系的图结构。 它的核心思想是: 通过样本集 D 验证条件独 立性 I(Xi,Xj|C)是否成立,若成立,则在网络 S 中节点 Xi 和 Xj 被 C 有向分割,节点 Xi 和 Xj 之间不存在边,若不成立,变量 Xi 和 Xj 是依赖的,网络中节点 Xi 和 Xj 之间存在边。然后,利用节点集之间 的条件独立性,建造一个有向无环图,以尽可能多地覆盖这些条件独 立性。 常用的独立性检验的方法有 2 检验和基于互信息的检验方法。基 于依赖性测试的学习方法学习效率较高,而且能够获得全局最优解; 但存在以下问题:1.判断两个节点是否独立或条件独立是困难的,变 量间条件独立性检验的次数是随着变量的个数的增加指数级增长的; 2.高阶的条件独立性检验的结果不够可靠。 1993 年 Sprites 等提出的 SGS 算法是典型的以条件独立性测试确 定拓扑结构的算法。该算法从无向完全图出发,如果相节点间存在无 向分割集,则删除它们间的边;然后通过统计测试来确定剩余边的方
p( D | Bs ) score(i, pai )
i 1 n
其中 score(i, pai ) [
j 1
qi
(Leabharlann Baiduj ) (ij Nij
)
k 1
ri
( ijk Nijk ) ( ijk )
]
K2 算法伪代码:
k 2( X , , , )
输入: X {X1 , X 2 ,..., X n} ---------------------一组变量
p( D | S h )
i 1 j 1 n qi
(ij ) (ij Nij
)
k 1
ri
(ijk Nijk ) ( ijk )
二、 贝叶斯网络完整数据集下结构学习方法
贝叶斯网络建模一般有三种方法:1)依靠专家建模;2)从数据 中学习;3)从知识库中创建。在实际建模过程中常常综合运用这些 方法, 以专家知识为主导, 以数据库和知识库为辅助手段, 扬长避短,
3. 典型算法介绍:
三阶段算法:
第一阶段:Drafting,计算每对节点间的互信息,建立完整的无向图; 第二阶段:Thickening,如果节点对不是 d-分割的话,把这一点对加 入到边集中; 第三阶段:Thinning,检察边集中的每个点对,如果两个节点是 d-分 割的,则移走这条边。
K2 算法: K2 算法用贪婪搜索处理模型选择问题:先定义一种评价网络结构优 劣的评分函数,再从一个网络开始,根据事先确定的最大父节点数目 和节点次序,选择分值最高的节点作为该节点的父节点。K2 算法使 用后验概率作为评分函数:
贝叶斯网络结构学习总结
一、 贝叶斯网络结构学习的原理
从数据中学习贝叶斯网络结构就是对给定的数据集,找到一个与 数据集拟合最好的网络。 首先定义一个随机变量 S h ,表示网络结构的不确定性,并赋予先 验概率分布 p(S h ) 。然后计算后验概率分布 p(S h | D) 。根据 Bayesian 定 理有
中进行独立同分布抽样而得到的。AIC 评分的出发点是要找一个贝叶 斯网 B* ( * ,* ) ,使得 PB ( X ) 与 P(X)之间的 KL 距离最短,即
*
*
KL( P, PB* ) KL( P, PB ), B ,在一定光滑条件下做大样本近似,可得如下
结论,即 B* 的结构 * 应该满足: AIC( * | ) AIC( | ), , 其中, AIC ( | ) log P( | ,* ) d AIC 评分与 BIC 评分都是优参对数似然度加一个罚项,因此都称为罚 项似然度。MDL 也是罚项似然度。
CVL 评分,即交叉验证 它的基本思想是多次计算模型的 HVL 评分, 而每次都按照不同方式将
划分为 t 和 v ,然后计算各次所得评分的平均值,并将其作为模型
的最后评分。CVL 评分比 HVL 评分更具鲁棒性,但其计算复杂度也高 出 HVL 评分数倍。 在大样本情况下,HVL 准则,CVL 准则都与 AIC 准则等价。
在概念上寻找最优的贝叶斯网络的过程可以分为两步: 第一步寻找最 优结构 * ,第二步寻找最优参数 * 。对任一网络结构 ,定义
*
l * ( | ) sup l ( , | ) 作为网络结构的函数, l * ( | ) 称为优参对数似然
函数,最优结构 * 应该使优参对数似然函数达到最大,即
s
ijk 。通常这并非易事,因为理论上我们需要对每一个可能的结构都
提供参数先验分布,然而结构数目众多,无法一一罗列。在实际中, 人们往往规定一个等价样本量 和一个先验贝叶斯旺 Bs ,利用下式得
到 p(B | Bs ) 的超参数 ijk : ijk PB (Xi k | i j) 。
p(S h | D) p(S h , D) / p( D) p(S h ) p( D | S h ) / p( D)
其中 p( D) 是一个与结构无关的正规化常数, p(D | S h ) 是边界似然。 于是确定网络结构的后验分布只需要为每一个可能的结构计算数据 的边界似然。在无约束多项分布、参数独立、采用 Dirichlet 先验和数 据完整的前提下,数据的边界似然正好等于每一个(i,j)对的边界 似然的乘积,即
s s
BIC 评分, 即贝叶斯信息准则是在大样本前提下对边缘似然函数的一种近 似,它有明确直观的意义,而且使用方便,是实际中最常用的评分函 数。
log P( | ) log P( | , * ) d log m 2
这就是模型结构 的 BIC 评分,记为 BIC( | ) 。 BIC 评分的第一项是模型 的优参对数似然度,它度量的是结构 与 数据 的拟合程度。第二项是一个关于模型复杂度的罚项。若仅仅依 据优参似然度来选择模型,会选到最复杂的完全贝叶斯网络,导致过 度拟合。由于附加了一个模型复杂度的罚项,BIC 有效地避免了过度 拟合,直观上,基于 BIC 评分选择模型就是要选择既与数据拟合,又 比较简单的模型。
家族 CH 评分 设定 p(BS | D) score(i, pai )
i 1 n
--- Bs 表示网络结构, D 表示一组
变量 X1,X2,...,Xn 的完整实例数据 其中 score(i, pai ) [
-----------------------一个变量顺序(设它与变量下标一致) -----------------------变量父亲节点个数的上界
-----------------------一组完整的数据
常用的评分函数介绍如下:
最优参数对数似然函数 结构 与相应的参数集合 组成贝叶斯网络( , ) 。相对于数据 最优的贝叶斯网 ( * , ) 应该使对数似然函数达到最大,即
*
l ( * ,** | ) max sup l ( , | )
向。 2002 年,Cheng 将信息论与统计测试相结合,使用相互信息代替 了条件独立性测试。经过 Drafting、Thickening、Thinning 三个步骤, 通过计算相互信息量来确定节点间的条件独立性。 从而构造出多连接 有向图模型。
2. 基于评分搜索的结构学习方法:
贝叶斯网络基于评分搜索的结构学习方法主要包括两步: 模型 选择和模型优化。 模型选择部分要制定模型选择准则,即评分函数,目前较常用的几个 评分函数如下:最优参数对数似然函数,CH 评分,BIC 评分等,还有 MDL(minimum description length),AIC(Akaike information criterion) 评分函数,HVL(holdout validation likelihood)评分(验证数据似然 度) 。 CVL(cross validation likelihood)评分(交叉验证) 。 模型优化就是要根据模型选择准则,即评分函数,选择出评分最 高的网络结构,也就是搜索策略问题。从所有可能的网络结构空间搜 索最佳的贝叶斯网络结构被证明为 NP-hard 问题,所以一般使用启发 式搜索算法, 主要有 K2, hill-climbing 算法; 随机重复爬山法 (random restart hill-climbing) ,禁忌搜索(tabu search) ,模拟退火(simulated annealing)及遗传算法(genetic algorithm)等。
发挥各自优势,来保证建模的效率和准确性。但是,在不具备专家知 识或知识库的前提下, 从数据中学习贝叶斯网络模型结构的研究显得 尤为重要。 常用的结构学习方法主要有两类,分别是基于依赖性测试的学习 和基于搜索评分的学习。 第一类方法是基于依赖性测试的方法,它是在给定数据集 D 中评 估变量之间的条件独立性关系,构建网络结构。基于条件独立测试方 法学习效率最好,典型的算法包括三阶段分析算法(TPDA) 。基于依 赖性测试的方法比较直观,贴近贝叶斯网络的语义,把条件独立性测 试和网络结构的搜索分离开, 不足之处是对条件独立性测试产生的误 差非常敏感。 且在某些情况下条件独立性测试的次数相对于变量的数 目成指数级增长。 第二类方法是基于评分搜索的方法,其原理是在所有节点的结构 空间内按照一定的搜索策略及评分准则构建贝叶斯网络结构, 这种算 法虽然能够搜索到精确的网络结构,但是由于结构空间很大,从所有 可能的网络结构空间搜索最佳的贝叶斯网络结构被证明为 NP-hard 问 题,所以一般需要使用启发式算法,代表性算法有 K2 算法等。基于 搜索评分的方法是一种统计驱动的方法,试图在准确性、稀疏性、鲁 棒性等多个因素之间找个平衡点。但由于搜索方法的先天弱点,导致 用搜索评分的方法不一定能找到最好的结构,但是应用范围很广。 当观察到的数据足够充分且计算次数足够多时,基于搜索评分的 方法和基于依赖性测试的方法都可以学到“正确”的网络结构。
MDL 评分 它是最短描述长度(minimum description length)的简称。这个准则 的基本思想如下:数据分析的目的是要找出蕴含在数据中的规律,然 后可以利用它们对数据进行压缩, 从而降低数据的编码 (描述) 长度, 所以, 用贝叶斯网分析数据是否成功可以用数据和模型的编码总长度 来度量。 AIC 评分 它是 Akaike 信息准则的简称,他假设数据 是从一个概率分布 P(X)
j 1 qi
(ij* ) (ij* Nij*
)
k 1
ri
(ijk Nijk ) (ijk )
]
ri ri
其中 Nijk 是 D 中满足 Xi =k, i =j 的样本个数,Nij* Nijk ,ij* ijk 。
k 1 k 1
在使用 CH 评分之前,首先需要选定参数先验分布 p(B | Bs ) 中超参数
HVL 评分 罚项的作用是防止过度拟合,还有一种防止过度拟合的方法,它的基 本思想是把数据 随机地分成训练数据 t 和验证数据 v 。对于一个模 型结构 ,首先基于训练数据对其参数进行估计,得到一个贝叶斯网
( , t ) ,然后计算验证数据 v 对数似然度:
HVL( | v ,t ) log P(v | , t ) 。这就是 HVL 评分函数。
此外,有人结合上述两种方法,提出了一些混合算法,这类算法 首先利用独立性测试降低搜索空间的复杂度, 然后执行评分搜索找到 最佳网络,如稀疏候选算法(sparse candidate)及 MMHC(max-min hill-climbing)算法等。
1. 基于依赖性测试结构学习方法
基于依赖性测试的结构学习算法将贝叶斯网络看作是编码了变量 间独立性关系的图结构。 它的核心思想是: 通过样本集 D 验证条件独 立性 I(Xi,Xj|C)是否成立,若成立,则在网络 S 中节点 Xi 和 Xj 被 C 有向分割,节点 Xi 和 Xj 之间不存在边,若不成立,变量 Xi 和 Xj 是依赖的,网络中节点 Xi 和 Xj 之间存在边。然后,利用节点集之间 的条件独立性,建造一个有向无环图,以尽可能多地覆盖这些条件独 立性。 常用的独立性检验的方法有 2 检验和基于互信息的检验方法。基 于依赖性测试的学习方法学习效率较高,而且能够获得全局最优解; 但存在以下问题:1.判断两个节点是否独立或条件独立是困难的,变 量间条件独立性检验的次数是随着变量的个数的增加指数级增长的; 2.高阶的条件独立性检验的结果不够可靠。 1993 年 Sprites 等提出的 SGS 算法是典型的以条件独立性测试确 定拓扑结构的算法。该算法从无向完全图出发,如果相节点间存在无 向分割集,则删除它们间的边;然后通过统计测试来确定剩余边的方
p( D | Bs ) score(i, pai )
i 1 n
其中 score(i, pai ) [
j 1
qi
(Leabharlann Baiduj ) (ij Nij
)
k 1
ri
( ijk Nijk ) ( ijk )
]
K2 算法伪代码:
k 2( X , , , )
输入: X {X1 , X 2 ,..., X n} ---------------------一组变量
p( D | S h )
i 1 j 1 n qi
(ij ) (ij Nij
)
k 1
ri
(ijk Nijk ) ( ijk )
二、 贝叶斯网络完整数据集下结构学习方法
贝叶斯网络建模一般有三种方法:1)依靠专家建模;2)从数据 中学习;3)从知识库中创建。在实际建模过程中常常综合运用这些 方法, 以专家知识为主导, 以数据库和知识库为辅助手段, 扬长避短,
3. 典型算法介绍:
三阶段算法:
第一阶段:Drafting,计算每对节点间的互信息,建立完整的无向图; 第二阶段:Thickening,如果节点对不是 d-分割的话,把这一点对加 入到边集中; 第三阶段:Thinning,检察边集中的每个点对,如果两个节点是 d-分 割的,则移走这条边。
K2 算法: K2 算法用贪婪搜索处理模型选择问题:先定义一种评价网络结构优 劣的评分函数,再从一个网络开始,根据事先确定的最大父节点数目 和节点次序,选择分值最高的节点作为该节点的父节点。K2 算法使 用后验概率作为评分函数:
贝叶斯网络结构学习总结
一、 贝叶斯网络结构学习的原理
从数据中学习贝叶斯网络结构就是对给定的数据集,找到一个与 数据集拟合最好的网络。 首先定义一个随机变量 S h ,表示网络结构的不确定性,并赋予先 验概率分布 p(S h ) 。然后计算后验概率分布 p(S h | D) 。根据 Bayesian 定 理有
中进行独立同分布抽样而得到的。AIC 评分的出发点是要找一个贝叶 斯网 B* ( * ,* ) ,使得 PB ( X ) 与 P(X)之间的 KL 距离最短,即
*
*
KL( P, PB* ) KL( P, PB ), B ,在一定光滑条件下做大样本近似,可得如下
结论,即 B* 的结构 * 应该满足: AIC( * | ) AIC( | ), , 其中, AIC ( | ) log P( | ,* ) d AIC 评分与 BIC 评分都是优参对数似然度加一个罚项,因此都称为罚 项似然度。MDL 也是罚项似然度。
CVL 评分,即交叉验证 它的基本思想是多次计算模型的 HVL 评分, 而每次都按照不同方式将
划分为 t 和 v ,然后计算各次所得评分的平均值,并将其作为模型
的最后评分。CVL 评分比 HVL 评分更具鲁棒性,但其计算复杂度也高 出 HVL 评分数倍。 在大样本情况下,HVL 准则,CVL 准则都与 AIC 准则等价。
在概念上寻找最优的贝叶斯网络的过程可以分为两步: 第一步寻找最 优结构 * ,第二步寻找最优参数 * 。对任一网络结构 ,定义
*
l * ( | ) sup l ( , | ) 作为网络结构的函数, l * ( | ) 称为优参对数似然
函数,最优结构 * 应该使优参对数似然函数达到最大,即
s
ijk 。通常这并非易事,因为理论上我们需要对每一个可能的结构都
提供参数先验分布,然而结构数目众多,无法一一罗列。在实际中, 人们往往规定一个等价样本量 和一个先验贝叶斯旺 Bs ,利用下式得
到 p(B | Bs ) 的超参数 ijk : ijk PB (Xi k | i j) 。
p(S h | D) p(S h , D) / p( D) p(S h ) p( D | S h ) / p( D)
其中 p( D) 是一个与结构无关的正规化常数, p(D | S h ) 是边界似然。 于是确定网络结构的后验分布只需要为每一个可能的结构计算数据 的边界似然。在无约束多项分布、参数独立、采用 Dirichlet 先验和数 据完整的前提下,数据的边界似然正好等于每一个(i,j)对的边界 似然的乘积,即
s s
BIC 评分, 即贝叶斯信息准则是在大样本前提下对边缘似然函数的一种近 似,它有明确直观的意义,而且使用方便,是实际中最常用的评分函 数。
log P( | ) log P( | , * ) d log m 2
这就是模型结构 的 BIC 评分,记为 BIC( | ) 。 BIC 评分的第一项是模型 的优参对数似然度,它度量的是结构 与 数据 的拟合程度。第二项是一个关于模型复杂度的罚项。若仅仅依 据优参似然度来选择模型,会选到最复杂的完全贝叶斯网络,导致过 度拟合。由于附加了一个模型复杂度的罚项,BIC 有效地避免了过度 拟合,直观上,基于 BIC 评分选择模型就是要选择既与数据拟合,又 比较简单的模型。