问题:在逻辑回归(Logistic Regression)中,我们通常使用交叉熵(Cross-Entropy)作为损失函数,那么为什么逻辑回归要使用交叉熵损失函数?
原理:伯努利分布与极大似然估计 (MLE)
在二分类问题中,给定输入特征 xxx,输出真实标签 y∈{0,1}y \in \{0, 1\}y∈{0,1}。从概率论视角来看,我们可以假设给定 xxx 时,yyy 的条件概率服从伯努利分布(0-1分布)。
逻辑回归模型的输出 y^\hat{y}y^(通过 Sigmoid 函数映射)实际上代表了模型预测样本属于正类(y=1y=1y=1)的后验概率:
P(y=1∣x)=y^P(y=1|x) = \hat{y}P(y=1∣x)=y^
P(y=0∣x)=1−y^P(y=0|x) = 1 - \hat{y}P(y=0∣x)=1−y^
为了用一个统一的公式表达上述两种情况,可以将其合并写为概率质量函数:
P(y∣x)=y^y(1−y^)(1−y)P(y|x) = \hat{y}^y (1-\hat{y})^{(1-y)}P(y∣x)=y^y(1−y^)(1−y)
当 y=1y=1y=1 时,式子等于 y^\hat{y}y^;当 y=0y=0y=0 时,式子等于 1−y^1-\hat{y}1−y^。
具体分析
极大似然估计的核心思想是:寻找一组模型参数,使得观测到的样本数据真实发生的概率(联合概率)最大。
假设我们有 NNN 个独立同分布的训练样本 {(x1,y1),(x2,y2),...,(xN,yN)}\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\}{(x1,y1),(x2,y2),...,(xN,yN)}。整个数据集的似然函数(Likelihood Function)即为所有样本概率的乘积:
L(θ)=∏i=1NP(yi∣xi)=∏i=1Ny^iyi(1−y^i)(1−yi)L(\theta) = \prod_{i=1}^{N} P(y_i|x_i) = \prod_{i=1}^{N} \hat{y}_i^{y_i} (1-\hat{y}_i)^{(1-y_i)}L(θ)=i=1∏NP(yi∣xi)=i=1∏Ny^iyi(1−y^i)(1−yi)
为了方便求导和计算(将乘积转化为求和,且单调递增不改变极值点),我们对似然函数取自然对数,得到对数似然函数(Log-Likelihood):
lnL(θ)=∑i=1N[yiln(y^i)+(1−yi)ln(1−y^i)]\ln L(\theta) = \sum_{i=1}^{N} \left[ y_i \ln(\hat{y}_i) + (1-y_i) \ln(1-\hat{y}_i) \right]lnL(θ)=i=1∑N[yiln(y^i)+(1−yi)ln(1−y^i)]
在机器学习优化求解中,我们习惯于"最小化"损失函数。因此,我们将最大化对数似然函数,等价转化为最小化其相反数,即负对数似然(Negative Log-Likelihood):
Loss=−1N∑i=1N[yiln(y^i)+(1−yi)ln(1−y^i)]Loss = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \ln(\hat{y}_i) + (1-y_i) \ln(1-\hat{y}_i) \right]Loss=−N1i=1∑N[yiln(y^i)+(1−yi)ln(1−y^i)]
结论 :这个负对数似然函数,在数学形式上与信息论中的二元交叉熵(Binary Cross-Entropy)公式完全一致。因此,从概率论的视角来看,逻辑回归中最小化交叉熵损失,本质上就是在对服从伯努利分布的数据进行极大似然估计。
极大似然估计与最大化后验概率
贝叶斯公式
要从根本上理解 MLE 和 MAP 的区别,必须回到概率论的核心------贝叶斯公式。假设 θ\thetaθ 是我们需要估计的模型参数,XXX 是我们观测到的数据集,贝叶斯公式如下:
P(θ∣X)=P(X∣θ)P(θ)P(X)P(\theta|X) = \frac{P(X|\theta)P(\theta)}{P(X)}P(θ∣X)=P(X)P(X∣θ)P(θ)
- P(θ∣X)P(\theta|X)P(θ∣X):后验概率 (Posterior) 。在看到数据 XXX 之后,参数 θ\thetaθ 取某个值的概率。
- P(X∣θ)P(X|\theta)P(X∣θ):似然 (Likelihood) 。在假定参数为 θ\thetaθ 的前提下,观测到数据 XXX 的概率。
- P(θ)P(\theta)P(θ):先验概率 (Prior) 。在没有看到任何数据之前,我们根据"常识"或历史经验,认为参数 θ\thetaθ 应该服从的概率分布。
- P(X)P(X)P(X):边缘概率(证据)。对于特定的数据集来说,这是一个常数,在优化求最大值时可以忽略。
最大似然估计 (MLE)
MLE 的核心哲学是纯数据驱动 。它寻找的是让当前观测数据出现概率最大的参数 θ\thetaθ。
θMLE=argmaxθP(X∣θ)\theta_{MLE} = \arg\max_{\theta} P(X|\theta)θMLE=argθmaxP(X∣θ)
从贝叶斯的视角来看,MLE 隐式地做了一个极强的假设:参数 θ\thetaθ 的先验分布是均匀的 (即 P(θ)P(\theta)P(θ) 是一个常数)。这就意味着模型没有任何"成见"或"常识",完全听信于当前的数据。因此,当数据量极少时(如只抛了3次硬币),MLE 极易得出极端的结论。
最大后验概率估计 (MAP)
MAP 的核心哲学是数据结合常识 。它不仅考虑当前的数据,还要结合我们事先对参数的认知。它寻找的是在给定数据和先验知识下,最有可能的参数 θ\thetaθ。
θMAP=argmaxθP(θ∣X)=argmaxθP(X∣θ)P(θ)\theta_{MAP} = \arg\max_{\theta} P(\theta|X) = \arg\max_{\theta} P(X|\theta)P(\theta)θMAP=argθmaxP(θ∣X)=argθmaxP(X∣θ)P(θ)
为了方便计算,我们对上式取对数,将连乘变为相加:
argmaxθ(lnP(X∣θ)+lnP(θ))\arg\max_{\theta} (\ln P(X|\theta) + \ln P(\theta))argθmax(lnP(X∣θ)+lnP(θ))
对比对数形式的公式可以看出,MAP 本质上就是 MLE 加上了一个先验项 lnP(θ)\ln P(\theta)lnP(θ) 。
在抛硬币的例子中,即使 3 次全是正面导致似然 P(X∣θ)P(X|\theta)P(X∣θ) 在 θ=1\theta=1θ=1 时最大,但由于我们的先验常识 P(θ)P(\theta)P(θ) 认为"绝对不均匀的硬币极少见"(即 θ=1\theta=1θ=1 时的先验概率极低),MAP 会综合这两项,将最终的估计值往 0.5 的方向"拉回"。这就是先验知识对极端结果的修正。
- MLE(极大似然估计) :假设参数没有先验偏好,只最大化数据出现的概率。
推导公式:Loss=−lnP(Y∣X,w)\text{Loss} = -\ln P(Y|X, w)Loss=−lnP(Y∣X,w)。它直接推导出模型的基础数据损失函数。 - MAP(最大后验估计) :结合数据的似然与参数的先验概率。
推导公式:Loss=−lnP(Y∣X,w)−lnP(w)\text{Loss} = -\ln P(Y|X, w) - \ln P(w)Loss=−lnP(Y∣X,w)−lnP(w)。它推导出数据损失函数 + 正则化惩罚项。
基于 MLE 推导:
| 机器学习任务 | 概率论假设 | 损失函数 | 适用场景 |
|---|---|---|---|
| 二分类 | 伯努利分布 | 二元交叉熵 | 逻辑回归、二分类神经网络 |
| 多分类 | 分类分布 | 多分类交叉熵 | Softmax回归、多分类神经网络 |
| 回归 | 高斯分布 | 均方误差 | 标准线性回归 |
| 回归 | 拉普拉斯分布 | 平均绝对误差 | 鲁棒回归 |
正则化惩罚项(基于 MAP 的先验推导):
| 参数的先验假设 (P(w)P(w)P(w)) | 推导出的正则化项 (Regularization) | 核心效果 |
|---|---|---|
| 权重 www 服从 高斯分布 (Gaussian) | L2 正则化 (Ridge / 权重衰减) | 限制权重过大,模型更平滑,防止过拟合 |
| 权重 www 服从 拉普拉斯分布 (Laplace) | L1 正则化 (Lasso) | 促使权重矩阵稀疏化,可用于特征选择 |
MAP 下的完整目标函数
在实际工程中,我们通常是将上述 A 和 B 进行组合。例如,假设目标是回归任务:
- 岭回归 (Ridge Regression):
- 概率视角:似然是高斯分布,先验是高斯分布 →\to→ 采用 MAP 估计。
- 损失函数:MSE+L2 正则化\text{MSE} + \text{L2 正则化}MSE+L2 正则化。
- Lasso 回归:
- 概率视角:似然是高斯分布,先验是拉普拉斯分布 →\to→ 采用 MAP 估计。
- 损失函数:MSE+L1 正则化\text{MSE} + \text{L1 正则化}MSE+L1 正则化。