先抛出个问题:
二元分类任务里,为什么损失函数会和logits直接结合,而不是先通过sigmoid函数转换成概率?
在PyTorch中,BCEWithLogitsLoss
(二元交叉熵损失与logits结合)是一个将Sigmoid激活函数和二元交叉熵损失(BCE)合并计算的损失函数。其核心目的是在保证数值稳定性的前提下,直接处理模型输出的原始logits(未归一化的分数),而无需显式应用Sigmoid函数。这种设计背后有多个关键原因,涵盖数值稳定性、计算效率和梯度优化等方面。
一、什么是logits?
-
定义:
logits
是模型最后一层线性层的输出值,未经任何激活函数(如Sigmoid或Softmax)处理,其取值范围为(−∞,+∞)。- 在二分类任务中,模型最后一层通常输出1个logit值,表示样本属于正类的置信度。
- 在多标签分类中,模型输出多个logit值</