计算绝对值比计算平方要有效得多。那么,与前者相比,使用后者作为成本函数有什么优势吗?正方形更容易分析处理,但在实践中这并不重要。
最小化误差的绝对值而不是平方
数据挖掘
优化
2021-09-30 04:37:39
2个回答
在什么术语中“计算绝对值比计算平方更有效”?与使用的任何估计器/模型的复杂性相比,我认为这并不重要 - 但如果有人让我错了,我会很感兴趣。
再说一次,为什么你认为这在实践中并不重要?使用平滑和凸函数比非凸函数更方便(在时间和结果方面)。
实际上,您可以选择任何功能来最小化您想要的;这只是以下之间的权衡:
- 您要惩罚哪种值
- 求解函数的复杂性(数学上:局部或全局解)
- 耗时(与上一点有关)
1.最小化绝对值:
使用绝对值,您可以线性地惩罚y和f(x)之间的距离。粗略地说,只要您的估算器f充分解释了足够多的数据,您最终可能会得到很多看起来像异常值的数据。
然后,为了最小化一个函数,人们通常会寻找它的导数的根。然而,|x|的导数 不顺畅。您可以使用次梯度和其他更复杂的数学对象,这些对象可能由于更多的计算而导致更长的时间过程。
2.最小化平方值:
在这种情况下, y和f(x)之间的距离会受到更多惩罚。您的异常值往往会更少(相对于f(x))。
有趣的是这是一个平滑函数(即定义的导数)和凸函数(具有全局最小值)
所以我猜人们认为误差的平方是一个很好的权衡。
平方和绝对值都应该适用于梯度下降,但平方会更好。对于基于微积分的方法,绝对值方法可能难以处理。
如果您使用梯度下降法,那么正方形的效果非常好,因为它倾向于形成一个 U 形,该 U 形距离最小值大步而接近最小值的小步长。相反,绝对值倾向于形成 V 形,其步长大致相同。结果是正方形具有更好的收敛性。
现在,基于微积分的方法倾向于采用函数的导数并将其设置为零。请注意,U 形往往具有明确定义的导数,在最小值处等于零,这非常有效。相比之下,V 形在其最小值处具有未定义的导数,这往往会使共轭梯度方法不可逆。
希望这可以帮助!