损失函数对比:MSE / 交叉熵 / Hinge / Focal
同一道题,不同的损失函数会给出截然不同的“扣分标准”。这里固定一个正样本(真实标签 y=+1),横轴是模型打出的分数 z(越大越自信地判它为正),纵轴是各损失要扣的分。重点看左边“自信地答错”那一带:交叉熵会把分数压向无穷大,惩罚极重;Hinge 只在间隔内线性收一点;而 MSE(作用在概率上)几乎封顶在 1,对自信的错误近乎无动于衷;Focal 则反过来——它把“已经轻松分对”的样本权重压下去,好把注意力留给难样本。在图上左右拖动那条竖线,读四个损失值。
真实标签 y=+1,预测概率 p=σ(z)。拖动竖线选一个分数 z:左边是“自信答错”区(z≪0,p 很小),右边是“自信答对”区(z≫0,p→1)。看四条曲线在竖线上的高度差。
损失 ℓ(z) · 横轴是分数 z
竖线处 z=−2.5 的损失值
预测概率 p = σ(z) = —
交叉熵 −log p—
Hinge max(0,1−z)—
MSE (1−p)²—
Focal −(1−p)γ·log p—
交叉熵:答错重罚
p→0 时 −log p→∞。自信地答错会被狠狠惩罚,逼模型别犯笃定的错误。
MSE:对错误麻木
(1−p)² 最多≈1。哪怕自信答错,损失也封顶,梯度还很小——这就是分类一般不用 MSE 的原因。
Focal:压低易样本
乘上 (1−p)γ,把“已经分对”的简单样本权重压下去,让难样本主导训练(目标检测常用)。