现实生活中的很多问题都是概率问题,由多个变量(因素,要素)相互影响。而想要用贝叶斯网络对其建模,我们需要考虑三个问题:1. 如何定义节点;2.如何定义节点之间的概率依赖关系;3. 如何表示联合概率分布。
假设我们现在有N 量,每个变量有K KK个取值,则可建模为如下形式:
若使用枚举法,参数个数为:K N
假设变量之间相互独立,则联合概率分布大大简化为如下形式:
贝叶斯网络
贝叶斯网络是一个有向无圈图(Directed Acyclic Graph, DAG
)(有向边并不会形成一个圈),由代表变量节点及连接 这些节点有向边构成。节点代表随机变量,节点间的有向边代表了节点间的互相关系(由父节点指向其子节点),用条件概率表达变量间依赖关系,没有父节点的用先验概率进行信息表达。
我们以一个例子来对其进行实例化建模:
实际生活中的一个例子:对一个学生能否拿到老师的推荐信这一问题进行建模研究。假设与该问题相关的变量有以下五个:试题难度、学生智力、考试成绩、高考成绩、是否 得到老师推荐信。那么其节点可定义为如下形式:
可以看到Grade
有两个父节点,SAT
有一个父节点(有父子节点的表示为条件概率分布的形式)。所以其联合概率分布可表示为如下形式:
那写成这这种联合概率分布的情况有什么好处呢?我们可以看一下其参数形式:
- 枚举法:
2 * 2 * 3 * 2 * 2 - 1 = 47
个参数(减去1的原因是联合概率分布求和需要等于1)。 - 结构化分解:
1 + 1 + 8 + 3 + 2 = 15
个参数 (每一行的参数求和需要等于1)。
更一般地,假设n nn个二元随机变量的联合概率分布,表示该分布需要 2 n − 1 个参数。如果用贝叶斯网络建模,假设每个节点最多有 k kk 个父节点,所需要 的参数最多为 n ∗ 2 k,一般每个变量局部依赖于少数变量。
算一个实际的例子:
那为什么联合概率为什么可以表示为局部条件 概率表的乘积?
- 随机变量 X ,Y 相互独立, 则会满足以下三个等式:
或者说上面三个等式中的任意一个等式成立,则随机变量X Y 是相互独立的。下图是其举例:
- 随机变量 X ,Y 在给定 Z 条件下条件独立, 如果满足:
我们可以将下图中具体的数值代进去,其将会成立:
概率影响的流动性
为了更好地去介绍贝叶斯网里面的条件独立性,我们引入新的概念,概率影响的流动性。概率影响的流动性说地是:在一定的观测条件下,变量间的取值概率是否会相互影响。所谓的观测条件是这个系统是否有观测变量,或者观测变量的取值是否确定。当变量取值未知,通常根据观测变量取值,对隐变量的取值概率进行推理。
比如:判断 W WW 是否为观测变量,X XX与Y YY的概率影响的流动性。
这里要注意第3
和第4
中情况,第3种情况:当W WW未知的时候你才可以对X XX和Y YY进行推断。第4种情况:当W WW已知的时候,X XX和Y YY才可以进行概率之间的推断。
概率影响的流动性
在贝叶斯网络里面有一个概率独立性定理:父节点已知时,该节点与其所有非后代的节点(non-descendants
)条件独立。
如上图所示,当SAT
的父节点Intelligence
已知时,Difficulty
、Grade
、Letter
都与SAT
条件独立。
贝叶斯网链式法则
依据上述定理我们可以得到贝叶斯网络因子分解的形式:
贝叶斯网络推理的直观理解
因果推断(Causal Reasoning
):顺着箭头方向推断。得到贝叶斯网络之后我们就可以进行推理计算。这种因果推理是顺着箭头方向进行的推理。
贝叶斯网络的第二种推断叫做证据推断(Evidential Reasoning
):是逆着箭头推断的。
交叉因果推断(Intercausal Reasoning
):双向箭头推断。
我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!