一、代价函数和损失函数的区别
代价函数:
-
代价函数是定义在整个训练集上的函数,用于衡量模型预测值和实际标签之间的差异;
-
代价函数目标一般是最小化模型在整个训练集上的预测误差;
-
代价函数通常是一个关于模型参数(权重和偏置)的函数;
-
在训练过程中,优化算法通过最小化代价函数来调整模型参数……
损失函数:
-
损失函数是定义在单个样本或者样本批次上的函数;
-
目标是衡量单个样本或者样本批次的预测误差,会反应模型在当前样本上的拟合程度
-
代价函数通常是损失函数的平均值或总和,用于评估模型在训练集上的整体性能;
-
在训练过程中,优化算法根据损失函数的梯度信息来调整模型参数……
二、对常见损失函数分类
(1)用于回归的损失函数:绝对值损失函数(MAE)、平方损失函数/均方误差损失函数(MSE)
(2)用于分类的损失函数:
1.0-1损失函数:感知机模型
2.对数损失函数:逻辑回归,可由最大似然估计推导
3.指数损失函数:在adaboost中使用
4.合页损失函数:感知机模型
5.交叉熵损失函数:分类任务
(3)用于缓解类别不平衡的损失函数
1.Focal Loss
2.Dice Loss
三、损失函数理解
1.绝对值损失函数(MAE)
$$
L\left(y, y^{\prime}\right)=\left|y-y^{\prime}\right|
$$
绝对值损失函数计算预测值与实际值之间的绝对差值,并将其作为损失值。它不考虑预测值和实际值之间的差异的方向,只关注它们的绝对差值。
2.均方误差损失函数/平方损失函数(MSE)
$$
L\left(y, y^{\prime}\right)=\left(y-y^{\prime}\right)^{\wedge} 2
$$
平方损失函数计算预测值与实际值之间的差异的平方,并将其作为损失值。平方损失函数对预测值和实际值之间的差异进行放大,较大的差异会对损失函数产生更大的影响。MSE经常用于回归问题。
MAE和MSE之间的区别:
MSE收敛速度快;MAE对于对于离群点、异常点等更加鲁棒。
四、代价函数、损失函数和目标函数之间的关系
目标函数是需要最小化的一个函数,本质上是为了衡量模型预测能力的好坏。
代价函数:针对整个训练集来说的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均
损失函数:定义在单个训练样本上的,对比的是单个样本的误差
损失函数或代价函数结果越小越好,说明预测值和真实值之间的差距越小,模型预测能力越强。
代价函数和目标函数之间的关系:
目标函数(最终需要优化的函数) = 代价函数 (经验风险)+ 结构风险(正则化项)
isfj esfp entp
五、平方损失函数和交叉熵损失函数的理解
分类问题:使用交叉熵。不用平方损失函数是因为可能会出现梯度消失的情况。
平方损失函数,梯度和激活函数的梯度成正比,二分类中激活函数我们采用sigmoid,可能会有饱和区,分类结果会导致激活函数的梯度消失。
交叉熵函数,预测值-真实值的差值成正比,如果差值较大,更新就快,差值较小,更新就慢,这是符合我们期望的。
分类问题中,交叉熵函数可以避免梯度消失,回归问题中,使用平方损失函数避免交叉熵只能计算正确类别的损失,而忽略了错误类别。