引言
在概率模型的参数估计中,尤其是在分类和贝叶斯推断的上下文中,我们经常遇到涉及似然 p ( x n ∣ y n ; θ g ) p(x_n | y_n; \theta_g) p(xn∣yn;θg) 和先验 p ( y n ; θ b ) p(y_n; \theta_b) p(yn;θb) 的表达式。负对数似然(NLL)函数在参数估计中的常见形式是:
∑ n = 1 N D log [ p ( y n ; θ b ) p ( x n ∣ y n ; θ g ) ] \sum_{n=1}^{N_D} \log \left[ p(y_n; \theta_b) \, p(x_n | y_n; \theta_g) \right] n=1∑NDlog[p(yn;θb)p(xn∣yn;θg)]
你问到为什么在这个表达式中我们只考虑似然和先验,而不考虑证据(也称为边缘似然) p ( x n ; θ ) p(x_n; \theta) p(xn;θ)。在这篇详细解释中,我们将深入探讨这一选择背后的原因,澄清每个组成部分在参数估计和模型训练中的角色。
关键概念
在深入解释之前,我们先澄清一些关键概念:
- 似然 p ( x n ∣ y n ; θ g ) p(x_n | y_n; \theta_g) p(xn∣yn;θg):给定类别标签 y n y_n yn 和参数 θ g \theta_g θg,观察到数据 x n x_n xn 的概率。
- 先验 p ( y n ; θ b ) p(y_n; \theta_b) p(yn;θb):基于参数 θ b \theta_b θb 的类别标签 y n y_n yn 的概率,表示在看到数据之前对 y n y_n yn 的信念。
- 证据/边缘似然 p ( x n ; θ ) p(x_n; \theta) p(xn;θ):在模型下观察到数据 x n x_n xn 的概率,它是对所有可能类别标签的积分。
- 后验 p ( y n ∣ x n ; θ ) p(y_n | x_n; \theta) p(yn∣xn;θ):给定数据 x n x_n xn 和参数 θ \theta θ 的类别标签 y n y_n yn 的概率。
理解负对数似然
1. 负对数似然函数
对于数据集 { ( x n , y n ) } n = 1 N D \{(x_n, y_n)\}_{n=1}^{N_D} {(xn,yn)}n=1ND,负对数似然函数是:
NLL ( θ ) = − ∑ n = 1 N D log p ( y n , x n ; θ ) \text{NLL}(\theta) = - \sum_{n=1}^{N_D} \log p(y_n, x_n; \theta) NLL(θ)=−n=1∑NDlogp(yn,xn;θ)
由于 p ( y n , x n ; θ ) = p ( y n ; θ b ) p ( x n ∣ y n ; θ g ) p(y_n, x_n; \theta) = p(y_n; \theta_b) \, p(x_n | y_n; \theta_g) p(yn,xn;θ)=p(yn;θb)p(xn∣yn;θg),NLL 变为:
NLL ( θ ) = − ∑ n = 1 N D [ log p ( y n ; θ b ) + log p ( x n ∣ y n ; θ g ) ] \text{NLL}(\theta) = - \sum_{n=1}^{N_D} \left[ \log p(y_n; \theta_b) + \log p(x_n | y_n; \theta_g) \right] NLL(θ)=−n=1∑ND[logp(yn;θb)+logp(xn∣yn;θg)]
2. 排除证据
证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 定义为:
p ( x n ; θ ) = ∑ y p ( y ; θ b ) p ( x n ∣ y ; θ g ) p(x_n; \theta) = \sum_{y} p(y; \theta_b) \, p(x_n | y; \theta_g) p(xn;θ)=y∑p(y;θb)p(xn∣y;θg)
它表示在所有可能的类别标签下观察到 x n x_n xn 的边缘似然。然而,在优化参数 θ \theta θ 时,我们不会在 NLL 中包含 p ( x n ; θ ) p(x_n; \theta) p(xn;θ)。以下是原因:
为什么我们在 NLL 中忽略证据
1. 证据不依赖于给定数据点和标签的参数
当我们考虑一个特定的数据点 x n x_n xn 及其对应的标签 y n y_n yn 时,证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 是一个标准化常数,确保所有可能的 y y y 的概率和为 1。然而,对于给定的 y n y_n yn, p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 不影响 θ \theta θ 的估计,因为它与观察到的 y n y_n yn 无关。
2. 在最大似然估计中证据会抵消
在最大似然估计(MLE)中,我们的目标是找到最大化观察数据似然的参数 θ \theta θ。由于证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 是对所有可能的 y y y 的求和,它与观察到的标签 y n y_n yn 无关,因此它作为每个 x n x_n xn 的常数,对 θ \theta θ 不产生影响。
3. 计算上的简化
包括证据将需要为每个数据点计算 p ( x n ; θ ) p(x_n; \theta) p(xn;θ),这涉及对所有可能的类别标签求和。对于类别数较多的情况,这可能会非常耗费计算资源。由于证据对已知 y n y_n yn 的梯度没有贡献,所以在计算上省略它是合乎逻辑的。
4. 关注条件似然
当 y n y_n yn 是已知的(如在监督学习中),我们更感兴趣的是条件似然 p ( x n ∣ y n ; θ g ) p(x_n | y_n; \theta_g) p(xn∣yn;θg) 和先验 p ( y n ; θ b ) p(y_n; \theta_b) p(yn;θb)。证据在处理无监督学习或 y n y_n yn 未观测到时才更为重要。
数学解释
1. 完整的概率表达式
联合概率 p ( y n , x n ; θ ) p(y_n, x_n; \theta) p(yn,xn;θ) 可以通过贝叶斯定理表达为:
p ( y n , x n ; θ ) = p ( y n ; θ b ) p ( x n ∣ y n ; θ g ) p(y_n, x_n; \theta) = p(y_n; \theta_b) \, p(x_n | y_n; \theta_g) p(yn,xn;θ)=p(yn;θb)p(xn∣yn;θg)
我们的目标是最大化联合似然(或最小化 NLL),以便对 θ b \theta_b θb 和 θ g \theta_g θg 进行优化。
2. 证据在参数估计中的作用
当优化参数时,我们可以写出似然:
p ( x n ; θ ) = ∑ y p ( y ; θ b ) p ( x n ∣ y ; θ g ) p(x_n; \theta) = \sum_{y} p(y; \theta_b) \, p(x_n | y; \theta_g) p(xn;θ)=y∑p(y;θb)p(xn∣y;θg)
但当 y n y_n yn 是已知时,我们对 y n y_n yn 进行条件化,证据对于该数据点来说是一个常数。
3. 证据相对于参数的梯度
证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 相对于参数 θ \theta θ 的梯度是:
∇ θ p ( x n ; θ ) = ∇ θ ( ∑ y p ( y ; θ b ) p ( x n ∣ y ; θ g ) ) \nabla_\theta p(x_n; \theta) = \nabla_\theta \left( \sum_{y} p(y; \theta_b) \, p(x_n | y; \theta_g) \right) ∇θp(xn;θ)=∇θ(y∑p(y;θb)p(xn∣y;θg))
然而,当我们考虑一个特定的 y n y_n yn 时,涉及 y ≠ y n y \neq y_n y=yn 的项不会对观测到的数据点 ( x n , y n ) (x_n, y_n) (xn,yn) 的似然做出贡献。
直观的例子
考虑一个简单的二分类问题,类别为 y ∈ { 0 , 1 } y \in \{0, 1\} y∈{0,1}:
-
先验概率:
p ( y = 0 ; θ b ) = π 0 , p ( y = 1 ; θ b ) = π 1 p(y = 0; \theta_b) = \pi_0, \quad p(y = 1; \theta_b) = \pi_1 p(y=0;θb)=π0,p(y=1;θb)=π1
-
似然:
p ( x ∣ y = 0 ; θ g ) , p ( x ∣ y = 1 ; θ g ) p(x | y = 0; \theta_g), \quad p(x | y = 1; \theta_g) p(x∣y=0;θg),p(x∣y=1;θg)
-
证据:
p ( x ; θ ) = π 0 p ( x ∣ y = 0 ; θ g ) + π 1 p ( x ∣ y = 1 ; θ g ) p(x; \theta) = \pi_0 \, p(x | y = 0; \theta_g) + \pi_1 \, p(x | y = 1; \theta_g) p(x;θ)=π0p(x∣y=0;θg)+π1p(x∣y=1;θg)
当我们观察到 y n y_n yn 时,证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 是对两个类别的求和,但只有一个项对应于观察到的 y n y_n yn。另一个项不会对观察到的数据点的似然做出贡献。
贝叶斯视角
在贝叶斯推断中,当计算参数 θ \theta θ 的后验分布时,证据起到标准化常数的作用:
p ( θ ∣ D ) = p ( D ∣ θ ) p ( θ ) p ( D ) p(\theta | \mathcal{D}) = \frac{p(\mathcal{D} | \theta) \, p(\theta)}{p(\mathcal{D})} p(θ∣D)=p(D)p(D∣θ)p(θ)
其中:
- p ( D ∣ θ ) p(\mathcal{D} | \theta) p(D∣θ):数据在给定参数下的似然。
- p ( θ ) p(\theta) p(θ):参数的先验。
- p ( D ) p(\mathcal{D}) p(D):证据(边缘似然)。
然而,在最大化后验时,证据 p ( D ) p(\mathcal{D}) p(D) 不依赖于 θ \theta θ,因此对优化没有影响。
最大化条件似然
当我们已经观察到标签 y n y_n yn 时,我们可以直接最大化条件似然 p ( x n ∣ y n ; θ g ) p(x_n | y_n; \theta_g) p(xn∣yn;θg) 以进行参数估计:
NLL conditional ( θ g ) = − ∑ n = 1 N D log p ( x n ∣ y n ; θ g ) \text{NLL}_{\text{conditional}}(\theta_g) = - \sum_{n=1}^{N_D} \log p(x_n | y_n; \theta_g) NLLconditional(θg)=−n=1∑NDlogp(xn∣yn;θg)
同样,对于先验参数 θ b \theta_b θb,我们可以最大化:
NLL prior ( θ b ) = − ∑ n = 1 N D log p ( y n ; θ b ) \text{NLL}_{\text{prior}}(\theta_b) = - \sum_{n=1}^{N_D} \log p(y_n; \theta_b) NLLprior(θb)=−n=1∑NDlogp(yn;θb)
通过专注于这些项,我们有效地最大化了给定模型参数下的观测数据的似然,而不需要多余的计算开销。
另一种视角:判别模型与生成模型
- 生成模型:建模联合分布 p ( y , x ; θ ) p(y, x; \theta) p(y,x;θ),并可以生成新的数据点。
- 判别模型:直接建模条件分布 p ( y ∣ x ; θ ) p(y | x; \theta) p(y∣x;θ),主要关注分类任务。
在判别训练中,我们经常最大化条件似然:
NLL discriminative ( θ ) = − ∑ n = 1 N D log p ( y n ∣ x n ; θ ) \text{NLL}_{\text{discriminative}}(\theta) = - \sum_{n=1}^{N_D} \log p(y_n | x_n; \theta) NLLdiscriminative(θ)=−n=1∑NDlogp(yn∣xn;θ)
在这种情况下,证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 作为标准化部分,但在使用 softmax 函数或逻辑回归时会在对数似然中相互抵消。
实际考虑
1. 计算效率
在 NLL 中包含证据将需要额外的计算,而这些计算对监督学习任务中的 θ \theta θ 的梯度没有贡献。
2. 优化的重点
我们的目标是调整 θ b \theta_b θb 和 θ g \theta_g θg,以最大化观察数据 ( x n , y n ) (x_n, y_n) (xn,yn) 的似然。证据对于这一过程没有额外的信息贡献。
3. 在无监督学习中的证据
在无监督学习或模型中 y n y_n yn 未观察到时,证据变得至关重要,因为它涉及对所有可能 y y y 的积分。在这种情况下,我们需要考虑 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 以进行参数估计。
数学上的解释
让我们考虑 NLL 相对于参数 θ \theta θ 的梯度:
∇ θ NLL ( θ ) = − ∑ n = 1 N D ∇ θ log p ( y n ; θ b ) + ∇ θ log p ( x n ∣ y n ; θ g ) \nabla_\theta \text{NLL}(\theta) = - \sum_{n=1}^{N_D} \nabla_\theta \log p(y_n; \theta_b) + \nabla_\theta \log p(x_n | y_n; \theta_g) ∇θNLL(θ)=−n=1∑ND∇θlogp(yn;θb)+∇θlogp(xn∣yn;θg)
由于 p ( x n ; θ ) p(x_n; \theta) p(xn;θ) 不依赖于 y n y_n yn,其相对于 θ \theta θ 的梯度不会对观测到的 y n y_n yn 相关联的参数产生贡献。
结论
- 忽略证据:我们在 NLL 计算中忽略证据 p ( x n ; θ ) p(x_n; \theta) p(xn;θ),因为它不依赖于观测到的标签 y n y_n yn,也不会影响监督学习中的 θ \theta θ 优化。
- 关注相关项:通过只考虑 p ( y n ; θ b ) p(y_n; \theta_b) p(yn;θb) 和 p ( x n ∣ y n ; θ g ) p(x_n | y_n; \theta_g) p(xn∣yn;θg),我们集中于直接影响观测数据似然和参数估计的项。
- 计算效率:排除证据减少了计算复杂性,而不影响参数估计过程。
总结
- 负对数似然:用于通过最大化观测数据的似然来估计参数。
- 似然和先验:直接参与计算观测数据点和标签的概率。
- 证据:作为一个标准化常数,它与观测到的标签无关,因此不会影响监督学习中的参数优化。
- 参数估计:重点在于最大化 θ b \theta_b θb 和 θ g \theta_g θg 下的似然,这些参数直接参与 p ( y n ; θ b ) p(y_n; \theta_b) p(yn;θb) 和 p ( x n ∣ y n ; θ g ) p(x_n | y_n; \theta_g) p(xn∣yn;θg)。
附加说明
- 何时考虑证据:在贝叶斯模型选择或模型比较时,证据(边缘似然)变得重要,因为它会惩罚模型复杂性并有助于防止过拟合。
- 期望最大化(EM)算法:在 y n y_n yn 未观测到(潜变量)的情况下,EM 算法用于参数估计,证据在期望步骤中起到作用。
参考文献
- Murphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press.
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
- Hastie, T., Tibshirani, R., & Friedman, J. (2009). The Elements of Statistical Learning. Springer.