机器学习概率图—贝叶斯网络和因子分解

165 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情

内容参考了斯坦福大学 Coursera 公开课《概率图模型》,分享内容并不限于课程,在原有课程内容基础加入个人理解,以及扩展的内容

在开始今天内容,我们来介绍一个完成例子。这是一个有趣的问题,首先就是一个学生是否能够拿到推荐推荐资格,学校会根据成绩来决定是否推荐,也就是说成绩是影响学生是否能够拿到推荐资格直接原因,然后成绩有受到课程难易程度和学生智力水平的影响,那么这两个因素也就是间接会影响到是否拿到推荐资格。还有一个有趣的随机变量,就是高考成绩 SAT

pgm_001.PNG

随机变量名称说明
Grade成绩
Course Difficulty课程难易程度
Student Intelligence学生智力水平
Studeng SAT学生的高考成绩
Reference Letter是否推荐

P(G,D,I,S,L)P(G,D,I,S,L)
  • P(D) | d0d^0 | d1d^1 | | --- | --- | | 0.6 |0.4 |

  • P(I) | i0i^0 | i1i^1 | | --- | --- | | 0.7 |0.3 |

  • P(G|I,D) | | d1d^1 |d0d^0 | d1d^1 | | --- | --- |--- | --- | | i0,d0i^0,d^0 |0.3 |0.4 |0.3 | | i0,d1i^0,d^1 |0.05 |0.25 |0.7 | | i1,d0i^1,d^0 |0.9 |0.08 |0.02 | | i1,d1i^1,d^1 |0.5 |0.3 |0.2 |

  • P(S|I) | | s0s^0 | s1s^1 | | --- | --- |--- | | i0i^0|0.95 |0.05 | | i1i^1|0.2 |0.8 |

P(G,D,I,S,L)=P(D)P(I)P(GI,D)P(SI)P(LG)P(G,D,I,S,L) = P(D)P(I)P(G|I,D)P(S|I)P(L|G)
P(d0,i1,g3,s1,l1)=0.6×0.3×0.02×0.8×0.01P(d^0,i^1,g^3,s^1,l^1) = 0.6 \times 0.3 \times 0.02 \times 0.8 \times 0.01

贝叶斯网络

关于贝叶斯网络定义是有向无环图(DAG) 每一个结点表示一个随机变量 X1,,XnX_1,\cdots, X_n,对于每一个随机变量 XiX_i 的 CPD P(XiParG(Xi))P(X_i|Par_G(X_i)), 贝叶斯网络表示为一个联合概率

P(X1,,Xn)=i=1P(XiParG(Xi))P(X_1,\cdots,X_n) = \prod_{i=1}P(X_i|Par_G(X_i))

那么我们就来看看这个联合概率是否符合概率分布,首先 P(X)P(X) 是否为大于 0,我们知道 P(X)P(X) 是一系列 CPD 的乘积,因为 CPD 是非负的,所以 P(X)P(X) 当然是大于 0 的。我们知道 P(X)=1\sum P(X) = 1 也就是要满足概率求和 1 的条件。

D,I,G,S,LP(D,I,G,S,L)=D,I,G,S,LP(D)P(I)P(GI,D)P(SI)P(LG)\sum_{D,I,G,S,L} P(D,I,G,S,L) = \sum_{D,I,G,S,L} P(D)P(I)P(G|I,D)P(S|I)P(L|G)
D,I,G,S,LP(D,I,G,S,L)=D,I,G,SP(D)P(I)P(GI,D)P(SI)LP(LG)\sum_{D,I,G,S,L} P(D,I,G,S,L) = \sum_{D,I,G,S} P(D)P(I)P(G|I,D)P(S|I)\sum_L P(L|G)

我们知道 CPD 是 L 是给定 G 的概率分布

D,I,G,S,LP(D,I,G,S,L)=D,I,GP(D)P(I)P(GI,D)SP(SI)\sum_{D,I,G,S,L} P(D,I,G,S,L) = \sum_{D,I,G} P(D)P(I)P(G|I,D)\sum_S P(S|I)

概率 P(X)P(X) 的因子分解是基于图 GG 分解为一个个因子连乘的形式。

P(X1,,Xn)=i=1P(XiParG(Xi))P(X_1,\cdots,X_n) = \prod_{i=1}P(X_i|Par_G(X_i))