贝叶斯网络:用点表示事件的条件概率,用边表示事件依赖关系的有向无环图(DAG)

1.在贝叶斯往来中描述概率的方式是每个节点上的条件概率分布(CPD);

2.贝叶斯网络的实质是对联合概率的描述。

事件状态

可枚举值

二项分布or多项分布

连续变量

连续变量离散化后进行多项式分布

在CPD中引入连续分布,如高斯分布N(

)

以典型贝叶斯问题为例:天气影响小林与女朋友当晚是否会有电话、是否会见面;当晚见面与否会影响是否会有电话的概率;女友在建模或者电话中都有肯问小林要礼物;是否索要礼物不与天气直接产生关系,但实际通过另两个结点有间接关系。其中的CPD和DAG如下所示:

连续变量贝尔曼方程Python 连续变量贝叶斯网络_连续变量贝尔曼方程Python

事件abcd皆为可枚举值,其中每个节点的状态只有两种,于是概率采用二项分布 。假设天气情况分为晴阴雨雪四种,见面分为不见面、校内见面、校外见面,那么可能见面事件为多项式分布,CPD如下所示:

条件a(天气)

P(b=0)

P(b=1)

P(b=2)

0(晴)

0.6

0.2

0.2

1(阴)

0.2

0.3

0.5

2(雨)

0.1

0.5

0.4

3(雪)

0.3

0.7

0

假如礼物金额为连续变量,引入高斯分布:

条件b(见面)

条件c(电话)

P(d)

0

0


0

1


1

0


1

1


3.联合/边缘/条件概率换算

a.联合概率分布:P(a,b,c,...,n),其中a,b,c,...,n为系统中的所有变量;

b.边缘概率分布:边缘概率的表达方式与联合概率一样,区别是通过边缘概率查询概率时只需给出系统中的部分变量,比如:g(a,b),g(b,d,g,n),g(b)......;

c.条件概率分布:P(a,b|i=?,j=?)表示在已知某些变量(i,j)的的情况下求另一些变量(a,b)给定值的概率;

d.用联合分布求边缘分布:已知联合概率分布函数f(x,y,z),求边缘分布g(y)

             

对于离散变量,也就是

          

e.用联合概率分布求条件概率分布

类似:根据小林与女友是否有过电话,问天气如何,

           

假设有电话为1,那么P(x|y=1)就是小林与女友有过电话,问天气如何。

f.用条件概率和边缘概率求联合概率分布:P(x,y)=P(x|y)P(y)

根据链式法则:P(a,b,c,d)=P(a)P(b|a)P(c|a,b)P(d|b,c)


 变量消元:

连续变量贝尔曼方程Python 连续变量贝叶斯网络_最大似然估计_02


网络构建(三步):1.确定领域中有哪些是重要的变量以及其分布;

                                 2.确定DAG图结构;

                                 3.学习网络中每个节点CPD中的参数(即,监督学习中的参数估计)

网络参数估计:假设D为所有训练数据集,A为CPD参数

a.最大似然估计 ()

由贝叶斯公式

可得似然度为式中的P(D|A),最大似然估计就是求如下目标中A的值:                                                                            

最大似然估计完全凭数据说话,没有办法加入任何人类的已有经验。

b.最大后验估计:把优化目标由似然度函数变为了后验函数,通过人为输入先验概率P(A)得到优化目标。

优化目标:(由于无论A取值如何都不影响P(D)的值,因此后两公式等价)

 

取对数得到:

两种参数估计都可以用数学推导或梯度下降的方法求解。