基于评分搜索
定义
基于评分搜索的方法将BN结构学习视为组合优化 问题;
首先通过定义评分函数对BN结构空间中的不同元素与样本数据的拟合程度进行度量
然后利用搜索算法确定评分最高的网络结构,即与数据拟合最好的网络结构
BN结构学习可定义为优化模型:
O M = ( G , Ω , F ) OM=(G, \Omega, F) O M = ( G , Ω , F )
G:候选网络结构搜索空间,它定义了样本数据集D中所有变量(节点)之间可能连接关系的网络结构集合;
Ω \Omega Ω :网络变量之间需要满足的约束条件集合,最基本的约束是所有节点间的连接构成一个有向无环图;
F:评分函数,表示从搜索空间G到实数集R的一个映射,函数的极值点即为网络的最优结构.
Robinson等证明了包含n个节点可能的BN结构数目f ( n ) f(n) f ( n ) :
f ( n ) = ∑ i = 1 n n ! i ! ( n − i ) ! 2 i ( n − i ) f ( n − i ) f(n)=\sum^n_{i=1}\frac{n!}{i!(n-i)!}2^{i(n-i)}f(n-i) f ( n ) = i = 1 ∑ n i ! ( n − i ) ! n ! 2 i ( n − i ) f ( n − i )
可见,随着变量数目的增多,搜索空间的维数呈 指数级 增长,因此,评分函数和搜索策略是影响评分搜索算法的主要因素.
评分函数
在BN结构学习的框架中,结构G 和参数θ G \theta_G θ G 被视为随机变量;
假设数据集D = ( d 1 , d 2 , . . . , d m ) D=(d_1,d_2, . . ., d_m) D = ( d 1 , d 2 , . . . , d m ) 是关于n
个变量{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 的样本;
G 的可能取值包括所有以{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 为节点的有向无环图。
给定结构G ,变量θ G \theta_G θ G 的可能取值是与G 对应的参数值。
结构先验分布:P ( G ) P(G) P ( G )
结构确定之后, θ G \theta_G θ G 的参数先验分布:P ( θ G ) P(\theta_G) P ( θ G )
基于贝叶斯统计的评分
假设数据集D 是关于样本变量{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 完整独立同分布 数据。
贝叶斯评分的主要思想是给定先验知识和样本数据条件下,选择一个后验概率值最大 的网络结构,即:
1-1
G ∗ = arg m a x G P ( G ∣ D ) G^* = \arg max_GP(G|D) G ∗ = arg m a x G P ( G ∣ D )
重点是P ( G ∣ D ) P(G|D) P ( G ∣ D ) ,又根据贝叶斯定理:
1-2
P ( G ∣ D ) = P ( D ∣ G ) P ( G ) P ( D ) P(G|D)=\frac{P(D|G)P(G)}{P(D)} P ( G ∣ D ) = P ( D ) P ( D ∣ G ) P ( G )
P ( G , D ) = P ( G ∣ D ) P ( D ) = P ( D ∣ G ) P ( G ) P(G,D)= P(G|D)P(D)=P(D|G)P(G) P ( G , D ) = P ( G ∣ D ) P ( D ) = P ( D ∣ G ) P ( G )
P ( D ) P(D) P ( D ) 已知而且不依赖P ( G ) P(G) P ( G ) ,所以P ( G ∣ D ) P(G|D) P ( G ∣ D ) 可转换为:
1-3
log P ( G , D ) = log P ( D ∣ G ) + log P ( G ) \log P(G,D) = \log P(D|G) + \log P(G) log P ( G , D ) = log P ( D ∣ G ) + log P ( G )
则:
1-4
G ∗ = arg log P ( D ∣ G ) + log P ( G ) G^* = \arg \log P(D|G)+\log P(G) G ∗ = arg log P ( D ∣ G ) + log P ( G )
P ( G ) P(G) P ( G ) 是结构先验分布,一般会假设它是某种分布,ex:均匀分布
之后展开 P ( D ∣ G ) P(D|G) P ( D ∣ G ) (称为边缘似然函数)。
1-5
P ( D ∣ G ) = ∫ P ( D ∣ G , θ G ) p ( θ G ∣ G ) d θ G P(D|G)=\int P(D|G,\theta_G)p(\theta_G|G) d \theta_G P ( D ∣ G ) = ∫ P ( D ∣ G , θ G ) p ( θ G ∣ G ) d θ G
K2评分
假设数据集D是关于样本变量{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 完整独立同分布数据。G是关于变量集{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 的BN结构,并且p ( θ G ∣ G ) p(\theta_G|G) p ( θ G ∣ G ) 服从均匀分布。
可知如下K2
评分:
1-6
F K 2 ( G ∣ D ) = log P ( G ) + ∑ i = 1 n ∑ j = 1 q i { log ( r i − 1 ) ! ( m i j ∗ + r i − 1 ) ! } + ∑ k = 1 r i log ( m i j k ! ) F_{K2}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{(r_i-1)!}{(m_{ij*}+r_i-1)!}\}+\sum_{k=1}^{r_i} \log (m_{ijk}!) F K 2 ( G ∣ D ) = log P ( G ) + i = 1 ∑ n j = 1 ∑ q i { log ( m i j ∗ + r i − 1 ) ! ( r i − 1 ) ! } + k = 1 ∑ r i log ( m i j k ! )
q i : q_i: q i : ???
r i : r_i: r i : ???
m i j k : m_{ijk}: m i j k : 变量X i X_i X i 取第k
个值同时p a ( X i ) pa(X_i) p a ( X i ) 取第j
个值的样本数目
BD(Bayesian Dirichlet)评分
假设数据集D是关于样本变量{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 完整独立同分布数据。G是关于变量集{ X 1 , X 2 , . . . , X n } \{X_1, X_2,..., X_n\} { X 1 , X 2 , . . . , X n } 的BN结构,并且p ( θ G ∣ G ) p(\theta_G|G) p ( θ G ∣ G ) 服从Dirichlet
分布。
p ( θ G ∣ G ) ∝ ∏ i = 1 n ∏ j = 1 q i ∏ k = 1 r i θ i j k α i j k − 1 p(\theta_G|G) \propto \prod^n_{i=1} \prod^{q_i}_{j=1} \prod^{r_i}_{k=1}\theta_{ijk}^{\alpha_{ijk}-1} p ( θ G ∣ G ) ∝ i = 1 ∏ n j = 1 ∏ q i k = 1 ∏ r i θ i j k α i j k − 1
可知如下BD
评分:
F B D ( G ∣ D ) = log P ( G ) + ∑ i = 1 n ∑ j = 1 q i { log Γ ( α i j ∗ ) Γ ( α i j ∗ + m i j ∗ ) } + ∑ k = 1 r i log Γ ( α i j k + m i j k ) Γ ( α i j ∗ ) F_{BD}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{\Gamma(\alpha_{ij*})}{\Gamma(\alpha_{ij*}+m_{ij*})}\}+\sum_{k=1}^{r_i} \log \frac{\Gamma(\alpha_{ijk}+m_{ijk})}{\Gamma(\alpha_{ij*})} F B D ( G ∣ D ) = log P ( G ) + i = 1 ∑ n j = 1 ∑ q i { log Γ ( α i j ∗ + m i j ∗ ) Γ ( α i j ∗ ) } + k = 1 ∑ r i log Γ ( α i j ∗ ) Γ ( α i j k + m i j k )
α i j k : \alpha_{ijk}: α i j k : Dirichlet
分布中的超参数取值
α i j ∗ = ∑ k = 1 r i α i j k \alpha_{ij*} = \sum_{k=1}^{r_i}\alpha_{ijk} α i j ∗ = ∑ k = 1 r i α i j k
m i j k : m_{ijk}: m i j k : 变量X i X_i X i 取第k
个值同时p a ( X i ) pa(X_i) p a ( X i ) 取第j
个值的样本数目
p a ( X i ) pa(X_i) p a ( X i ) :???
所有的超参数值α i j k = 1 \alpha_{ijk}=1 α i j k = 1 时,BD
评分退化为K2
评分。
BDeu(Bayesian Dirichlet eu)评分
BD公式中的超参数 α i j k = α P ( X i = k , p a ( X i ) = j ∣ G ) \alpha_{ijk}=\alpha P(X_i=k,pa(X_i)=j | G) α i j k = α P ( X i = k , p a ( X i ) = j ∣ G ) 时候,P ( . ∣ G ) P(.|G) P ( . ∣ G ) 表示网络G的先验分布,α \alpha α 表示先验样本等价量。
P ( X i = k , p a ( X i ) = j ∣ G = 1 r i q i P(X_i=k,pa(X_i)=j | G = \frac{1}{r_iq_i} P ( X i = k , p a ( X i ) = j ∣ G = r i q i 1 ,即结构先验信息服从均匀分布。
可知如下BDeu
评分:
F B D e u ( G ∣ D ) = log P ( G ) + ∑ i = 1 n ∑ j = 1 q i { log Γ ( α q i ) Γ ( m i j ∗ + α q i ) } + ∑ k = 1 r i log Γ ( m i j k + α r i q i ) Γ ( α r i q i ) F_{BDeu}(G|D)=\log P(G) + \sum_{i=1}^n\sum_{j=1}^{q_i}\{\log\frac{\Gamma(\frac{\alpha}{q_i})}{\Gamma(m_{ij*}+\frac{\alpha}{q_i})}\}+\sum_{k=1}^{r_i} \log \frac{\Gamma(m_{ijk}+\frac{\alpha}{r_iq_i})}{\Gamma(\frac{\alpha}{r_iq_i})} F B D e u ( G ∣ D ) = log P ( G ) + i = 1 ∑ n j = 1 ∑ q i { log Γ ( m i j ∗ + q i α ) Γ ( q i α ) } + k = 1 ∑ r i log Γ ( r i q i α ) Γ ( m i j k + r i q i α )
基于信息理论的评分
基于信息理论的评分函数主要是利用编码理论和信息论中的最小描述长度(Minimum Description Length, MDL)原理来实现的.其基本思想源自对数据的存储。
假设D是一组给定的实例数据,如果要对其进行保存,为了节省存储空间,一般采用某种模型对其进行编码压缩,然后再保存压缩后的数据;另外,为了在需要的时候可以完全恢复这些实例数据,要求对所使用的模型进行保存;
因此,需要保存的数据长度=压缩后的数据长度+模型的描述长度,该长度称为总的描述长度。
MDL原理就是要求选择总描述长度最小 的模型。按照MDL原理,BN结构学习就是要找到使得网络的描述长度和样本的编码长度之和最小的图模型。
这意味着MDL评分准则趋向于寻找一个结构较简单的网络,实现网络精度 与复杂度 之间的均衡。一般利用参数个数作为网络结构复杂度的惩罚函数 :
2-1:
C ( G ) = 1 2 log m ∑ i = 1 n ( r i − 1 ) q i C(G) = \frac{1}{2}\log m\sum^n_{i=1}(r_i-1)q_i C ( G ) = 2 1 log m i = 1 ∑ n ( r i − 1 ) q i
m:数据集D中的样本总量;
∑ i = 1 n ( r i − 1 ) q i \sum^n_{i=1}(r_i-1)q_i ∑ i = 1 n ( r i − 1 ) q i :网络中包含的参数总量
采用海明码 表示压缩后的数据长度,就是关于数据D和模型 的对数似然:
2-2:
L L D ( G ) = ∑ j = 1 n ∑ j = 1 q i ∑ k = 1 r i m i j k log ( m i j k m i j ∗ ) LL_D(G)=\sum^n_{j=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}}) L L D ( G ) = j = 1 ∑ n j = 1 ∑ q i k = 1 ∑ r i m i j k log ( m i j ∗ m i j k )
MDL评分函数
则由2-1、2-2可知,得到相应的MDL评分函数
2-3
F M D L ( G ∣ D ) = L L D ( G ) − C ( G ) F_{MDL}(G|D)=LL_D(G)-C(G) F M D L ( G ∣ D ) = L L D ( G ) − C ( G )
2-4
F M D L ( G ∣ D ) = ∑ i = 1 n ∑ j = 1 q i ∑ k = 1 r i m i j k log ( m i j k m i j ∗ ) − 1 2 log m ∑ i = 1 n ( r i − 1 ) q i F_{MDL}(G|D)=\sum^n_{i=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})- \frac{1}{2}\log m\sum^n_{i=1}(r_i-1)q_i F M D L ( G ∣ D ) = i = 1 ∑ n j = 1 ∑ q i k = 1 ∑ r i m i j k log ( m i j ∗ m i j k ) − 2 1 log m i = 1 ∑ n ( r i − 1 ) q i
m:数据集D中的样本总量;
∑ i = 1 n ( r i − 1 ) q i \sum^n_{i=1}(r_i-1)q_i ∑ i = 1 n ( r i − 1 ) q i :网络中包含的参数总量
AIC评分函数
MDL评分函数不依赖 于先验概率;对给定的充分大的独立样本而言,具有最大MDL分值的网络可以任意接近于抽样分布;当实例数据D服从多项分布时,MDL评分函数等于BIC 评分函数.因此对公式(2-4)做进一步的简化,得到AIC 评分函数:
2-5
F A I C ( G ∣ D ) = ∑ i = 1 n ∑ j = 1 q i ∑ k = 1 r i m i j k log ( m i j k m i j ∗ ) − ∑ i = 1 n ( r i − 1 ) q i F_{AIC}(G|D)=\sum^n_{i=1}\sum^{q_i}_{j=1}\sum^{r_i}_{k=1}m_{ijk}\log(\frac{m_{ijk}}{m_{ij*}})- \sum^n_{i=1}(r_i-1)q_i F A I C ( G ∣ D ) = i = 1 ∑ n j = 1 ∑ q i k = 1 ∑ r i m i j k log ( m i j ∗ m i j k ) − i = 1 ∑ n ( r i − 1 ) q i
MIT评分函数
MDL 评分函数中,对网络的惩罚项用整个网络包含的参数以及样本数据量来表示,Campos结合贝叶斯网络的可分解性,用网络的局部结构复杂度 作为惩罚项,提出一种基于互信息 和卡方分布 的 MIT ( Mutual Information Tests) 评分函数.
2-6
F M I T ( G ∣ D ) = ∑ i = 1 , P a ( X − i ) ! = ∅ n ( 2 m M I D ( X i , P a ( X i ) ) − max σ i ∑ j = 1 S i χ α , l i σ i ( j ) ) F_{MIT}(G|D)=\sum^n_{i=1,Pa(X-i)!=\empty}(2mMI_D(X_i,Pa(X_i))-\max_{\sigma_i }\sum^{S_i}_{j=1}\chi_{\alpha,l_{i\sigma_i(j)}}) F M I T ( G ∣ D ) = i = 1 , P a ( X − i ) ! = ∅ ∑ n ( 2 m M I D ( X i , P a ( X i ) ) − σ i max j = 1 ∑ S i χ α , l i σ i ( j ) )
M I D ( X i , P a ( X i ) ) MI_D(X_i,Pa(X_i)) M I D ( X i , P a ( X i ) ) :X i X_i X i 与其父变量之间互信息
S i S_i S i :X i X_i X i 父节点的个数
χ α , l i σ i ( j ) \chi_{\alpha,l_{i\sigma_i(j)}} χ α , l i σ i ( j ) :表示置信度为α \alpha α ,自由度为l i σ i ( j ) l_{i\sigma_i(j)} l i σ i ( j ) 的卡方分布值。
搜索方法
求出每个变量评分函数最大的父变量集 。
K2算法
爬山算法
GES算法
基于进化计算的方法
K2算法
K2算法使用贪心搜索去获取最大值。首先假设随机变量是有顺序的,如果Xi在Xj之前,那么不能存在从Xj到Xi的边。同时假设每个变量最多的父变量个数为u。每次挑选使评分函数最大的父变量放入集合,当无法使评分函数增大时,停止循环,具体算法如下,其中Pred(Xi)表示顺序在Xi之前的变量。
贪婪搜索
CH评分衡量结构优劣性
利用结点序 ρ \rho ρ 以及正整数 μ \mu μ 来限制搜索空间的大小
结点序 ρ \rho ρ 怎么确定?
爬山(hillclimbing)算法
爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优解。爬山算法实现很简单,其主要缺点是会陷入局部最优解,而不一定能搜索到全局最优解。假设C点为当前解,爬山算法搜索到A点这个局部最优解就会停止搜索,因为在A点无论向那个方向小幅度移动都不能得到更优的解。
局部操作(加边,减边,删边),评分高低作为是否选择该操作的标准。
通过贪婪 选择来判断是否对模型结构进行更新。
Procedure HillClimbing( ) :
old = getInitial( )
while ( the stopping condition is not reached) :
for 加边,减边,删边 操作后的 newG:
new= localSearch( N( x) ) ;
if ( old <= new)
old = new
else
return old
end
爬山法
基于约束|依赖统计
待填充
参考
贝叶斯网络结构学习(知乎)
2013 贝叶斯网络结构学习与推理研究 朱明敏
2015 贝叶斯网络结构学习综述 李硕豪
2017 贝叶斯网络结构学习与应用研究 曹杰