人工智能综合项目开发12——模型优化与调优——损失函数
1、什么是损失函数?
预测值和真实值的差值,想让预测值无限接近于真实值,需要将差值降到最低,就是损失函数(一种特殊的目标函数)降到最低。
2、损失函数在什么时候用,起什么作用?
1)训练过程中:预测后,根据损失函数回去调参数,直到损失函数降到最低。每当模型根据输入数据做出一次预测后,损失函数就会立即被调用来计算预测值与真实值之间的差距。
2)训练完后:可以辅助评估模型好坏
作用:
1. 量化误差,提供优化目标
这是最根本的作用。模型需要知道“好”与“坏”的明确标准。损失函数将一个抽象的“预测不准”变成了一个具体的、可计算的数字。没有这个数字,模型就不知道该如何改进。
2. 指引模型优化的方向(为梯度下降提供梯度)
这是损失函数在训练中的核心机制。优化算法(如梯度下降)通过计算损失函数相对于模型参数的梯度(即导数)来知道:
-
方向:参数应该向哪个方向调整才能让损失减小。
-
幅度:参数应该调整多少。
3、常见损失函数?
| 损失函数 | 主要应用场景 | 核心特点 |
|---|---|---|
| 均方误差(MSE) | 回归 | 对异常值敏感,梯度稳定,最常用 |
| 平均绝对误差(MAE) | 回归 | 对异常值稳健,在零点梯度不连续 |
| Huber Loss | 回归 | MSE和MAE的折中,兼具两者优点 |
| 交叉熵损失 | 分类 | 分类任务标配,惩罚错误置信,梯度有效 |
| 合页损失 | 分类(SVM) | 追求最大边界分类,用于SVM |
简单选择原则:
-
回归:默认尝试 MSE。如果数据有较多异常值,换用 MAE 或 Huber Loss。
-
二分类/多分类:几乎总是使用 交叉熵损失。
-
多标签分类:使用 二分类交叉熵损失 的变体(对每个类别独立计算)。
-
训练词向量、人脸识别:考虑使用 对比损失 或 三元组损失。
参考文章:
机器学习常见的损失函数以及何时使用它们 - 知乎
损失函数(lossfunction)的全面介绍(简单易懂版)-CSDN博客
损失函数在机器学习和深度学习中的关键作用 - 知乎
代价函数,损失函数,目标函数区别 - 知乎
