梯度下降振荡很大。我是否错误地选择了我的步进方向?

机器算法验证 优化 损失函数
2022-04-04 22:43:07

我正在尝试运行具有绝对损失函数的基本梯度下降算法。我可以让它收敛到一个好的解决方案,因为它需要比我使用平方损失更小的步长和更多的迭代。这是正常的吗?我是否应该期望绝对损失需要更长的时间才能得出一个好的解决方案,或者可能会在解决方案周围振荡,而不是说平方损失?

2个回答

当您说“绝对损失函数”时,您的意思是您使用的是最小绝对偏差(LAD)而不是更常见的普通最小二乘法(OLS)吗?正如那篇维基百科文章所说,虽然 LAD 对异常值比 OLS 更稳健,但它可能不稳定,甚至有多种解决方案,因此即使只有一个目标函数也更难找到目标函数的最小值,这似乎并不奇怪。

如果您尝试此操作是因为您正在经历某种稳健的回归,我认为有几个比 LAD 更有吸引力的替代方案。

这可能是一般最速下降算法已知缺陷的结果。用一个共轭梯度算法可以提高收敛性。