基于梯度下降的最小化算法,不需要初始猜测接近全局最优值

机器算法验证 优化 算法
2022-03-09 16:38:34

梯度下降算法(例如Levenberg-Marquardt 算法)的问题在于,它们会收敛到最接近初始猜测的最小值,因此当从不同位置开始时,您最终会处于不同的最小值。

是否有一种基于梯度的算法,无论从哪里开始都能给出相似的结果?例如,将逃避浅最小值,因此更有可能收敛到全局最小值,或者至少是类似于全局的局部最小值。这可以通过给梯度下降“惯性”来实现,因此当备选方案向下移动偏导数时,它会获得动量,然后一旦所有偏导数都为零(即最小值),算法将继续沿该方向移动它以前是这样,但开始放缓,因为它现在正在上升偏导数。这将有助于它摆脱局部最小值并找到全局最小值。

存在这样的算法吗?(这不是像遗传算法或粒子群优化那样的全局优化算法)

3个回答

这比直接解决方案更像是一种解决方法,但避免局部最小值的常用方法是从不同的起始位置多次运行您的算法。然后,您可以将最佳结果或平均值作为最终结果。

您可能想要取平均值而不是最佳值的原因是为了避免过度拟合。许多存在局部最小值问题的模型类型都有很多参数:决策树、神经网络等。简单地采用最佳结果可能会导致模型无法很好地推广到未来数据。采取平均防范措施。

您可以使用任意复杂的方法进行平均。看一下

这可以通过给梯度适当的“惯性”来实现,因此当算法头韵向下移动偏导数时,它会获得动量,然后一旦所有偏导数都为零(即最小值),算法将继续在它之前的方向,但开始放缓,因为它现在正在上升偏导数。这将有助于它摆脱局部最小值和......

在此处输入图像描述

...然后从另一边再次直接返回。

(这里绿色是全局最小值,红色是附近的局部最小值。)

如果您有多个局部最小值并且全局最小值不够“宽”,以至于您几乎无法从几乎任何地方方便地误入歧途,那么这些简单的想法并没有太大帮助。

我认为随机梯度下降非常擅长避免陷入局部最小值。每次观察都会估计参数,这给了 SGD 更多的随机性,因此更有可能跳出局部最小值。