我不明白为什么将贝叶斯网络转换为因子图有利于贝叶斯推理?
我的问题是:
- 在贝叶斯推理中使用因子图有什么好处?
- 如果我们不使用它会发生什么?
任何具体的例子将不胜感激!
我不明白为什么将贝叶斯网络转换为因子图有利于贝叶斯推理?
我的问题是:
任何具体的例子将不胜感激!
我将尝试回答我自己的问题。
因子图的一个非常重要的概念是message,可以理解为如果消息从 A 传递到 B,则 A 告诉 B 一些事情。
在概率模型上下文中,从因子到变量的消息可以表示为,可以理解为知道一些事情(在这种情况下是概率分布)并告诉。
在“因子”上下文中,要知道某个变量的概率分布,需要从其相邻因子中准备好所有消息,然后汇总所有消息以得出分布。
例如,在下图中,边是变量,节点是由边连接的因子。
要知道,我们需要知道和并将它们汇总在一起。
那么如何知道这两条消息呢?例如,。可以看作是对和两条消息进行汇总后的消息。并且本质上是,可以从其他一些消息中计算出来。
这是消息的递归结构,消息可以通过 messages 来定义。
递归是一件好事,一种是为了更好地理解,一种是为了更容易实现计算机程序。
因素的好处是:
根据定义,贝叶斯网络是随机变量和图的集合,其中概率函数 是条件概率的因子以某种方式由决定。请参阅http://en.wikipedia.org/wiki/Factor_graph。
最重要的是,贝叶斯网络中的因子具有的形式。
因子图虽然更通用,但其相同之处在于它是以图形方式保存有关或任何其他函数的因式分解的信息。
不同之处在于,当贝叶斯网络转换为因子图时,因子图中的因子被分组。例如,因子图中的一个因子可能是。原始贝叶斯网络将其存储为三个因子,但因子图仅将其存储为一个因子。一般来说,贝叶斯网络的因子图比原始贝叶斯网络跟踪更少的因子分解。
因子图只是贝叶斯模型的另一种表示。如果您在特定的贝叶斯网络中有一个精确的推理算法,并且在相应的因子图中有另一个精确的推理算法,那么这两个结果将是相同的。通过利用模型中变量之间的条件独立性,因子图恰好是推导有效(精确和近似)推理算法的有用表示,从而减轻了维度灾难。
打个比方:傅里叶变换包含与信号的时间表示完全相同的信息,但有些任务在频域更容易完成,而有些任务在时域更容易完成。在同样的意义上,因子图只是对相同信息(概率模型)的重新表述,这有助于推导出聪明的算法,但并没有真正“添加”任何东西。
更具体地说,假设您对推导模型中某个数量的边际
在高维模型中,这是在高维空间上的积分,很难计算。(这种边缘化/积分问题使高维推理变得困难/难以处理。一种方法是找到巧妙的方法来有效地评估这个积分,这就是马尔可夫链蒙特卡洛(MCMC)方法所做的。众所周知,这些方法是臭名昭著的计算时间长。)
在不涉及太多细节的情况下,因子图编码了这样一个事实,即这些变量中的许多变量是有条件地相互独立的。这使得能够用一系列低得多的集成问题来代替上述高维集成,即不同消息的计算。通过以这种方式利用问题的结构,推理变得可行。这是根据因子图进行推理的核心优势。