最小化负对数似然(Negative Log-Likelihood, NLL)能够逼近真实数据分布的数学原理,核心在于 最大似然估计(Maximum Likelihood Estimation, MLE) 和 Kullback-Leibler (KL) 散度,这两者紧密相关。下面通过最大似然估计的原理及其与 KL 散度的关系,解释为什么最小化负对数似然能够逼近真实数据分布。
1. 最大似然估计(MLE)的数学原理
最大似然估计的目标是找到一组模型参数,使得模型生成的样本与观测数据的分布尽可能接近。假设我们有一个模型分布 pmodel(x∣θ)p_{\text{model}}(x|\theta)pmodel(x∣θ),它取决于参数 θ\thetaθ,我们想通过已有的训练数据来估计最佳的 θ\thetaθ。
似然函数:
给定一组观测数据 x1,x2,…,xnx_1, x_2, \dots, x_nx1,x2,…,xn,模型的 似然函数 是:
L(θ)=∏i=1npmodel(xi∣θ)
L(\theta) = \prod_{i=1}^{n} p_{\text{model}}(x_i | \theta)
L(θ)=i=1∏npmodel(xi∣θ)
这表示在参数 θ\thetaθ 下,所有观测数据出现的联合概率。
对数似然函数:
为了方便计算,我们通常使用 对数似然函数,将上式取对数:
logL(θ)=∑i=1nlogpmodel(xi∣θ)
\log L(\theta) = \sum_{i=1}^{n} \log p_{\text{model}}(x_i | \theta)
logL(θ)=i=1∑nlogpmodel(xi∣θ)
对数的好处是,它将连乘变成了连加,使得计算更加简便。
最大化对数似然:
最大似然估计的目标是通过选择 θ\thetaθ,最大化对数似然函数:
θ∗=argmaxθ∑i=1nlogpmodel(xi∣θ)
\theta^* = \arg \max_{\theta} \sum_{i=1}^{n} \log p_{\text{model}}(x_i | \theta)
θ∗=argθmaxi=1∑nlogpmodel(xi∣θ)
通过最大化这个对数似然,我们就能找到最可能生成这些观测数据的参数 θ∗\theta^*θ∗,使得模型分布 pmodel(x∣θ∗)p_{\text{model}}(x|\theta^*)pmodel(x∣θ∗) 尽可能接近真实数据分布 pdata(x)p_{\text{data}}(x)pdata(x)。
2. 负对数似然与最大化对数似然
最小化负对数似然(NLL)与最大化对数似然是等价的。
- 对数似然函数 是 logpmodel(x∣θ)\log p_{\text{model}}(x|\theta)logpmodel(x∣θ) 的和。
- 负对数似然 是对数似然函数的负数,因此最小化负对数似然等价于最大化对数似然:
NLL=−∑i=1nlogpmodel(xi∣θ) \text{NLL} = - \sum_{i=1}^{n} \log p_{\text{model}}(x_i | \theta) NLL=−i=1∑nlogpmodel(xi∣θ)
通过最小化 NLL,优化算法会找到最佳参数 θ∗\theta^*θ∗,使得模型生成的分布与观测数据的分布最接近。
3. KL 散度与逼近真实分布
KL 散度 是衡量两个概率分布之间差异的一种方法,它可以描述模型分布 pmodel(x∣θ)p_{\text{model}}(x|\theta)pmodel(x∣θ) 与真实数据分布 pdata(x)p_{\text{data}}(x)pdata(x) 之间的差异。
KL 散度的定义如下:
DKL(pdata∥pmodel)=∑xpdata(x)logpdata(x)pmodel(x∣θ)
D_{\text{KL}}(p_{\text{data}} \parallel p_{\text{model}}) = \sum_{x} p_{\text{data}}(x) \log \frac{p_{\text{data}}(x)}{p_{\text{model}}(x|\theta)}
DKL(pdata∥pmodel)=x∑pdata(x)logpmodel(x∣θ)pdata(x)
可以看出,KL 散度表示真实数据分布与模型分布之间的相对熵。我们的目标是最小化这个差异,即找到最接近真实分布的模型。
将 KL 散度展开,可以得到:
DKL(pdata∥pmodel)=∑xpdata(x)logpdata(x)−∑xpdata(x)logpmodel(x∣θ) D_{\text{KL}}(p_{\text{data}} \parallel p_{\text{model}}) = \sum_{x} p_{\text{data}}(x) \log p_{\text{data}}(x) - \sum_{x} p_{\text{data}}(x) \log p_{\text{model}}(x|\theta) DKL(pdata∥pmodel)=x∑pdata(x)logpdata(x)−x∑pdata(x)logpmodel(x∣θ)
第一项是与 θ\thetaθ 无关的常数,因为它只依赖于真实数据分布 pdata(x)p_{\text{data}}(x)pdata(x)。因此,最小化 KL 散度等价于最大化对数似然:
θ∗=argmaxθ∑xpdata(x)logpmodel(x∣θ) \theta^* = \arg \max_{\theta} \sum_{x} p_{\text{data}}(x) \log p_{\text{model}}(x|\theta) θ∗=argθmaxx∑pdata(x)logpmodel(x∣θ)
这就是最大似然估计的本质,也是为什么 最小化负对数似然 能够让模型分布 pmodel(x∣θ)p_{\text{model}}(x|\theta)pmodel(x∣θ) 逼近真实数据分布 pdata(x)p_{\text{data}}(x)pdata(x) 的原因。
4. 数学总结
- 最大似然估计(MLE):最大似然估计通过最大化观测数据在模型分布下的对数概率,找到最接近真实数据分布的模型参数。
- 负对数似然(NLL):负对数似然是对数似然的相反数,因此最小化 NLL 等价于最大化似然。
- KL 散度:最小化 KL 散度可以最小化模型分布与真实数据分布的差异,而最大似然估计就是最小化 KL 散度的一个实现方式。
因此,通过最小化负对数似然,我们等价于在最小化模型分布和真实数据分布之间的 KL 散度,从而让模型更好地逼近真实数据分布。