0

我发现在编写数学软件时自动微分非常有用。我现在必须处理随机变量和随机变量的函数,在我看来,类似自动微分的方法也可以用于此。

这个想法是从具有给定多元分布的基本随机向量开始,然后您想要处理随机向量分量函数的隐含概率分布。这个想法是定义运算符,当您添加、相乘、除以两个随机变量时自动适当地组合两个概率分布,并在您应用诸如取幂之类的标量函数时适当地转换分布。然后,您可以结合这些来构建原始随机变量所需的任何函数,并自动获得相应的概率分布。

这听起来可行吗?如果不是,为什么不呢?如果是这样,并且由于它不是一个特别原始的想法,有人可以指出我现有的实现,最好是在 C 中

4

1 回答 1

0

在概率编程方面有很多工作。一个问题是,随着您的分布变得越来越复杂,您开始需要更复杂的技术来从中采样。

有多种方法可以做到这一点。概率图形模型为表达这些模型提供了一个词汇表,然后您可以使用各种 Metropolis-Hastings 风格的方法从中采样。这是一个速成课程

另一种模型是概率编程,它可以通过嵌入式领域特定语言直接完成。Oleg Kiselyov 的HANSEI就是这种方法的一个例子。一旦他们有了程序,他们就可以检查决策树,并通过一种重要性抽样的形式将它们扩展,以便在每个步骤中获得尽可能多的信息。

您可能还想阅读Wingate 等人的“用于有效推理的概率程序的非标准解释” 。它描述了一种使用有关分布导数的额外信息来加速 Metropolis-Hastings 式采样技术的方法。我个人使用自动微分来计算这些导数,这将话题带回了自动微分。;)

于 2013-01-21T12:21:42.233 回答