损失函数:如何帮助模型学会"自省"?
一、损失函数的作用与定义
1. 损失函数是什么
损失函数是一把衡量模型学习效果的尺子。训练模型的过程,实际就是优化损失函数的过程。有了损失函数,模型才能判断自己在学习过程中是否有偏差以及偏差有多大,从而做到"自省"。[pdf_11]
2. 损失函数的数学定义
假设真实函数为 ,模型拟合出来的函数为 ,两者之间存在误差 :
-
平方是为了保证误差为正值,方便后续计算 -
也可用绝对值形式,但平方和更便于后续梯度更新[pdf_11]
3. 损失函数 vs 代价函数
|
|
|
|
|---|---|---|
| 损失函数(loss function) |
|
|
| 代价函数(cost function) |
|
★实际应用中并不严格区分两者,可以混用。[pdf_11]
二、过拟合与欠拟合
|
|
|
|
|---|---|---|
| 欠拟合 |
|
|
| 过拟合 |
|
|
| 适度拟合 |
|
|
★越复杂的函数需要越多的计算资源和时间消耗,但不能一味追求简单,否则会欠拟合。[pdf_11]
三、常见损失函数详解
1. 0-1 损失函数(分类任务)
最简单的损失函数,用于判断类型问题:
其中 为真实类别, 为模型预测类别。
局限性:使用频率非常少。因为模型训练中常用的梯度更新和反向传播需要可求导的损失函数,而 0-1 损失函数的导数值为 0(常数的导数为 0)。[pdf_11]
2. 平方损失函数(回归任务)
-
可求导的损失函数中最简单的一种 -
直接度量模型拟合结果和真实结果之间的距离 -
有时会加入 系数,便于求导时与平方项系数约掉 -
适用场景:手写分类、花卉识别等简单问题[pdf_11]
3. 均方误差损失函数 / MSE / L2 损失(回归任务)
回归问题中最常用的损失函数:
其中 为目标值向量, 为预测值向量。
★平方损失函数与 MSE 本质上等价,区别在于 MSE 对全部样本误差做了平均(除以 n)。[pdf_11]
4. 平均绝对误差损失函数 / MAE / L1 损失(回归任务)
另一种常用于回归问题的损失函数:
度量真实值和预测值差异的绝对值之和。[pdf_11]
5. 交叉熵损失函数(分类任务)
5.1 信息熵背景
熵最初是物理学中表示系统混乱程度/无序程度的术语,系统越混乱熵越大。香农将其引申到信道通信中,形成信息熵:
其中 为随机变量, 为输出概率函数。变量不确定性越大,熵越大,搞清楚变量所需信息量越大。[pdf_11]
5.2 交叉熵损失函数公式
其中 表示真实概率分布, 表示预测概率分布。通过不断缩小两个概率分布的误差,使预测概率分布尽可能接近真实概率分布。[pdf_11]
5.3 Softmax 损失函数
Softmax 将输入数值映射为 0-1 之间的实数并归一化保证和为 1:
将交叉熵中的预测概率分布 替换为 softmax 形式后,得到 softmax 损失函数(softmax with cross-entropy loss),是交叉熵损失函数的一个特例。[pdf_11]
四、损失函数总结表
|
|
|
|
|
|---|---|---|---|
| 0-1 损失 |
|
|
|
| 平方损失 |
|
|
|
| MSE(L2 损失) |
|
|
|
| MAE(L1 损失) |
|
|
|
| 交叉熵损失 |
|
|
|
| Softmax 损失 |
|
|
|
[pdf_11]
五、核心要点总结
-
**损失函数是模型学习的"尺子"**,训练模型就是优化损失函数的过程。 -
过拟合 vs 欠拟合:过拟合泛化能力差,欠拟合没有充分学习到数据规律,适度拟合才是理想状态。 -
0-1 损失函数因不可导,在实际训练中几乎不使用。 -
回归任务常用 MSE 和 MAE,平方损失是 MSE 的简化版本。 -
分类任务常用交叉熵损失函数,softmax 损失是其特例。 -
损失函数的选择地位非常重要,甚至比得上模型网络设计——没有好的损失函数做指导,一切功夫都白做。[pdf_11]
六、每课一练
问题:损失函数的值越小越好么?
解答:
不是。 损失函数的值过小可能会出现以下问题:
-
可能导致过拟合,降低模型的泛化能力 -
可能降低模型的鲁棒性
作者补充:损失函数越小模型鲁棒性越好,但需要添加结构损失函数(正则化) 来防止过拟合。[pdf_11]
七、小结
-
损失函数的作用:衡量模型预测与真实值之间的差距,帮助模型"自省"。 -
过拟合与欠拟合:过拟合太复杂泛化差,欠拟合太简单学不到规律,适度拟合最好。 -
分类损失函数:0-1 损失(不可导,极少用)、交叉熵损失、softmax 损失。 -
回归损失函数:平方损失、MSE(L2)、MAE(L1)。 -
交叉熵损失:衡量真实概率分布与预测概率分布的差异,是分类任务的标准选择。 -
损失函数不等于越小越好:过小的损失值可能意味着过拟合,需要正则化来平衡。 -
核心原则:损失函数的选择是模型设计的核心环节,直接决定模型的学习效果。

