“贝叶斯模型平均”如何实际工作的简单示例

机器算法验证 机器学习 可能性 贝叶斯 模型 意思是
2022-03-18 02:30:09

我正在尝试通过将其置于其通常使用的符号(即)的上下文中来遵循有关贝叶斯模型平均的本教程:machine-learning

X_train : 训练数组;暗淡 =(n,m);

y_train目标向量;暗淡 =(n,)你适合训练数组(正确的值);

x : 样本属性的输入向量;暗淡 =(m,);

y:输出预测值;(1,)预测值的标量[为简单起见])。

这些都在下面贝叶斯的背景下描述......

.

来源将其描述为由索引的模型类别m

P(y|x,θ,m)
θ:模型参数集;

m: 一组模型中的模型索引

.

贝叶斯模型选择

P(y|x,D)=

x输入数据(ntest,m)成形输入数组(行 = 样本,列 = 属性);

y:输出预测n :(ntest,)预测的长度输出向量基于x;

D:训练数据: 包含 (i) 的元组(ntrain,m)数组(行 = 样本,列 = 属性);(ii)(ntrain,)包含训练数组描述的实际值/类别的长度向量

(请让我知道这是否令人困惑,我会详细说明)

=P(y|x,D,m)P(m|x,D)dm
P(y|x,D,m)=P(y|x,θ,m)P(θ|D,m)dθ
yx独立于D给定θ

该视频说,这是每个模型预测的概率的平均值。你平均的权重是P(m|x,D)后验分布m给定D.

我的困惑:

有人可以描述一下这是如何平均模型的吗?你最终会得到一个由所有模型创建的后验吗?在这种情况下,先验在哪里?

整合所有模型如何平均它们?据我所知,积分可以为您提供曲线下的面积,但在统计数据中,我经常听到“求和/积分”参数/变量这个术语。这到底是什么意思?

请提供一个简单的示例,以便我了解它是如何工作的 :) 这对于试图了解贝叶斯模型平均如何准确工作的人来说肯定是有用的。我会在那个视频上放一个链接,因为我知道其他人也很困惑。

2个回答

模型平均的一个简单示例是当您决定多项式模型的阶时

yi=j=0kxijβj+ei

所以你不知道 beta 也不知道k. eiN(0,σ2). 对于固定k你有一个最小二乘问题 - 有一个适当的先验它是“正则化”最小二乘。当您进行模型平均时,您可以考虑每个预测的加权平均k. 权重将与类似的东西成比例exp(12BICk)在 beta 的先验和多项式阶数相当一致的情况下(BICk是最小二乘模型的贝叶斯信息准则k)。

我认为将其视为两级“元模型”可能会有所帮助。您有一些单个模型的集合(索引为m),然后你有一个元模型,它是单个模型的分布(或等效地,值的分布m)。

您可以将模型平均视为分两步工作:

  • 首先,你得到每个模型的后验预测分布m通过整合其特定于模型的参数θ

P(y|x,D,m)=P(y|x,D,θ,m)P(θ|D,m)dθ

  • 然后你得到元模型的后验预测分布,现在整合模型上的分布:

P(y|x,D)=P(y|x,D,m)P(m|x,D)dm

然后在机器学习环境中,你会做出关于y基于给定观察到的协变量的后验预测分布x.

要回答您的问题,第二步是模型平均。当您“积分”或“求和”一个参数时(顺便说一下,您可以将这些分别视为连续分布和离散分布的相同操作),这相当于将某个数量的期望值(即平均)超过该参数. 在这种情况下,您取的是后验密度的期望值y,这是后验预测分布的定义。

至于先验,您将在此模型中拥有两组:每个模型的先验m,以及不同的元模型的先验m. 他们将决定我们已经整合出来的参数的后验分布(即P(θ|D,m)P(m|x,D))。

我要指出的是,在这个模型中,作者显然已经指定了后验m可能取决于测试预测器x,但后面超过θ才不是。那是,x可能会影响您对不同模型的加权方式,但不会影响您对每个单独模型的参数加权的方式。我不认为这是一个疯狂的选择,但这不是唯一的方法。

好的。一个例子。我想不出一个简单的机器学习示例,但这里有一个更简单的教科书统计示例。在这个模型中,各个模型将是具有固定方差的正态分布σ2, 和随机均值μ. 分布的集合(元模型)超过不同的值σ2. 所以在这里θ=μm=σ2. 标准先于μ|σ2是正态分布,然后先验σ2是逆伽马分布。你可以证明后验预测分布y超过μ给定一个固定值σ2是另一个正态分布,其均值拉向样本均值的方向。然后你整合出来(模型平均值)σ2, 后验预测分布变成了 Student-t 分布y. 从本质上讲,你得到的东西看起来有点像正态分布,但它有肥尾,因为你已经对方差的不同可能性进行了平均。