贝叶斯估计
问题建模:
后验概率公式:
P(ωi∣x,D)=P(x∣ωi,Di)P(ωi)∑j=1cP(x∣ωj,Dj)P(ωj) P\left(\omega_i \mid \mathbf{x}, \mathcal{D}\right)=\frac{P\left(\mathbf{x} \mid \omega_i, \mathcal{D}_i\right) P\left(\omega_i\right)}{\sum_{j=1}^c P\left(\mathbf{x} \mid \omega_j, \mathcal{D}_j\right) P\left(\omega_j\right)} P(ωi∣x,D)=∑j=1cP(x∣ωj,Dj)P(ωj)P(x∣ωi,Di)P(ωi)
由于我们在做分类器时,手上其实是有训练数据的,也就是每一类 ωi\omega_iωi 都有自己对应的训练数据集合 Di\mathcal{D}_iDi。因此,我们真正能估计的是:
P(x∣ωi,Di)
P(\mathbf{x} \mid \omega_i, \mathcal{D}_i)
P(x∣ωi,Di)
也就是说,“在知道类别是 ωi\omega_iωi” 且 “在我们拥有第 i 类的数据 Di\mathcal{D}_iDi” 的情况下,输入 x\mathbf{x}x 出现的概率。我们在每个类别内部进行建模的时候,类别标签已经是已知的固定量。所以:
- 给定 Di\mathcal{D}_iDi ,我们知道这些数据都是属于 ωi\omega_iωi 类别的。
- 那我们就可以只用这些数据来建模"类别 ωi\omega_iωi 的条件概率分布"。
也就是说,一旦我们知道了 Di\mathcal{D}_iDi 是哪一类的,我们已经隐含地知道了类别标签 ωi\omega_iωi ,所以再写 ωi\omega_iωi 就是多余了。于是就可以简写为:
P(x∣ωi,Di)=P(x∣Di)
P\left(\mathbf{x} \mid \omega_i, \mathcal{D}_i\right)=P\left(\mathbf{x} \mid \mathcal{D}_i\right)
P(x∣ωi,Di)=P(x∣Di)
所以,问题的核心在于**估计P(x∣D)P(\mathbf{x} \mid \mathcal{D})P(x∣D)。**这里省略下标表示对所有类别通用的求解方式。
p(x∣D)=∫p(x,θ∣D)dθ=∫p(x∣θ,D)p(θ∣D)dθ=∫p(x∣θ)p(θ∣D)dθ
\begin{aligned} p(\mathbf{x} \mid \mathcal{D}) & =\int p(\mathbf{x}, \boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} \\ & =\int p(\mathbf{x} \mid \boldsymbol{\theta}, \mathcal{D}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta} \\ & =\int p(\mathbf{x} \mid \boldsymbol{\theta}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta}\end{aligned}
p(x∣D)=∫p(x,θ∣D)dθ=∫p(x∣θ,D)p(θ∣D)dθ=∫p(x∣θ)p(θ∣D)dθ
这是一种对概率密度求积分的思想。因为在贝叶斯方法中,参数 θ\thetaθ 不是固定的值,而是一个不确定的变量!
-
传统频率派做法通常是:
直接用最大似然估计或MAP估计得出一个具体的 θ^\hat{\theta}θ^ ,然后用 p(x∣θ^)p(\mathbf{x} \mid \hat{\theta})p(x∣θ^) 来做预测。 -
而贝叶斯派则认为:
我们应该考虑所有可能的参数值,不要只依赖一个点估计!要用加权平均 的方式整合所有参数不确定性。所以我们不是用一个固定参数预测 x\mathbf{x}x ,而是用下面这个**"平均版本"**:
p(x∣D)=Eθ∼p(θ∣D)[p(x∣θ)] p(\mathbf{x} \mid \mathcal{D})=\mathbb{E}_{\theta \sim p(\theta \mid \mathcal{D})}[p(\mathbf{x} \mid \theta)] p(x∣D)=Eθ∼p(θ∣D)[p(x∣θ)]
-
举个例子:
假设我们要预测某人是否患病(1 or 0),你用逻辑回归来建模,参数是 θ\thetaθ。现在你已经看到了一些训练数据 D\mathcal{D}D。
-
如果你直接用最大似然:
θ^=argmaxθp(D∣θ)\hat{\theta} = \text{argmax}_\theta p(\mathcal{D} \mid \theta)θ^=argmaxθp(D∣θ),然后预测:
p(患病∣特征)≈p(患病∣特征,θ^) p(\text{患病} \mid \text{特征}) \approx p(\text{患病} \mid \text{特征}, \hat{\theta}) p(患病∣特征)≈p(患病∣特征,θ^) -
如果你用贝叶斯预测:
你承认你对 θ\thetaθ 没有那么确定,只能说它服从某个后验分布:
p(患病∣特征)=∫p(患病∣特征,θ)⋅p(θ∣D)dθ p(\text{患病} \mid \text{特征}) = \int p(\text{患病} \mid \text{特征}, \theta) \cdot p(\theta \mid \mathcal{D}) d\theta p(患病∣特征)=∫p(患病∣特征,θ)⋅p(θ∣D)dθ
这就是贝叶斯方法“把模型参数的不确定性也考虑进来”的精髓。
-
继续看上面的公式:∫p(x∣θ)p(θ∣D)dθ\int p(\mathbf{x} \mid \boldsymbol{\theta}) p(\boldsymbol{\theta} \mid \mathcal{D}) d \boldsymbol{\theta}∫p(x∣θ)p(θ∣D)dθ。
-
p(x∣θ)p(\mathbf{x} \mid \theta)p(x∣θ):似然函数,形式已知(如高斯分布)。
-
p(θ∣D)p(\theta \mid \mathcal{D})p(θ∣D):参数的后验分布,需通过训练数据计算。计算过程:
p(θ∣D)=p(θ,D)p(D)=p(θ)p(D∣θ)∫p(θ,D)dθ=p(θ)p(D∣θ)∫p(θ)p(D∣θ)dθp(D∣θ)=∏i=1np(xk∣θ) \begin{aligned} p(\boldsymbol{\theta} \mid \mathcal{D}) & =\frac{p(\boldsymbol{\theta}, \mathcal{D})}{p(\mathcal{D})} \\ & =\frac{p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta})}{\int p(\boldsymbol{\theta}, \mathcal{D}) d \boldsymbol{\theta}} \\ & =\frac{p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta})}{\int p(\boldsymbol{\theta}) p(\mathcal{D} \mid \boldsymbol{\theta}) d \boldsymbol{\theta}} \\ p(\mathcal{D} \mid \boldsymbol{\theta}) & =\prod_{i=1}^n p\left(\mathbf{x}_k \mid \boldsymbol{\theta}\right) \end{aligned} p(θ∣D)p(D∣θ)=p(D)p(θ,D)=∫p(θ,D)dθp(θ)p(D∣θ)=∫p(θ)p(D∣θ)dθp(θ)p(D∣θ)=i=1∏np(xk∣θ)
进行贝叶斯参数估计的一般阶段:
-
阶段 I:训练(后验分布)
输入:
- 数据集 D={x1,x2,...,xn}\mathcal{D} = \{x_1, x_2, ..., x_n\}D={x1,x2,...,xn}
- 参数的先验分布 p(θ)p(\theta)p(θ):比如说你觉得 θ\thetaθ 是某个高斯分布。
核心公式:
p(θ∣D)=p(D∣θ)p(θ)p(D) p(\theta \mid \mathcal{D}) = \frac{p(\mathcal{D} \mid \theta) p(\theta)}{p(\mathcal{D})} p(θ∣D)=p(D)p(D∣θ)p(θ)
逐项理解:- p(θ)p(\theta)p(θ):我们对参数的先验认知;
- p(D∣θ)p(\mathcal{D} \mid \theta)p(D∣θ):参数下,数据出现的可能性(似然);
- p(θ∣D)p(\theta \mid \mathcal{D})p(θ∣D):数据观察之后,对参数的更新信念;
- p(D)=∫p(D∣θ)p(θ)dθp(\mathcal{D}) = \int p(\mathcal{D} \mid \theta)p(\theta)d\thetap(D)=∫p(D∣θ)p(θ)dθ:归一化项,保证后验是概率分布。
目标: 求出后验分布 p(θ∣D)p(\theta \mid \mathcal{D})p(θ∣D)。
-
阶段 II:估计类条件密度(积分)
我们要干嘛?
在数据集下,我们想知道观测到新样本 x\mathbf{x}x的可能性是多少?但我们不能只用某一个 θ\thetaθ,因为我们不确定。所以我们把所有可能的 θ\thetaθ 都考虑进去,做一个加权平均(加权方式是后验概率):
p(x∣D)=∫p(x∣θ)⋅p(θ∣D)dθ p(\mathbf{x} \mid \mathcal{D}) = \int p(\mathbf{x} \mid \theta) \cdot p(\theta \mid \mathcal{D}) d\theta p(x∣D)=∫p(x∣θ)⋅p(θ∣D)dθ- p(x∣θ)p(\mathbf{x} \mid \theta)p(x∣θ):在参数 θ\thetaθ 下,x 的生成概率(比如说高斯密度);
- p(θ∣D)p(\theta \mid \mathcal{D})p(θ∣D):阶段 I 得到的后验分布;
- 积分的结果:在参数不确定的前提下,x\mathbf{x}x 的总体生成可能性。
这一步的意义是: 我们不是像MLE那样说“θ\thetaθ 就是这个”,而是说“我们不知道 θ\thetaθ 到底是哪个,所以我们把所有可能的 θ\thetaθ 的解释能力都考虑进来”,这叫边际化参数。
-
阶段 III:分类
现在我们有了每个类 ωi\omega_iωi 的条件密度估计:
p(x∣ωi,Di) p(\mathbf{x} \mid \omega_i, \mathcal{D}_i) p(x∣ωi,Di)
我们还可以提前给出类的先验概率 P(ωi)P(\omega_i)P(ωi),比如所有类是等概率的就是均匀先验。最后就可以通过贝叶斯规则,计算某个类的后验概率(重点是“对这个样本来说,它属于哪个类更有可能”):
P(ωi∣x,D)=P(x∣ωi,Di)P(ωi)∑j=1cP(x∣ωj,Dj)P(ωj) P(\omega_i \mid \mathbf{x}, \mathcal{D}) = \frac{P(\mathbf{x} \mid \omega_i, \mathcal{D}_i) P(\omega_i)}{\sum_{j=1}^c P(\mathbf{x} \mid \omega_j, \mathcal{D}_j) P(\omega_j)} P(ωi∣x,D)=∑j=1cP(x∣ωj,Dj)P(ωj)P(x∣ωi,Di)P(ωi)- 分子是“这个类解释当前样本的能力 × 这个类本身的先验”;
- 分母是对所有类的分子求和(归一化);
- 最后就可以取最大后验的类作为分类结果。
比较最大似然估计和贝叶斯估计的哲学思想
为什么最大似然估计认为能让似然函数最大的参数值即为所求?
最大似然估计的基本假设是:
现实中观测到的数据是由某个“真实参数”控制的概率模型生成的,而我们不知道这个参数是多少。
所以我们要“反过来推”,从数据出发,倒推出这个参数。这就是最大似然的直觉: “哪个参数让我们实际观测到的数据最可能发生?”
-
似然函数是对“模型如何解释数据”的度量
似然函数 L(θ)=p(D∣θ)L(\theta) = p(D \mid \theta)L(θ)=p(D∣θ)
它表示在参数为 θ\thetaθ 的前提下,我们实际看到数据 DDD 的概率。MLE 就是选择那个让这件事发生得最自然、最不意外的 θ\thetaθ。
-
和频率学派的统计思想一致
频率学派认为:
- 参数是“固定不变”的(虽然我们不知道它是多少);
- 数据是“可重复的随机样本”。
那么,从一堆样本中,我们就用 MLE 来寻找最有可能产生这堆样本的参数值,这是频率学派最常见的估计方法之一。
-
从极大化联合概率来看
假设数据是独立同分布的:
D={x1,x2,…,xn}D = \{x_1, x_2, \ldots, x_n\}D={x1,x2,…,xn},则似然函数是:
L(θ)=∏i=1np(xi∣θ) L(\theta) = \prod_{i=1}^n p(x_i \mid \theta) L(θ)=i=1∏np(xi∣θ)
你会发现:MLE 寻找的是哪个 θ\thetaθ,能让这些样本的联合概率最大。这等价于:
选择一个最能“复现”这些样本的参数值。
-
和“最大后验估计”也有关联
当你加上先验知识 p(θ)p(\theta)p(θ) 的时候,你得到的是最大后验估计(MAP):
θMAP=argmaxθp(θ∣D)=argmaxθp(D∣θ)p(θ) \theta_{\text{MAP}} = \arg\max_\theta p(\theta \mid D) = \arg\max_\theta p(D \mid \theta)p(\theta) θMAP=argθmaxp(θ∣D)=argθmaxp(D∣θ)p(θ)
当先验是均匀分布(对所有参数值一视同仁)时:
θMAP=θMLE \theta_{\text{MAP}} = \theta_{\text{MLE}} θMAP=θMLE
所以 MLE 可以被看作一种“没有先验信息时的贝叶斯估计”。
贝叶斯学派认为:“参数本身也是不确定的,是一个概率分布。”我们根据数据不断地更新我们对参数的信念。
频率学派 | 贝叶斯学派 |
---|---|
参数是固定的,数据是随机的 | 数据是确定的,参数是不确定的 |
用样本来推断固定参数 | 用数据来更新我们对参数的信念 |
不谈“参数的概率”,只谈样本概率 | 参数也有概率分布 |
p(θ∣D)⏟后验 =p(D∣θ)⏟似然 ⋅p(θ)⏟先验 p(D)⏟边际似然 \underbrace{p(\theta \mid D)}_{\text {后验 }}=\frac{\underbrace{p(D \mid \theta)}_{\text {似然 }} \cdot \underbrace{p(\theta)}_{\text {先验 }}}{\underbrace{p(D)}_{\text {边际似然 }}} 后验 p(θ∣D)=边际似然 p(D)似然 p(D∣θ)⋅先验 p(θ)
这表达了:
我们通过观察数据 D,把原先对参数 θ\thetaθ 的“信念” p(θ)p(\theta)p(θ),更新为一个新的“信念” p(θ∣D)p(\theta \mid D)p(θ∣D)。
类比为“科学实验”
- 我们对一个理论(参数)有一个初步的信念(先验);
- 我们进行实验,收集数据(似然);
- 我们更新我们的信念,得到一个更加可信的理论(后验). “新信念的比例 = 旧信念的比例 × 数据支持程度的比例”。。
分母实际上是一个归一化常数,p(D)=∫p(D∣θ)⋅p(θ)dθp(D)=\int p(D \mid \theta) \cdot p(\theta) d \thetap(D)=∫p(D∣θ)⋅p(θ)dθ
它的作用是对所有可能的 θ\thetaθ 情况归一化,让后验 p(θ∣D)p(\theta \mid D)p(θ∣D) 的积分为 1。来保证这个式子符合概率的形式. 核心思想体现在分子.
- 主观信念更新是核心:我们不是问“谁生成了数据”,而是“在看到数据后我们应该相信谁?”
- 信念更新的比例逻辑:比例推理形式强调的是“相对可信度”的更新,而不是绝对频率。
- 概率的可解释性来自先验:先验并不等于胡说,而是代表我们对问题背景的理解,是模型的一部分。
- 贝叶斯定理并不是从频率定义出发的数学技巧,而是从“主观信念更新的理性原则”出发,用似然函数衡量数据的支持程度,用先验表示我们原有的信念,再通过归一化得到后验信念。