【问题标题】:What is the difference between probabilistic programming vs. probabilistic machine learning?概率编程与概率机器学习有什么区别?
【发布时间】:2019-12-09 13:44:24
【问题描述】:

我正试图围绕概率编程的概念展开思考,但我读的越多,我就越感到困惑。

我此时的理解是概率编程类似于贝叶斯网络,只是被翻译成编程语言来创建自动推理模型?

我有一些机器学习背景,我记得一些机器学习模型也输出概率,然后我遇到了概率机器学习这个术语......

这两者有区别吗?还是它们有相似之处?

感谢任何可以帮助澄清的人。

【问题讨论】:

    标签: machine-learning bayesian probabilistic-programming


    【解决方案1】:

    我想这两个术语之间有些模糊,但我对它们的看法如下:

    概率编程它将概率模型表示为生成数据的计算机程序(即模拟器)。

    概率模型 + 编程 = 概率编程

    没有关于概率模型的组成部分的说法(它很可能是某种神经网络)。因此,我将这个术语视为:

    1. 更通用
    2. 在应用环境中更常用(与编程相关)

    概率机器学习 是另一种 ML 风格,它处理预测的 概率 方面,例如该模型不将输入/输出值视为某些和/或点值,而是将它们(或其中一些)视为random variables。这种方法的突出例子是Gaussian Process

    【讨论】:

      【解决方案2】:

      我此时的理解是概率编程类似于贝叶斯网络,只是被翻译成编程语言来创建自动推理模型?

      没错。概率程序可以被视为等同于贝叶斯网络,但用更丰富的语言表示。 概率编程作为一个领域提出了这样的表示,以及利用这些表示的算法,因为有时更丰富的表示会使问题更容易

      例如,考虑一个概率程序,它模拟一种更可能折磨男性的疾病:

      N = 1000000;
      for i = 1:N {
          male[i] ~ Bernoulli(0.5);
          disease[i] ~ if male[i] then Bernoulli(0.8) else Bernoulli(0.3)
      }
      

      这个概率程序等价于下面的贝叶斯网络,并附有适当的条件概率表:

      对于这种高度重复的网络,作者经常使用车牌符号来使他们的描述更加简洁:

      但是,车牌符号是一种用于人类可读出版物的设备,而不是与编程语言相同的形式语言。此外,对于更复杂的模型,车牌符号可能会变得更难理解和维护。最后,编程语言带来了其他好处,例如更容易表达条件概率的原始操作。

      那么,这只是一个方便的表示的问题吗?不,因为更抽象的表示包含更多可用于改进推理的高级信息。

      假设我们想要计算N 患有该疾病的个体中数量 的概率分布。一个简单且通用的贝叶斯网络算法必须考虑到disease 变量的大量分配2^N 组合,以便计算该答案。

      然而,概率程序表示明确指出disease[i]male[i] 的条件概率对于所有i 都是相同的。推理算法可以利用它来计算disease[i] 的边际概率,这对于所有i 都是相同的,使用患病人数因此将是二项分布B(N, P(disease[i])) 的事实,并将其作为所需的答案, 在N 中的时间常数。它还能够提供对这一结论的解释,这对用户来说更容易理解和更有洞察力。

      有人可能会争辩说这种比较是不公平的,因为知识渊博的用户不会提出为显式 O(N) 大小的贝叶斯网络定义的查询,而是通过利用其简单结构提前简化问题。但是,用户可能没有足够的知识来进行这种简化,尤其是对于更复杂的情况,或者可能没有时间去做,或者可能会犯错误,或者可能事先不知道模型将是什么,因此她无法像这样手动简化它。概率编程提供了自动进行这种简化的可能性。

      公平地说,大多数当前的概率编程工具(例如 JAGS 和 Stan)执行这种更复杂的数学推理(通常称为 提升概率推理),而是只需在贝叶斯网络上执行马尔可夫链蒙特卡罗 (MCMC) 采样,相当于概率程序(但通常无需提前构建整个网络,这也是另一个可能的收获)。无论如何,这种便利已经足以证明它们的使用是合理的。

      【讨论】:

        猜你喜欢
        • 2013-11-21
        • 2021-04-15
        • 2016-11-27
        • 2020-10-29
        • 1970-01-01
        • 2017-07-11
        • 2020-10-08
        • 2013-11-18
        • 2012-10-24
        相关资源
        最近更新 更多