白板推导系列 - 概率图模型

概率图模型

感谢B站up主@shuhuai008!
本文是学习他发布在b站上的概率图模型视频的一些笔记。
地址:https://www.bilibili.com/video/av33545406

P1 背景介绍

可以从两个角度来看概率图模型,即一个是概率,一个是图。

要预测其实概率就足够了,这个图,其实是一个工具。我们在数据结构中也有图,但都是比较抽象的;这里的图,其实是把原来数据结构中的图,赋予了概率,把概率嵌进去,使得整个模型更加清晰,也可以进一步构建更高级的模型。
白板推导系列 - 概率图模型

我们先来看看概率这一块。
概率在建模过程中,其实是对现实问题的一个抽象。我们关注的问题,我们的数据往往是多维的,因此我们在用随机变量表示问题的时候,就会假设这是一个高维的随机变量。

也就是说,我们概率模型关注的对象其实就是高维的随机变量,或者说是它的概率分布。我们对这个高维随机变量可以做很多事情,比如求边缘概率,条件概率

在进行概率计算的过程中,有两个很重要基本的法则——加法法则乘法法则

  • 加法法则 Sum Rule (求和就其实是求积分)
    P(x1)=P(x1,x2)dx2P(x_1) =P(x_1,x_2)dx_2
  • 乘法法则 Product Rule
    P(x1,x2)=p(x1)p(x2x1)=p(x2)p(x1x2)P(x_1,x_2)=p(x_1)p(x_2|x_1)=p(x_2)p(x_1|x_2)

引申有链式法则,其实就是对上述两个法则的泛化。

  • 链式法则 Chain Rule
    P(x1,x2,...,xp)=i=1pP(xix1,x2,...,xi1)P(x_1,x_2,...,x_p)=\prod_{i=1}^p{P(x_i|x_1,x_2,...,x_{i-1})}
  • 贝叶斯法则 Bayesian Rule
    p(x2x1)=P(x1,x2)P(x1)=P(x1,x2)P(x1,x2)dx2=p(x2)p(x1x2)p(x2)p(x1x2)dx2p(x_2|x_1)=\frac{P(x_1,x_2)}{P(x_1)}=\frac{P(x_1,x_2)}{\int P(x_1,x_2)dx_2}=\frac{p(x_2)p(x_1|x_2)}{\int p(x_2)p(x_1|x_2)dx_2}

但高维随机变量的计算有自己的困境:维度高,计算复杂。比如P(x1,x2,..,xp)P(x_1,x_2,..,x_p)计算量太大。那么我们就要争取简化运算,简化模型

怎么简化?
第一步,我们可以假设每个维度之间相互独立
这样,我们得到P(x1,x2,..,xp)=i=1pP(xi)P(x_1,x_2,..,x_p)=\prod_{i=1}^p{P(x_i)}
由此,Chain Rule可以略去了。

一个典型的例子,就是朴素贝叶斯(做分类问题),它其实就是假设维度之间是相互独立的。
Naive Bayes: P(xy)=i=1pP(xiy)P(x|y)=\prod_{i=1}^p{P(x_i|y)}

但这种相互独立性假设是很强的,我们可以适当放宽点。那么,接下来——

第二步马尔可夫性质(Markov Property)。这里只介绍一阶马尔可夫性质。即在给定当前时刻状态的情况下,将来与过去是相互独立的。用数学公式表示,即为:
xjxi+1xi,j<ix_j \perp x_{i+1}|x_i,j<i。对于一列数x1,x2,...,xpx_1,x_2,...,x_p,这样的假设下x2x_2就只与x1x_1有关。

典型的例子有HMM,有齐次马尔可夫假设。以及观测独立假设。都是为了简化高维下的运算。

但这样的假设,其实还是太简单太随意了。所以我们可以引申出条件独立性假设。它其实是马氏性质的一个推广。数学表示可以写作:
xAxBxCx_A \perp x_B |x_C
xA,xB,xCx_A, x_B,x_C是变量集合,且不相交。至于集合中到底有几个,就无所谓的。

有了条件独立性,我们可以大大简化联合概率计算的一个分解。所以条件独立性,是我们概率模型中一个核心的概念。如果要把概率引申到图的概念,无论是有向图还是无向图,都要表现出条件独立性;也就是说,条件独立性的概念要在图的形式上有所映射。

白板推导系列 - 概率图模型

以上就是我们对高维随机变量和条件独立性的介绍。

白板推导系列 - 概率图模型

有向图又叫贝叶斯网络,无向图又叫马尔可夫网路,我们往往假设是离散的随机变量。高斯图是从另一个维度分类的,即连续的随机变量,且服从高斯。由此,高斯也可以进一步分为高斯有向(Gaussian BN),和高斯无向(Gaussian MN)。

推断——给定已知数据的情况下,求一些概率分布。

学习——概率图中分为参数学习(把参数学出来)和结构学习(学习出更好的图的结构)。