分层部分池化,续:使用 TensorFlow Probability 改变斜率模型

这篇文章以我们最近介绍的 tfprobability(TensorFlow Probability 的 R 包装器)进行多级建模为基础。我们展示了如何汇集平均值(“截距”)和关系(“斜率”),从而使模型能够以更广泛的方式从数据中学习。同样,我们使用了 Richard McElreath 的“Statistical Rethinking”中的一个例子;术语以及我们呈现这个主题的方式很大程度上归功于这本书。

来源:RStudio AI博客

在上一篇文章中,我们展示了如何使用 tfprobability(TensorFlow Probability 的 R 接口)构建一个多级或部分池化模型,用于分析不同大小(因此栖息者数量也不同)水箱中的蝌蚪存活情况。

上一篇文章 tfprobability 多级 部分池化

完全池化模型将得出与水箱无关的全局存活数量估计,而非池化模型将学会分别预测每个水箱的存活数量。前一种方法没有考虑到不同的情况;后者没有利用共同的信息。 (此外,除非我们想对用于训练模型的相同实体进行预测,否则它显然没有预测用途。)

池化 非池化

相比之下,部分池化模型可让您对熟悉的实体以及新实体进行预测:只需使用适当的先验即可。

部分池化

假设我们实际上对相同的实体感兴趣 - 我们为什么要应用部分池化?出于同样的原因,机器学习中投入了大量精力来设计正则化机制。我们不想对实际测量值进行过度拟合,无论它们是与同一实体还是一类实体相关。如果我想根据现在进行的单次测量来预测第二天早上醒来时的心率(假设现在是晚上,我正在疯狂地输入博客文章),我最好考虑一些有关心率行为的事实(而不是仅仅将现在测量的确切值投射到未来)。

收缩 变化截距 随机截距 截距 斜率 关系

因此,正如您现在可能已经猜到的那样,变化斜率(或者如果您愿意的话,随机斜率)是今天帖子的主题。再次,我们从 McElreath 的书中举了一个例子,并展示了如何使用 tfprobability 完成同样的事情。

变化斜率 随机斜率 tfprobability

请来杯咖啡

变化斜率 亲社会 Stan 等待 截距 斜率 Café Gerbeaud tfprobability a <- 3.5 a