我发现自动区分在编写数学软件时非常有用。我现在必须处理随机变量和随机变量的函数,在我看来,类似于自动微分的方法也可以用于此。
这个想法是从一个具有给定多元分布的基本随机向量开始,然后你想用随机向量的分量函数的隐含概率分布来工作。其思想是定义运算符,当您对两个随机变量进行加、乘、除时,这些运算符可以自动地将两个概率分布适当地组合在一起,当您应用标量函数(如幂运算)时,这些运算符可以适当地转换分布。然后,您可以将这些组合起来构建原始随机变量的任何函数,并自动获得相应的概率分布。
这听起来可行吗?如果不是,为什么不呢?如果是这样,既然这不是一个特别原创的想法,谁能给我指出一个现有的实现,最好是在C
有很多关于概率规划的工作。一个问题是,当你的分布变得更复杂时,你开始需要更复杂的技术来从中取样。
有很多方法可以做到这一点。概率图形模型提供了一种表达这些模型的词汇表,然后您可以使用各种metropolis - hastings风格的方法从中进行采样。这里有一个速成班。
另一个模型是概率编程,它可以通过嵌入式领域特定语言直接完成。奥列格·基谢廖夫的《HANSEI》就是这种方法的一个例子。一旦他们有了这个程序,他们就可以检查决策树,并通过一种重要抽样的形式将它们展开,以在每一步获得尽可能多的信息。
您可能还想阅读"概率的非标准解释"由Wingate等人编写的"高效推理程序",其中描述了一种使用关于分布导数的额外信息来加速metropolis - hastings风格采样技术的方法。我个人用自动微分法来计算这些导数这就把话题带回了自动微分。div;)