概率编程

概率编程PPProbabilistic programming)是一种编程范型,在其中指定了概率模型并自动进行这些模型的推断。它代表了统一概率模型和传统通用编程的一种尝试,使前者更加容易并更广泛的应用。它可以用于建立系统帮助在面对不确定时作出决定。

用于概率编程的编程语言被称为“概率编程语言”(PPL)。

应用
概率推理已经广泛用于各种任务,比如预测股价、推荐电影、诊断计算机、检测网络入侵和图像检查。但是(部份由于计算能力的限制),概率编程范围有限,并且多数推断算法对每个任务都必须手工编写。

尽管如此,在2015年一个50行的概率计算机视觉程序被用于基于人脸的2D图像来生成这些人脸的3D模型。这个程序使用反向(inverse)图作为推断方法的基础,并使用Julia的Picture包来建造。Gen概率编程库(也用Julia写成)已经被用于视觉和机器人任务。

,概率编程系统Turing.jl已经被用于各种制药和经济应用。Julia中的概率编程已经结合于可微分编程,通过组合Julia包Zygote.jl和Turing.jl。

概率编程语言
概率编程语言(PPL)经常从基础语言扩展而来。底层基础语言的选择依赖于模型与基础语言本体的类似性,还有商业考虑和个人偏好。例如Dimple。

关系
概率关系编程语言(PRPL)专门设计来描述和推论(PRM)的概率编程语言(PPL)。

PRM的开发通常具有一组算法,用于关注的分布的归约、推理和发现,它们被嵌入到对应的PRPL中。

概率编程语言列表
困难
推理按概率分布的变量给初学编程者带来困难,但是这些困难可以通过使用嵌入到源代码编辑器中的变量分布的贝叶斯网络可视化和图来解决。

参见
*

  • 归纳编程

*

注释
外部链接
*[http://anyall.org/blog/2009/12/list-of-probabilistic-model-mini-language-toolkits/ List of Probabilistic Model Mini Language Toolkits]
*[https://web.archive.org/web/20160110035042/http://probabilistic-programming.org/wiki/Home Probabilistic programming wiki]

评论 (0)

  • 还没有评论,来抢沙发吧。