21、概率模型的贝叶斯方法:抛硬币示例详解

贝叶斯方法解析抛硬币模型

概率模型的贝叶斯方法:抛硬币示例详解

1. 抛硬币问题引入

在概率模型的学习中,我们可以通过抛硬币这个简单的例子来初步了解贝叶斯模型。抛硬币实验有两种可能的结果:正面(y = 1)和反面(y = 0)。我们的目标是确定这两种可能结果的预测分布 p(y)。

与其他很多例子不同,在抛硬币问题中没有输入变量。因为每次抛的是同一枚硬币,得到正面的概率不依赖于任何外部变量,所以我们只需要估计结果的无条件概率分布。

如果我们知道这是一枚公平的硬币,那么预测分布就很简单:正面和反面的概率均为 0.5。这种概率性的结果体现了抛硬币实验中固有的随机不确定性,而认知不确定性为零,因为我们确定正面的概率是 0.5。

从概率模型的角度来看,我们可以将预测分布描述为一个伯努利分布,其二元结果为 y(正面:y = 1,反面:y = 0)。该分布只有一个参数 θ,它对应于得到正面的概率,即 θ = P(y = 1)。对于公平硬币,θ = 0.5,但 θ 也可以取其他值。

现在假设这枚硬币来自一个可疑的赌徒,我们不能假定它是公平的,也无法确定 θ 的具体值,因此需要估计得到正面的概率 θ = P(y = 1)。为了生成一些训练数据,我们抛了三次硬币,结果三次都是正面:D = (1, 1, 1)。这让我们初步感觉这可能是一枚不公平的硬币,但仅通过三次抛掷,我们能有多确定呢?接下来,我们将分别用非贝叶斯方法和贝叶斯方法来分析这个问题。

2. 贝叶斯定理的推导

贝叶斯定理可以从乘积规则推导得出。乘积规则指出,事件 A 和事件 B 同时发生的联合概率 P(A, B),等于事件 A 发生的概率 P(A)乘以在 A 发生的条件下 B 发生的概率 P(B|A)。即:
[P(A, B)=P(A) \cdot P(B|A)]

例如,在海滩散步时找到牡蛎的概率为 (P(A)),牡蛎中含有珍珠的概率为 (P(B|A)),那么找到一个含有珍珠的牡蛎的概率就是 (P(A) \cdot P(B|A))。

我们可以交换 A 和 B 的位置,得到:
[P(B, A)=P(B) \cdot P(A|B)]

由于 (P(A, B)=P(B, A)),所以:
[P(A) \cdot P(B|A)=P(B) \cdot P(A|B)]

两边同时除以 P(B),就得到了贝叶斯定理:
[P(A|B)=\frac{P(B|A) \cdot P(A)}{P(B)}]

3. 非贝叶斯的最大似然法(MaxLike)

我们使用传统的非贝叶斯最大似然法来拟合伯努利模型。最大似然估计中,得到正面(y = 1)的概率通过观察到的正面次数(n1)除以抛掷次数(n)来计算,即:
[\hat{\theta}=\frac{n_1}{n}]

在我们的例子中,n1 = 3,n = 3,所以 (\hat{\theta}=1)。标准偏差为:
[\sigma=\sqrt{\frac{\hat{\theta}(1 - \hat{\theta})}{n}}]

这里 (\hat{\theta}=1),则标准偏差为 0。这意味着最大似然估计给正面结果分配的概率为 1,随机不确定性为 0。此时的预测分布没有任何不确定性,得到的模型表明每次抛硬币都会出现正面。但仅通过三次抛掷就得出这样的结论是很冒险的。

4. 贝叶斯方法

在贝叶斯方法中,我们需要考虑参数 θ 的不确定性。由于我们只有三个训练数据点,我们的目标不是估计参数 θ 的单个(最优)值,而是确定该参数的后验分布。

贝叶斯公式为:
[p(\theta|D)=\frac{p(D|\theta) \cdot p(\theta)}{p(D)}]

其中,(p(\theta|D)) 是后验,(p(D|\theta)) 是似然,(p(\theta)) 是先验,(p(D)) 是边际似然(用于归一化)。

我们需要确定联合似然 (p(D|\theta)),它是三次观察的似然之积。对于先验,由于参数 θ 是每次抛掷得到正面的概率,它必须在 0 到 1 之间,我们假设 0 到 1 之间的所有 θ 值都是等可能的,采用均匀分布。因为 θ 可以取 0 到 1 之间的任何值,所以 (p(\theta)) 是一个连续概率分布,其积分必须为 1。

在使用连续分布和积分来推导解析解之前,我们先使用暴力近似法。我们在 19 个网格点上对先验 (p(\theta)) 进行采样((\theta_i=\frac{i}{19},i = 1,2,\cdots,19))。在这种暴力方法中,我们只有 θ 的离散值,因此可以使用求和代替积分,使用概率代替概率密度。我们假设所有 19 个先验 (P(\theta)) 值具有相同的概率:
[P(\theta_i)=\frac{1}{19}]

在计算后验参数分布之前,我们先看看在没有看到任何数据时结果的预测分布。由于先验给所有 θi 值赋予了相同的概率,我们期望得到正面和反面的概率相等。通过以下公式可以推导预测分布:
[p(y)=\sum_{\theta} p(y|\theta) \cdot p(\theta)]

在抛硬币的例子中,代入 (p(y = 1|\theta)=\theta) 和 (p(\theta)=\frac{1}{19}),得到:
[p(y = 1)=\sum_{i = 1}^{19} \theta_i \cdot \frac{1}{19}=\frac{1}{2}]
[p(y = 0)=1 - p(y = 1)=\frac{1}{2}]

这正是我们预期的 50:50 的机会(见下图的左下方图)。

我们可以根据“后验与似然乘以先验成正比”的贝叶斯准则来计算 19 个网格点 θi 处的未归一化后验:
[p(\theta_i|D) \propto p(D|\theta_i) \cdot p(\theta_i)]

为了得到归一化的后验值,我们将每个未归一化后验除以所有值的总和:
[p(\theta_i|D)=\frac{p(D|\theta_i) \cdot p(\theta_i)}{\sum_{j = 1}^{19} p(D|\theta_j) \cdot p(\theta_j)}]

如预期的那样,在看到三次正面后,后验更倾向于接近 1 的 θi 值,但仍然给小于 1 的 θ 值分配了一些概率,这允许硬币不是每次都确定性地出现正面。

现在我们可以根据后验来确定预测分布。代入 (p(y = 1|\theta)=\theta) 和 (p(\theta|D))(后验),得到:
[p(y = 1|D)=\sum_{i = 1}^{19} \theta_i \cdot p(\theta_i|D) \approx 0.78]
[p(y = 0|D)=1 - p(y = 1|D) \approx 0.22]

根据这个基于后验的预测分布,我们有 78%的机会得到正面,22%的概率得到反面(见下图的右下方图)。

参数值(theta) 联合似然(jointlik) 先验 未归一化后验(unnorm_post) 后验(post)

Prior and Posterior Distributions

上述流程可以用以下 mermaid 流程图表示:

graph LR
    A[开始] --> B[抛硬币三次得数据D]
    B --> C{选择方法}
    C -->|最大似然法| D[计算theta=n1/n]
    D --> E[计算标准偏差]
    E --> F[得出预测分布]
    C -->|贝叶斯方法| G[确定先验p(theta)]
    G --> H[计算联合似然p(D|theta)]
    H --> I[计算未归一化后验]
    I --> J[归一化后验]
    J --> K[计算基于后验的预测分布]
    F --> L[结束]
    K --> L
5. 解析求解贝叶斯问题

抛硬币示例中拟合贝叶斯伯努利模型是一个相对简单的问题,我们可以精确求解。

对于先验,我们依旧使用均匀分布,即给每个可能的 θ 赋予相同的先验概率。因为要使 (p(\theta)) 成为一个有效的概率分布,它在 0 到 1 区间上的积分必须为 1,所以先验参数分布为 (p(\theta) = 1)((0\leq\theta\leq1))。

在连续先验下推导先验预测分布,我们从公式开始:
[p(y)=\int_{\theta} p(y|\theta) \cdot p(\theta)d\theta]
在抛硬币例子中,没有输入特征 x,且在看到数据之前,我们使用先验 (p(\theta)) 而非后验。对于 (Y = 1) 的预测概率:
[
\begin{align }
p(y = 1)&=\int_{0}^{1} p(y = 1|\theta) \cdot p(\theta)d\theta\
&=\int_{0}^{1} \theta \cdot 1d\theta\
&=\left[\frac{1}{2}\theta^{2}\right]_{0}^{1}\
&=\frac{1}{2}
\end{align
}
]
根据互补概率,(p(y = 0)=1 - p(y = 1)=\frac{1}{2})。这与暴力近似法得到的先验预测分布相同(见下图左下方图)。

为了确定后验,我们再次使用贝叶斯公式:
[p(\theta|D)=\frac{p(D|\theta) \cdot p(\theta)}{p(D)}]
其中,(p(\theta|D)) 是后验,(p(D|\theta)) 是似然,(p(\theta)) 是先验,(p(D)) 是边际似然(用于归一化)。

我们已经知道先验 (p(\theta) = 1),联合似然与暴力近似法中的相同。因为有三次正面的观察结果,联合似然为:
[p(D|\theta)=\theta^{3}]

根据“后验与似然乘以先验成正比”,未归一化后验为 (p(\theta|D)\propto\theta^{3}\cdot1=\theta^{3})。设 (p(\theta|D)=C\theta^{3}),为了确定归一化常数 C,使得 (\int_{0}^{1} C\theta^{3}d\theta = 1)。
[
\begin{align }
\int_{0}^{1} C\theta^{3}d\theta&=1\
C\left[\frac{1}{4}\theta^{4}\right]_{0}^{1}&=1\
\frac{C}{4}&=1\
C&=4
\end{align
}
]
所以后验 (p(\theta|D)=4\theta^{3})((0\leq\theta\leq1))。后验的形状与暴力近似法得到的类似,更倾向于接近 1 的 θ 值,但仍保留了一定的不确定性,不会断言硬币总是正面朝上(见下图右上方图)。

接下来推导后验下的预测分布。使用公式:
[p(y|D)=\int_{\theta} p(y|\theta) \cdot p(\theta|D)d\theta]
对于 (y = 1):
[
\begin{align }
p(y = 1|D)&=\int_{0}^{1} p(y = 1|\theta) \cdot p(\theta|D)d\theta\
&=\int_{0}^{1} \theta \cdot 4\theta^{3}d\theta\
&=4\int_{0}^{1} \theta^{4}d\theta\
&=4\left[\frac{1}{5}\theta^{5}\right]_{0}^{1}\
&=\frac{4}{5}=0.8
\end{align
}
]
根据互补概率,(p(y = 0|D)=1 - p(y = 1|D)=0.2)。这与暴力近似法的结果类似,但更精确。贝叶斯预测分布对结果保留了一定的不确定性,在仅观察三次抛掷的情况下,给出了 20% 的概率观察到反面(见下图右下方图)。

Prior and Posterior Distributions

6. 抛硬币示例的总结与启示
  • 解析与近似方法 :在像伯努利模型这样的简单模型中,我们可以对后验和预测分布进行解析推导。暴力方法可以近似解析解,当积分困难时,暴力方法仍然有效。但需要注意的是,暴力方法也并非万能,对于复杂问题(如神经网络),它并不适用。
  • 先验与后验的关系 :与先验相比,后验会给那些能使观察数据具有更高似然性的参数值赋予更多的概率(质量)。
  • 贝叶斯与最大似然法的区别 :最大似然法只选择概率最高的单个参数值来推导预测分布,而贝叶斯方法会根据对应参数值的后验概率对所有可能的预测分布进行加权平均。训练数据集越大,后验的分布范围就越小。
  • 先验的影响 :训练集越大,先验的影响就越小。对于大的训练数据集,后验会围绕最大似然参数估计形成一个狭窄的(高斯)分布。
7. 先验选择的讨论

在贝叶斯建模中,我们不仅要为结果的条件概率分布(CPD)选择一个分布,还需要在看到任何数据之前为先验 (p(\theta)) 选择一个分布。这引发了统计学家之间的一场大讨论。

反贝叶斯阵营的主要观点如下:
- 引入主观性 :使用先验会引入主观性,因为我们可以通过先验给某些参数范围赋予高概率,从而使后验向该范围偏移。
- 让数据说话更科学 :他们认为“让数据说话”更科学。

而贝叶斯阵营则有以下观点:
- 收敛性 :所有合理的先验都会导致相似的模型,并且对于大的数据集,这些模型都会收敛到最大似然法得到的模型。
- 避免假阳性 :先验的“向先验收缩”效应有助于避免假阳性结果。

为了支持使用先验,这里有一个实际的例子。一项非贝叶斯分析的实证研究得出结论,长相好看的父母生女儿的概率比生儿子高(p 值为 0.015),该结果被解释为一种进化效应。著名的贝叶斯学者 Andrew Gelman 重新分析了这些数据,他使用了一个先验,该先验认为父母的吸引力对后代性别的影响较小。他的分析得出结论,父母的吸引力并不影响生女孩的可能性。

Gelman 还进行了一项模拟研究,使用小的真实效应大小和相当小的样本量。非贝叶斯分析在大多数模拟运行中得出非显著结果,但由于随机性,一些运行得出了显著结果,其中 40% 的报告效应方向错误!因此,Gelman 认为使用保守先验进行贝叶斯分析作为一种正则化方法更为合理。

对于深度学习模型,使用倾向于小权重值的先验来正则化权重是合理的,原因如下:
- 经验证据 :经验表明,训练好的神经网络通常具有较小的权重。
- 输出稳定性 :较小的权重会导致不太极端的输出(在分类中,不太极端的概率),这对于未训练的模型是理想的。
- 提高性能 :在损失函数中添加一个倾向于小权重的组件通常有助于提高预测性能,这在非贝叶斯神经网络中也被称为正则化或权重衰减。

综上所述,贝叶斯方法在处理不确定性和避免假阳性结果方面具有优势,合理选择先验可以为模型带来更好的性能和解释性。在实际应用中,我们需要根据具体问题和数据特点来权衡使用不同的方法和先验。

以下是一个总结性的表格,对比了最大似然法和贝叶斯方法在抛硬币示例中的特点:
| 方法 | 对参数的处理 | 预测分布特点 | 不确定性处理 | 适用场景 |
| — | — | — | — | — |
| 最大似然法 | 估计单个最优参数值 | 确定性强,可能过度自信 | 忽略参数不确定性 | 数据量大且相对稳定 |
| 贝叶斯方法 | 确定参数的后验分布 | 保留一定不确定性 | 考虑参数不确定性 | 数据量小或需要考虑先验信息 |

整个分析过程的流程还可以用以下 mermaid 流程图进一步概括:

graph LR
    A[抛硬币问题] --> B{选择方法}
    B -->|最大似然法| C[计算参数点估计]
    C --> D[得到确定预测分布]
    B -->|贝叶斯方法| E[选择先验分布]
    E --> F[计算后验分布]
    F --> G[得到含不确定性预测分布]
    D --> H[结果评估]
    G --> H
    H --> I{结果是否满意}
    I -->|否| B
    I -->|是| J[应用模型]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值