最近做了一个关于位置预测的小项目。其中因为涉及回归问题,我用了huber损失函数,现在对回归损失函数做一个总结,以便加深理解
1. MSE和MAE的区别和优缺点
(1)简单来说,MSE计算简便,但MAE对异常点有更好的鲁棒性。如果训练数据被异常点所污染,那么MAE损失就更好用。举例说明见链接1,也可以从直观上来理解:MSE相当于平均数,MAE相当于取中位数。
(2)然而MAE存在一个严重的问题(特别是对于神经网络):更新的梯度始终相同,也就是说,即使对于很小的损失值,梯度也很大。这样不利于模型的学习。为了解决这个缺陷,我们可以使用变化的学习率,在损失接近最小值时降低学习率。
2. 更优秀的损失函数
huber损失函数,见链接2
3. 处理不均衡问题的 Focal loss损失函数
缓解正负样本不均衡问题。注意:keras中有针对类别不均衡问题,可以增加类权重的方式来进行训练,不知道和Focal loss有没有关系
4. 交叉熵损失函数
基本知识可以见链接4.1
以前面试的一个问题,为什么用交叉熵损失函数?见链接4.2