当我们进行线性回归时适合一堆数据点,经典方法最小化平方误差。长期以来,我一直对一个问题感到困惑,即最小化平方误差会产生与最小化绝对误差相同的结果吗?如果不是,为什么最小化平方误差更好?除了“目标函数是可微的”之外,还有其他原因吗?
平方误差也广泛用于评估模型性能,但绝对误差不太流行。为什么平方误差比绝对误差更常用?如果不涉及求导,计算绝对误差就像计算平方误差一样容易,那么为什么平方误差如此普遍?有什么独特的优势可以解释它的流行吗?
谢谢你。
当我们进行线性回归时适合一堆数据点,经典方法最小化平方误差。长期以来,我一直对一个问题感到困惑,即最小化平方误差会产生与最小化绝对误差相同的结果吗?如果不是,为什么最小化平方误差更好?除了“目标函数是可微的”之外,还有其他原因吗?
平方误差也广泛用于评估模型性能,但绝对误差不太流行。为什么平方误差比绝对误差更常用?如果不涉及求导,计算绝对误差就像计算平方误差一样容易,那么为什么平方误差如此普遍?有什么独特的优势可以解释它的流行吗?
谢谢你。
最小化平方误差 (MSE) 绝对不同于最小化误差的绝对偏差 (MAD)。MSE 提供了平均响应以,而 MAD 提供的中值响应为以.
从历史上看,拉普拉斯最初认为最大观测误差是衡量模型正确性的标准。他很快转而考虑MAD。由于他无法精确解决这两种情况,他很快考虑了微分 MSE。他自己和高斯(似乎同时)推导出了正规方程,这是这个问题的封闭形式的解决方案。如今,通过线性规划求解 MAD 相对容易。然而,众所周知,线性规划没有封闭形式的解决方案。
从优化的角度来看,两者都对应于凸函数。然而,MSE 是可微分的,因此允许基于梯度的方法,比它们的不可微分对应物有效得多。MAD 在.
另一个理论原因是,在贝叶斯设置中,当假设模型参数的先验一致时,MSE 会产生正态分布误差,这已被视为该方法正确性的证明。理论家喜欢正态分布是因为他们相信这是一个经验事实,而实验家喜欢它是因为他们相信这是一个理论结果。
MSE 得到广泛接受的最后一个原因是它基于欧几里德距离(实际上它是欧几里得巴拿赫空间上的投影问题的解决方案),考虑到我们的几何现实,这非常直观。
作为替代解释,请考虑以下直觉:
在最小化错误时,我们必须决定如何惩罚这些错误。事实上,惩罚错误最直接的方法是使用linearly proportional
惩罚函数。使用这样的函数,每个与平均值的偏差都会被赋予一个成比例的相应误差。因此,与平均值相差两倍将导致两倍的惩罚。
更常见的方法是考虑squared proportional
与平均值的偏差和相应的惩罚之间的关系。这将确保你离平均值越远,你受到的惩罚就越多。使用此惩罚函数,离群值(远离均值)被认为比均值附近的观测值更具信息量。
为了对此进行可视化,您可以简单地绘制惩罚函数:
现在特别是在考虑回归估计时(例如 OLS),不同的惩罚函数会产生不同的结果。使用linearly proportional
惩罚函数,回归将分配给异常值的权重比使用squared proportional
惩罚函数时要小。因此,已知中值绝对偏差 (MAD) 是一种更稳健的估计量。因此,一般情况下,稳健的估计器可以很好地拟合大多数数据点,但会“忽略”异常值。相比之下,最小二乘拟合更倾向于离群值。这是一个用于比较的可视化:
现在,尽管 OLS 几乎是标准,但肯定也会使用不同的惩罚函数。例如,您可以查看Matlab 的 robustfit函数,该函数允许您为回归选择不同的惩罚(也称为“权重”)函数。惩罚函数包括 andrews、bisquare、cauchy、fair、huber、logistic、ols、talwar 和 welsch。相应的表达方式也可以在网站上找到。
我希望这可以帮助您对惩罚函数有更多的直觉:)
如果你有 Matlab,我可以推荐使用 Matlab 的robustdemo,它专门用于比较普通最小二乘法和稳健回归:
该演示允许您拖动单个点并立即查看对普通最小二乘法和稳健回归的影响(非常适合教学目的!)。
正如另一个答案所解释的,最小化平方误差与最小化绝对误差不同。
首选最小化平方误差的原因是因为它可以更好地防止大错误。
假设您雇主的工资部门意外地向总共十名员工中的每人支付的工资比要求的少 50美元。那是500 美元的绝对错误。如果部门只给一名员工少付500美元,这也是 500 美元的绝对错误。但它是平方误差,它是 25000 对 250000。
使用平方误差并不总是更好。如果您的数据集由于数据采集错误而具有极端异常值,则最小化平方误差将比最小化绝对误差更能将拟合拉向极端异常值。话虽如此,通常最好使用平方误差。
理论上,您可以使用任何类型的损失函数。绝对损失函数和平方损失函数恰好是最流行和最直观的损失函数。根据这个维基百科条目,
一个常见的例子涉及估计“位置”。在典型的统计假设下,均值或平均值是用于估计在平方误差损失函数下经历的预期损失最小的位置的统计量,而中位数是在绝对差损失函数下最小化预期损失的估计量。在其他不太常见的情况下,不同的估计器仍然是最佳的。
正如维基百科条目中所解释的,损失函数的选择取决于您如何评估与目标对象的偏差。如果所有偏差都对您同样不利,无论它们的符号如何,那么您可以使用绝对损失函数。如果离最优值越远,偏差越严重,并且您不关心偏差是正还是负,那么平方损失函数是您最简单的选择。但是如果上述损失的定义都不适合您手头的问题,因为例如小偏差对您来说比大偏差更糟糕,那么您可以选择不同的损失函数并尝试解决最小化问题。但是,您的解决方案的统计特性可能难以评估。