> 文章列表 > 概率图降低表示需要的参数指的是什么?(贝叶斯网络) 结构化概率模型

概率图降低表示需要的参数指的是什么?(贝叶斯网络) 结构化概率模型

概率图降低表示需要的参数指的是什么?(贝叶斯网络) 结构化概率模型

深度学习中经常要对概率密度建模。对于多维度随机变量来说,这有些困难。概率化结构(既图模型)是处理这个问题的手段之一。这引出了两个问题。为什么建模困难?图模型怎样解决了这个困难?

关于这个问题,花书给出了回答。关于图模型解释主要是围绕展开可以降低参数量展开。很多博客也对此进行了回答,但我对那些回答并不满意。这些博客多是摘取了书中的几句话,也不说清楚参数多在哪里。在我看来,发这样的笔记,不如保存本地不要发布。

结构化数据

很多随机变量之间是有相互关系的,比如图片生成。相邻的两个像素之间关联很大。对于一张3232的黑白图片,我们想要表示概率密度函数,就需要表示3232*2种情况,也就是 32 ∗ 32 ∗ 2 个 32*32*2个 32322参数。也就是每一个情况的概率值,都用一个参数表示。我们知道,所有情况概率和为1,所以知道 32 ∗ 32 ∗ 2 − 1 个 32*32*2-1个 323221参数即可。这时候如果考虑了随机变量之间的关联性是怎样的,便可以减少表示所用的参数,简化问题。

贝叶斯网络如何减少参数?

拿我自己博客的例子:

  • 谈到毕业生的薪水时,我们很感兴趣的两个随机变量是 X 1 X_{1} X1为哪个学校毕业, X 2 X_{2} X2为薪水多少。在这个随机试验里, P ( X 2 = 高薪 ∣ X 1 = 清华大学 ) > P ( X 2 = 高薪 ∣ X 1 = 10422 ) P(X_{2}=高薪|X_{1}=清华大学)>P(X_{2}=高薪|X_{1}=10422) P(X2=高薪X1=清华大学)>P(X2=高薪X1=10422)
  • 对于身高,以父母身高为 X 1 和 X 2 X_{1}和X_{2} X1X2,孩子身高为 X 3 X_{3} X3,成长省份为 X 4 X_{4} X4,苹果手机今年的发布价格为 X 5 X_{5} X5,苹果手机的销量为 X 6 X_{6} X6。在这个随机试验里, P ( X 1 = 1.7 , X 2 = 1.7 , X 3 = 1.7 , X 4 = 湖南 , X 5 = 9 k ) = P ( X 1 = 1.7 , X 2 = 1.7 , X 3 = 1.7 , X 4 = 湖南 ) P(X_{1}=1.7,X_{2}=1.7,X_{3}=1.7,X_{4}=湖南,X_{5}=9k)=P(X_{1}=1.7,X_{2}=1.7,X_{3}=1.7,X_{4}=湖南) P(X1=1.7,X2=1.7,X3=1.7,X4=湖南,X5=9k)=P(X1=1.7,X2=1.7,X3=1.7,X4=湖南)。很明显苹果手机的价格和身高这几个随机变量无关。

随机变量之间存在着复杂的关系。从上面的例子看出,我们研究的部分随机变量存在关联,有些不存在关联。直接求解联合概率分布显然是非常复杂的。当我们知道各个随机变量之间的依赖关系时,便可以通过概率图模型降低求解联合分布的难度。随机变量间是有向、无环关系的时候,这种概率图结构就是贝叶斯网络。(无向时为马尔可夫随机场,另一种概率图)

对一个学生能否拿到的薪水进行建模。假设相关的随机变量有5个 X 1 X_{1} X1~ X 5 X_{5} X5分别是
高考成绩、学校招生人数、就读大学、大学成绩、薪水。
我们关心的是随机变量间的关系,直接用一张图表示出来

概率图降低表示需要的参数指的是什么?(贝叶斯网络) 结构化概率模型

显然从图中可以看出各个变量的依赖关系。这张图体现了2个要素:有向、无环。距离一个完整的贝叶斯网络只差一部,那便是求出多维随机变量的分布。
要求分别,那先明确各个变量的取值(或者说给图的节点定义):

  • 高考成绩 X 1 X_{1} X1高分、低分
  • 招生人数 X 2 X_{2} X2:多、中、少
  • 入读大学 X 3 X_{3} X3:清华大学、北京城市学院
  • 大学成绩 X 4 X_{4} X4:高分、普通、低分
  • 薪水 X 5 X_{5} X5:高薪、低薪

问题介绍完了。如果直接建模需要多少参数?

2 ∗ 3 ∗ 2 ∗ 3 ∗ 2 = 72 2*3*2*3*2=72 23232=72
也就是说我们需要表示出:

P ( X 1 = 高分 , X 2 = 多 , X 3 = 清华大学 , X 4 = 高分 , X 5 = 高薪 ) = θ 1 P(X_{1}=高分,X_{2}=多,X_{3}=清华大学,X_{4}=高分,X_{5}=高薪)=\\theta_{1} P(X1=高分,X2=,X3=清华大学,X4=高分,X5=高薪)=θ1
P ( X 1 = 低分 , X 2 = 多 , X 3 = 清华大学 , X 4 = 高分 , X 5 = 高薪 ) = θ 2 P(X_{1}=低分,X_{2}=多,X_{3}=清华大学,X_{4}=高分,X_{5}=高薪)=\\theta_{2} P(X1=低分,X2=,X3=清华大学,X4=高分,X5=高薪)=θ2
P ( X 1 = 高分 , X 2 = 中 , X 3 = 清华大学 , X 4 = 高分 , X 5 = 高薪 ) = θ 3 P(X_{1}=高分,X_{2}=中,X_{3}=清华大学,X_{4}=高分,X_{5}=高薪)=\\theta_{3} P(X1=高分,X2=,X3=清华大学,X4=高分,X5=高薪)=θ3
. . . ... ...
一直遍历所有情况。右边的 θ \\theta θ便是这种模型表示下的参数。

如果用了贝叶斯网络,那么概率密度可以表示成如下的形式:

P ( X 1 , X 2 , X 3 , X 4 , X 5 ) = P ( X 1 ) P ( X 2 ) P ( X 3 ∣ X 1 , X 2 ) P ( X 4 ) P ( X 5 ∣ X 3 , X 4 ) P(X_{1},X_{2},X_{3},X_{4},X_{5})=P(X_{1})P(X_{2})P(X_{3}|X_{1},X_{2})P(X_{4})P(X_{5}|X_{3},X_{4}) P(X1,X2,X3,X4,X5)=P(X1)P(X2)P(X3X1,X2)P(X4)P(X5X3,X4)

这意味着:1.我们只需要分别表示出各项,再通过计算,得出联合概率密度。
2.每个单独的一项,又可以用概率合为1的规定。
这两条极大的减少了我们需要表示的情况。

P ( X 1 = 高分 ) = θ 1 P(X_{1}=高分)=\\theta_{1} P(X1=高分)=θ1
P ( X 1 = 低分 ) = 1 − θ 1 P(X_{1}=低分)=1-\\theta_{1} P(X1=低分)=1θ1

P ( X 2 = 多 ) = θ 2 P(X_{2}=多)=\\theta_{2} P(X2=)=θ2
P ( X 2 = 中 ) = θ 3 P(X_{2}=中)=\\theta_{3} P(X2=)=θ3
P ( X 3 = 少 ) = 1 − θ 2 − θ 3 P(X_{3}=少)=1-\\theta_{2}-\\theta_{3} P(X3=)=1θ2θ3

X 1 需要 1 个, X 2 需要 1 个, X 3 需要 4 个 , X 4 需要 3 个 , X 5 需要 6 个。总共是 15 个 X_{1}需要1个,X_{2}需要1个,X_{3}需要4个,X_{4}需要3个,X_{5}需要6个。总共是15个 X1需要1个,X2需要1个,X3需要4,X4需要3,X5需要6个。总共是15
可以看出,这样的做法确实降低了模型的参数量。通过这样的方式,我们依然可以得到所有情况,也就是72种情况各自对应的概率。先计算出各个分项的参数,随后通过乘积的方式计算出那个想要表示的联合概率。