为何均方误差采用平方形式?损失函数为何不选abs(x)等其他方法?
这问题问得特别好——刚入门统计或机器学习的同学几乎都会纠结:明明绝对值甚至四次方都能把误差转成正值,为啥MSE(均方误差)偏偏认准了平方项?我从几个核心角度给你拆解清楚:
平方函数x²的导数是连续且极易计算的:d(x²)/dx = 2x。这对梯度下降这类依赖导数的优化算法来说,简直是量身定制——每一步的更新方向和步长都能顺畅计算,不会卡壳。
反观绝对值函数|x|,在x=0处的导数直接“断裂”了(左导数-1,右导数1),优化过程中很容易出现震荡,甚至卡在某个点没法收敛到最优解。要是用x⁴,虽然导数连续,但计算成本上去了不说,对异常值的惩罚会极端到离谱——一个离群点就能把模型带偏到姥姥家。
MSE会自动放大较大的误差,而绝对值误差对所有误差一视同仁。很多实际场景里,大误差的危害远大于小误差:比如预测患者的血压,差5mmHg和差30mmHg的后果完全不一样;预测快递时效,晚1小时和晚10小时的用户体验天差地别。平方项能让模型优先修正那些严重偏离的预测,这在大多数任务里是更贴合需求的。
从统计学角度看,如果我们假设模型的误差服从高斯(正态)分布,那么用MSE作为损失函数,等价于最大化似然估计(MLE)。这可不是瞎选——现实中很多自然现象的误差都近似符合正态分布,所以MSE在这类场景下是统计意义上的最优解。而绝对值误差对应的是拉普拉斯分布假设,虽然也有适用场景,但范围相对窄很多。
还有个小因素:MSE被用得早,理论体系成熟,像线性回归这类经典算法都是基于它推导的,后来的很多模型也就延续了这个选择。当然现在也有不少场景会用MAE(平均绝对误差)或者Huber损失(结合MSE和MAE的优点),但MSE依然是最基础、最通用的损失函数之一。
内容的提问来源于stack exchange,提问作者Karan Shah

