给定一个非常大的数据集,如果我们的目标是进行概率推理,那么从数据中学习贝叶斯网络然后使用贝叶斯网络计算条件概率的主要优势是什么?我看到我们也可以通过计数直接从数据集中近似这些概率。此外,如果数据集足够大,还可以尝试使用 CLT/WLLN 来计算一些置信区间。为什么构建贝叶斯网络(硬优化问题)并进行推理(消息传递算法)会更好?某种过度拟合的论点?
谢谢!
给定一个非常大的数据集,如果我们的目标是进行概率推理,那么从数据中学习贝叶斯网络然后使用贝叶斯网络计算条件概率的主要优势是什么?我看到我们也可以通过计数直接从数据集中近似这些概率。此外,如果数据集足够大,还可以尝试使用 CLT/WLLN 来计算一些置信区间。为什么构建贝叶斯网络(硬优化问题)并进行推理(消息传递算法)会更好?某种过度拟合的论点?
谢谢!
好问题!据我所见,人们通常会在给定结构的情况下进行推断,并假设结构是给定的。我还没有看到人们仅仅为了进行推理而进行结构学习(正如您和其他人所指出的那样,这是一个难题)。
贝叶斯网络对条件独立结构进行编码,因此如果您想了解/解释随机变量之间的依赖关系,学习该结构很有用。例如,如果您有三个随机变量(吸烟、肺中的焦油、癌症),您很可能会发现所有这些变量都相互关联(即,成对来看,这些变量不是相互独立的)。但是,如果您进行结构学习,您可能还会了解到吸烟与癌症无关的事实,因为肺部焦油沉积量很大。
有了背景和领域知识,也有可能使用贝叶斯网络结构来令人信服地论证或支持因果假设。
在贝叶斯信念网络 (BBN) 中,可以分解联合概率。假设如下。
使用链式法则,您可以将 P 分解如下
因为 BBN 满足马尔可夫条件,所以可以将 P 分解如下。
就说BBN结构,它的有向无环图(DAG),确实如下。
X1 -> X2 -> X3 -> X4
然后,
您是否看到使用马尔可夫条件与链式法则计算 P 的任何效率?
一个更具体的例子。假设所有变量都是二进制的,并且取值是/否。假设你观察
并且您想预测 X4 的状态。你会怎么做?
如果您没有结构(DAG),那么您可以进行计数(如您在帖子中所述)来计算条件概率。
和
但是,如果您确实有 DAG,您知道您可以执行以下操作。
和
即使您只是在数数,无论有无 DAG,哪个计算速度更快?