You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何回归损失函数(MSE/MAE)在我的多标签分类模型中表现优异?

问题原因分析

结合多标签分类的任务特性、损失函数适配性,以及你描述的现象,核心原因集中在损失函数与标签格式、模型输出层设置不匹配,具体分以下几点:

  • 输出层激活函数与交叉熵不兼容
    多标签分类的标准配置是输出层用sigmoid激活(让每个输出值落在0-1区间,代表样本属于该类的概率),搭配binary crossentropy损失。如果你的模型输出层用了默认的线性激活(输出可以是任意实数),直接用binary crossentropy会导致数值不稳定:比如输出过大时,交叉熵的计算会出现极端值,模型无法有效收敛,最终损失高、精度差。
    而MSE/MAE是回归损失,不要求输出是概率分布,它会直接让模型输出趋近于标签的0/1值,此时用简单的阈值判断(比如输出>0.5判定为该类)就能得到高精度。

  • 标签格式与交叉熵的适配错误
    如果你把单分类任务误当成多标签处理(比如每个样本只对应一种击球类型,标签是单one-hot形式,如[1,0,0]),此时用binary crossentropy会让模型学习每个标签的独立概率,而非互斥的分类分布,导致训练目标偏离;而用categorical crossentropy需要搭配softmax激活,如果激活函数不对,同样会训练失效。
    这种情况下用MSE/MAE,模型会直接拟合one-hot标签的向量值,输出趋近于0或1,阈值判断后精度自然很高,但这本质是用回归的方式“绕开”了分类损失的适配问题。

  • 精度计算逻辑的隐性匹配
    你提到的“精度”如果是基于输出与标签的数值误差阈值(比如输出和标签的差值小于0.1就算正确),这种计算逻辑更适配MSE/MAE的训练目标——模型会尽可能让输出接近标签值,因此精度表现好。而交叉熵训练下,模型输出是概率值,需要用多标签专属的精度指标(如汉明精度、子集精度)来评估,若仍用数值误差逻辑计算,会出现损失与精度不匹配的情况,但你描述交叉熵时损失和精度都差,所以核心还是前两点。

内容的提问来源于stack exchange,提问作者Ali koteich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:50:31