欢迎光临散文网 会员登陆 & 注册

硬核战双54文案

2023-03-22 19:15 作者:比翼苍穹  | 我要投稿

从概念上讲。概率编程语言(PPL)是领域特定的语言,描述了概率模型以及在这些模型中进行推理的机制。PPL的魔力在于将概率方法的推理能力与编程语言的表示能力相结合。

简单来说概率编程是一种系统创建方法;它所创建的系统能够帮助我们在面对不确定性时做出决策。许多日常决策涉及在确定无法直接观测的相关因素时的判断能力。

在PPL程序中,假设使用模型变量的先验分布进行编码。在执行期间,PPL程序将启动一个推理过程, 以根据观察到的数据自动计算模型参数的后验分布。

换句话说,推论使用观察到的数据来调整先验分布以给出更精确的模式。PPL程序的输出是概率分布,它使程序员可以显式可视化和操纵与结果相关的不确定性。

为了说明PPL的简单性。让我们使用现代统计中最著名的问题之一偏向抛硬币。这个问题的想法是计算硬币的偏差。假设第次抛硬币的结果为正面时xi=1,如果为尾部则ix=0。

我们的上下文假设单个抛硬币是独立且均匀分布的(IID),并且每个抛硬币都遵循具有参数θ的伯努利分布:p(xi=1.|θ)=θ和p(xi=0|θ)=1-θ。潜变量(即未观察到的变量)是硬币的偏差。任务是根据先前观察到的拋硬币的结果推论θ,即p(θ|x1,x2,…,xN)。

从概念上讲,深度PPL可以表达具有概率权重和偏差的贝叶斯神经网络。实际上,深度PPL已实现为与流行的深度学习框架无缝集成的新概率语言和库。

最近,统计和神经网络聚集在一起, 将深度学习和贝叶斯建模结合到单个程序中。这种努力的最终表达是深度概率编程语言。微软最近开放了Infer.Net的源代码,该框架简化了.Net开发人员的概率编程

硬核战双54文案的评论 (共 条)

分享到微博请遵守国家法律