均值的损失函数_为什么MSE损失的收敛目标是均值, 而MAE的是中位数?

本文探讨了MSE和MAE两种损失函数的收敛目标,MSE对应样本标签的均值,易受异常值影响;而MAE对应中位数,稳定性更高,但梯度恒定。在预估接近真实值时,MSE的梯度更适合,而MAE可能需要调整学习率。选择应根据具体场景和数据分布进行。
摘要由CSDN通过智能技术生成

ebdefc960c78ffd3d2af850d353d2f9b.png
你了解各种损失函数的差别吗?以均方误差(MSE)和平均绝对值误差(MAE)为例,这两位是回归模型中的常客了。从直觉上看,都是要预估与目标更一致,表面上只是二次和一次的差别,更深入的差异我们可以从数学上挖掘。无论损失函数多么花哨,最终都要归结于收敛值的不同,这也是不同损失函数各自价值的体现: 我们可以根据需要选择合适的函数。这里我们就看下二者收敛目标的差别。

MSE


这是MSE损失函数的计算公式。m是样本量,score和y分别是模型预估值和样本真实label。我们用t表示模型预估值score1, score2, score3...的均值,然后用t替换上式中的score_i, 看下在改损失函数下模型收敛值取多少时损失最小:

求导:

也就是说,在损失函数为 MSE 时,模型收敛值为样本label的均值。如果样本x在训练数据中出现了3次,3次对应的label由于各种现实原因可能并不相同,如分别是2, 4, 9, 那么在mse下训练的模型预估值应该在(2+4+9)/3=5左右。

MAE


这是MAE损失函数的计算公式, 符号意义同MSE。同样用t表示模型预估值score1, score2, score3...的均值:

求导分两种情况,考虑求和的子项 |t-y_i|,当 t>y_i 时t梯度为1,相反则为-1,那么有:

其中sgn(t-y)表示t-y的正负符号。显然,在t>y_i和t<y_i一样多,也就是t取中位数时损失取得极小值。如果样本x在样本中的label取值为2, 4, 9,那么在 MAE 下训练的模型预估值应该是中位数4。

区别与取舍
从以上推导可以看出, MSE、MAE损失函数的收敛目标分别对应着label的均值和中位数。均值受异常值影响较大,而中位数则相对稳定。因此从这一角度来看,如果训练数据中存在较多异常点,MSE 受影响较大,毕竟其损失函数中平方项会给异常值较大比重。不过尽管MAE较稳定,但其缺点是梯度大小始终不变(1或者-1),从以上推导也能看出这点。而实际中,在预估与label已经很接近的时候,梯度应该更小才合理。当然也可以梯度不够学习率来凑,MAE 可以手动调整学习率来缓解这一问题。具体二者的选择也不能一概而论,还是需要结合具体使用场景、数据分布情况等来确定。


看完觉得有所收获的话麻烦给个 吧!双旦快乐~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值