【极大似然估计/最大化后验】为什么逻辑回归要使用交叉熵损失函数

问题:在逻辑回归(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):

ln⁡L(θ)=∑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=arg⁡max⁡θ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=arg⁡max⁡θP(θ∣X)=arg⁡max⁡θ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(θ)

为了方便计算,我们对上式取对数,将连乘变为相加:

arg⁡max⁡θ(ln⁡P(X∣θ)+ln⁡P(θ))\arg\max_{\theta} (\ln P(X|\theta) + \ln P(\theta))argθmax(lnP(X∣θ)+lnP(θ))

对比对数形式的公式可以看出,MAP 本质上就是 MLE 加上了一个先验项 ln⁡P(θ)\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=−ln⁡P(Y∣X,w)\text{Loss} = -\ln P(Y|X, w)Loss=−lnP(Y∣X,w)。它直接推导出模型的基础数据损失函数
  • MAP(最大后验估计) :结合数据的似然与参数的先验概率。
    推导公式:Loss=−ln⁡P(Y∣X,w)−ln⁡P(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 进行组合。例如,假设目标是回归任务:

  1. 岭回归 (Ridge Regression)
  • 概率视角:似然是高斯分布,先验是高斯分布 →\to→ 采用 MAP 估计。
  • 损失函数:MSE+L2 正则化\text{MSE} + \text{L2 正则化}MSE+L2 正则化。
  1. Lasso 回归
  • 概率视角:似然是高斯分布,先验是拉普拉斯分布 →\to→ 采用 MAP 估计。
  • 损失函数:MSE+L1 正则化\text{MSE} + \text{L1 正则化}MSE+L1 正则化。
相关推荐
郝学胜-神的一滴2 小时前
深度学习入门全解析:从核心概念到实战基础 | 技术研讨会精华总结
人工智能·python·深度学习·算法·cnn
梯度下降中2 小时前
CNN原理精讲
人工智能·算法·机器学习
Ivanqhz2 小时前
活跃范围重写(Live Range Rewriting)
开发语言·c++·后端·算法·rust
薛不痒2 小时前
大模型(2):大模型推理文本分类
人工智能·python·深度学习·机器学习
xiaoye-duck2 小时前
《算法题讲解指南:优选算法-链表》--51.两数相加,52.两两交换链表中的节点
数据结构·算法·链表
Cosolar2 小时前
阿里CoPaw进阶使用手册:从新手到高手的完整指南
人工智能·后端·算法
放下华子我只抽RuiKe52 小时前
机器学习全景指南-进阶篇——解决分类问题的逻辑回归
人工智能·机器学习·分类·逻辑回归·文心一言·ai编程·智能体
松小白song2 小时前
机器人路径规划算法之Dijkstra算法详解+MATLAB代码实现
前端·javascript·算法
qq_263_tohua2 小时前
第107期 刷算法题
算法