损失函数:在深度学习中,损失函数是用来衡量模型参数的质量的函数,比较网络输出和真实输出的差异。
1.分类任务的损失函数
分类任务中使用最多的是交叉熵损失函数
1.1多分类任务
在多分类任务重通常使用softmax将logits转换为概率的形式,所以多分类的交叉熵损失也叫做softmax损失,它的计算方式是:
其中,y是样本x属于某一个类别的真实概率,f(x)是样本属于某一个类别的预测分数,S是softmax函数,L用来衡量p,q之间差异性的损失结果。
2.回归任务的损失函数
2.1均方误差(MSE,L2损失)
均方差Mean Squared Reeoe(MSE)损失是机器学习、深度学习回归任务中最常用的一种损失函数,也称为 L2 Loss。
优点:
- 计算方便,逻辑清晰,衡量误差较准确
- 梯度随着误差增大或减小,收敛效果好
缺点:
- 对异常点会赋予较大的权重,如果异常点不属于考虑范围,是由于某种错误导致的,则此函数指导方向将出现偏差
2.2 .平均绝对值误差(MAE,L1损失)
优点:
- 对异常值具有较好鲁棒性
缺点:
- 梯度不变是个严重问题,即使对于很小的损失,梯度也很大,不利于模型收敛,常使用变化的学习率解决
2.3 Huber损失,平滑的平均绝对误差
MSE和MAE损失各自有有优缺点,MSE损失收敛快但容易受异常的影响,MAE对异常点更加稳定但收敛慢。huber loss 则是一种将 MSE 与 MAE 结合起来,取两者优点的损失函数,也被称作 Smooth Mean Absolute Error Loss 。其原理很简单,就是在误差接近 0 时使用 MSE,误差较大时使用 MAE。
Huber Loss 的特点
Huber Loss 结合了 MSE 和 MAE 损失,在误差接近 0 时使用 MSE,使损失函数可导并且梯度更加稳定;在误差较大时使用 MAE 可以降低 outlier 的影响,使训练对 outlier 更加健壮。缺点是需要额外地设置一个 δ 超参数。
参考