【机器学习】分类时,为什么不使用均方误差而是使用交叉熵作为损失函数

博客主要探讨了MSE和交叉熵在多分类场景下的应用差异。MSE对每个输出结果都很看重,其损失函数与错误分类有关;而交叉熵只看重正确分类结果,损失函数仅和分类正确的预测结果有关。在分类问题中,MSE对错误分类的调整不必要,回归问题用交叉熵也不合适。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MSE对于每一个输出的结果都非常看重而交叉熵只对正确分类的结果看重

当MSE和交叉熵同时应用到多分类场景下时,(标签的值为1时表示属于此分类,标签值为0时表示不属于此分类),**MSE对于每一个输出的结果都非常看重**,**而交叉熵只对正确分类的结果看重**。例如:在一个三分类模型中,模型的输出结果为(a,b,c),而真实的输出结果为(1,0,0),那么MSE与cross-entropy相对应的损失函数的值如下:
MSE:
在这里插入图片描述
cross-entropy:
在这里插入图片描述
从上述的公式可以看出,交叉熵的损失函数只和分类正确的预测结果有关系,而MSE的损失函数还和错误的分类有关系,该分类函数除了让正确的分类尽量变大,还会让错误的分类变得平均,但实际在分类问题中这个调整是没有必要的。但是对于回归问题来说,这样的考虑就显得很重要了。所以,回归问题熵使用交叉上并不合适。

reference

来自这里

### 交叉熵损失函数在基础分类问题中的应用 #### 背景介绍 在机器学习尤其是深度学习领域,分类问题是核心任务之一。为了评估模型预测的结果与实际标签之间的差距,需要引入合适的损失函数来指导优化过程。 #### 选择原因 交叉熵损失被广泛应用于多类别的分类问题中,因为其能够有效地衡量预测概率分布和真实标签之间差异的程度[^2]。具体来说: - **对数似然解释**:当考虑最大似然估计,最小化负对数似然是等价于最大化正确分类的可能性。而二元或多类别情况下的交叉熵正是这种形式的一个特例。 - **梯度特性良好**:相比于其他类型的损失函数(如均方误差),交叉熵提供了更平滑且更有利的梯度下降路径,有助于加速收敛并减少陷入局部最优的风险[^5]。 #### 数学表达式 对于一个具有\( C \)个类别的分类器而言,如果给定输入样本的真实标签为 \( y_i \),对应的预测向量记作 \( p(y|x;\theta)_i \),那么单一样本上的交叉熵定义如下: \[ L_{CE}(y, p)= -\sum _{c=1}^{C}{I}\left({y=c}\right)\log {p(c)} \] 其中 \( I(\cdot ) \) 是指示函数,表示只有当条件成立取值为1;否则为0。 #### 实现代码示例 下面给出一段简单的Python代码片段用于计算二分类情况下的一批数据的平均交叉熵损失: ```python import numpy as np def binary_cross_entropy_loss(labels, predictions): epsilon = 1e-12 # 防止 log(0) predictions = np.clip(predictions, epsilon, 1. - epsilon) N = labels.shape[0] ce_loss = -np.sum((labels * np.log(predictions)) + ((1-labels)*np.log(1-predictions))) / N return ce_loss ``` #### 主要优势 采用交叉熵作为损失函数的主要优点在于它可以促使模型输出更加接近真实的分布模式,并且通过直接针对概率空间进行操作从而提高了泛化能力。此外,由于其良好的数值稳定性和易于求导的特点,在实践中表现出色[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值