代码改变世界

【PGM】factor graph,因子图,势函数potential function,Template models

2013-06-06 16:26  Loull  阅读(14064)  评论(0编辑  收藏  举报

factor(a function/table)是对于variables(the scope of the factor)的某种combination的fitness。在BN中factor就是conditional probability distribution(CPD);但factor并不总对应着某种概率(当然也不一定取0~1)比如说在MRF中和数据库table的操作类 似,factor上的基本操作有factor product ,factor marginalization & factor reduction

实际中最常用的模型大概是含有shared structure和shared parameters的模型,比如说NLP里面的sequence model,举一个做Named entity recognition的例子,联系着latent变量的参数(type of entity),是independent of the place and the sequence的(假设position in the sequence与参数无关),这样的好处是:

  • reuse of parameters
  • allow us to apply the same model to sequences of varying length

Template models are languages that specify how variables inherit dependency model from template(representation that allows us to solve multiple problems using the same exact model)

==============================================

Online Bayesian Probit Regression介绍之Factor Graph

 

Factor Graph 是概率图的一种,概率图有很多种,最常见的就是Bayesian Network (贝叶斯网络)和Markov Random Fields(马尔可夫随机场)。在概率图中,求某个变量的边缘分布是常见的问题。这问题有很多求解方法,其中之一就是可以把Bayesian Network和Markov Random Fields 转换成Facor Graph,然后用sum-product算法求解

基于Factor Graph可以用sum-product算法可以高效的求各个变量的边缘分布

sum-product算法,也叫belief propagation,有两种消息,一种是变量(Variable)到函数(Function)的消息(就是方块到圆的消息):m:x→f,另外一种是函数(Function)到变量(Variable)的消息:m:f←xmfx

 

===========================================

 

关于factor graph

所谓factor graph(因子图)就是对函数因子分解的表示图,一般内含两种节点,变量节点函数节点。我们知道,一个全局函数能够分解为多个局部函数的积,因式分解就行了这些局部函数和对应的变量就能体现在因子图上。比如,我现在有一个全局函数,其因子分解方程是

那么我们将其写成方便表示的

其对应的factor graph如下:

 

图等价于:

fg2

在因子图中,所有顶点,要不然就是变量节点不然就是函数节点,边线表示他们之间的函数关系。在讲解朴素贝叶斯和马尔可夫的时候,我们变线上标注的符 号,也就是Psi函数表示符号,就是表示我们模型中x和y的联系函数。Psi函数在不同的环境下有着不同的含义,因此解释这种东西总是比较棘手的。在动态模型里面,或者任何其他的图概率模型,都是可以用因子图表示的,而Psi在这里,表征的通常都是概率或者条件概率。 因子图和Psi函数表示法,在machine learning的paper中是比较常用的。

势函数解释

注:应一些朋友要求把势函数再讲一下。我们说像上图这种链式CRF的情况,可以把势函数理解为联合概率密度的归一化分解因子,势函数的作用域都是图的一个最大分团(Maxima clique)。 每一个学过图论的朋友都应该听说过clique这个概念,对于给定图G=(V,E)。其中,V={1,…,n}是图G的顶点集,E是图G的边集。图G的团 就是一个两两之间有边的顶点集合。如果一个团不被其他任一团所包含,即它不是其他任一团的真子集,则称该团为图G的极大团(maximal clique)。顶点最多的极大团,称之为图G的最大团(maximum clique)。请参见WIKI解释。实际上,理论上讲,如果不是链式CRF,那么势函数表示的就是一个图中的每一个团,而不是最大团。

学术化一点讲,势函数是一个表示其对应的clique状态的非负实值函数,表征的是该clique的状态。举个例子,对于马尔可夫网络来说,其联合概率分布可以看成

这里的x(k)就表示第k个clique的状态,或者说是出现在这个clique之中的变量的状态。

对于一个图中的每一个clique来讲,它有一个状态,用势函数表示,状态则是由多个feature的加权和构成,因为一个clique是包含多个 节点的,每个节点,其对应的随机变量,都会对应一个feature。文章后面就会提到,我们分析时候选用最简单的二元模型来当作每一点的feature。

 

对,这就是隐马尔可夫模型的因子图。

 

================================================