栏目二 · 损失函数

损失函数:模型的“成绩表”

模型输出和真实答案差多少,由损失函数(Loss)来打分。 分数越低越好,优化器就朝着“让分数更低”的方向更新参数。选错损失,模型会学偏。

怎么选?先看任务类型

任务输出形式常用损失
回归(预测数值)连续实数MSE MAE
二分类0 / 1 概率BCE Hinge
多分类多类概率交叉熵
排序 / 对比样本间相对顺序Triplet Hinge

回归损失:MSE 与 MAE

设预测值 ŷ,真实值 y,误差 e = y − ŷ:

均方误差 MSE(Mean Squared Error) L = (1/n) Σ (y − ŷ)²
平均绝对误差 MAE(Mean Absolute Error) L = (1/n) Σ |y − ŷ|
区别:MSE 对大误差“惩罚更重”(平方放大),所以更怕异常值,但梯度更稳定; MAE 对所有误差一视同仁,更鲁棒但接近 0 时梯度恒定、收敛慢。

分类损失:交叉熵

二分类(真实标签 y∈{0,1},预测概率 p∈(0,1)):

二元交叉熵 BCE(Binary Cross-Entropy) L = −[ y·log(p) + (1−y)·log(1−p) ]

多分类(类别概率向量 ŷ,真实 one-hot 向量 y):

交叉熵 Cross-Entropy L = − Σ y_c · log(ŷ_c)
交叉熵衡量“预测概率分布”与“真实分布”的差距。预测越准(p→1 且 y=1),损失越接近 0。 实践中常配合 Softmax / Sigmoid 输出概率后使用。

可视化:误差 → 损失曲线

拖动滑块改变“误差 e”,观察不同损失函数如何随误差惩罚。MSE 的曲线是抛物线(大误差陡升),MAE 是 V 形直线。

📈 损失函数曲线(横轴:误差 e = y − ŷ)

竖线表示当前误差 e 对应的位置;圆点表示当前损失值。

小结:怎么挑损失

经验:分类任务别直接拿 MSE 当损失(梯度与概率语义不匹配); 回归任务别硬套交叉熵。任务和损失要“配对”。