scala infer:Scala嵌入式通用概率编程语言 源码
Scala推断 通过添加一些关键字, scala-infer将scala转变为一种概率编程语言。 为了实现可伸缩性,推断基于后验分布的(梯度近似)。 分发中的每个抽奖均附有指南分发。 scala-infer概率模型被编写为常规的scala代码。 值是从分布中提取的,用于生成数据。 这种模型被称为生成模型,因为它提供了一个明确的过程。 引入了三个新的关键字: infer定义模型 从分布中抽取随机变量的sample observe将数据绑定到模型中的分布 对值进行采样时,需要两个分布。 后验的先验和(近似)。 实际样本值是从后验得到的,但先验是后验积累的起点。 没有观察,后验将等于先验。 通过梯度下降优化后验后验参数。 对于模型中的每个样本,向后遍计算损失函数的梯度。 对于变分推论,损失函数为ELBO,即证据的下限。 离散和连续变量使用不同的策略。 对于连续变量,可以使用重新参数
用户评论