MIT深度学习-笔记:损失函数 Loss Function
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
损失函数 Loss Function
1.什么是损失函数 Loss Function?
损失(Loss)是衡量模型预测结果与真实结果之间差异的量化指标,可应用于:
-
优化目标:
通过最小化损失函数,模型能够调整其参数(权重和偏置),使得预测结果更接近真实结果。
-
反向传播:
使用梯度下降或其他优化算法来调整模型参数;损失函数是反向传播算法的核心。
-
模型评估:
评价模型性能的标准,通过监控损失函数的变化,可以判断模型是否在进步。
-
泛化能力:
合适的损失函数有助于模型学习到数据的一般规律,有助于提高模型的泛化能力,使其在未见过的数据上也能表现良好。
-
处理不同类型的问题:
不同的损失函数适用于不同类型的问题。例如,均方误差(MSE)适用于回归问题,交叉熵损失适用于分类问题。
-
正则化和约束:
正则化项,以防止过拟合。损失函数也可以设计成满足某些约束,如输出范围限制等。
-
平衡不同类别或样本:
处理不平衡数据集时,可通过调整损失函数来赋予权重,改善模型对这些类别或样本的识别能力。
2.常见损失函数分类
3.回归算法的损失函数
均方误差损失(Mean Squared Error Loss, MSE)计算预测值与真实值之间差异的平方的平均值。
-
优点:易于计算和求导,数学性质良好。
-
缺点:对异常值敏感,可能导致过拟合。
平均绝对误差损失(Mean Absolute Error Loss, MAE)计算预测值与真实值之间差异的绝对值的平均值。
-
优点:不受异常值的严重影响。
-
缺点:不如MSE平滑,可能导致收敛速度较慢。
MSE VS MAE
Huber损失(Huber Loss),结合了MSE和MAE的特点,较小的误差使用平方计算,对于较大的误差使用绝对值计算。
-
优点:对于异常值不敏感,适合带有异常值的数据集。
-
缺点:需要手动设定阈值,阈值的选择对模型性能有较大影响。
分位数损失(Quantile Loss)允许模型对不同分位数的预测误差赋予不同的权重,从而在预测中考虑不同置信水平的误差。 特别是当需要对预测结果的不同分位数(如中位数、四分位数等)进行建模。
-
优点:
适用于需要预测置信区间或对不同分位数有特定要求的场景。
相比于传统的MSE或MAE,分位数损失可以更好地捕捉到预测结果的不确定性。
-
缺点:
分位数损失函数相对于MSE或MAE来说,需要更多的调参来确定最佳的 γγ 值。
4.分类算法的损失函数
交叉熵损失(Cross Entropy Loss)衡量模型概率分布与真实标签的概率分布之间的差异。
交叉熵:它主要刻画的是实际输出(概率)与期望输出(概率)的距离;交叉熵的值越小,两个概率分布就越接近。
对应的算法类型:分类算法,尤其是多分类。
-
优点:
对于模型预测接近真实标签的情况有较低的损失,同时对于模型预测明显错误的情况有较高的惩罚。
-
缺点:
当预测概率接近于0时,损失函数的梯度会变得非常小,可能导致学习速度变慢。
Focal Loss解决类别不平衡问题,特别是在目标检测中,通过减少易分类样本的权重,使模型更专注于困难样本。
对应的算法类型:分类算法,特别是目标检测中的类别不平衡问题。
-
优点:
能够减少对易分类样本的关注,增加对难分类样本的关注,提高模型识别能力。
-
缺点:
需要调整额外的参数,增加了模型调参的复杂性。
流程管理范特西