如何定义梯度下降的终止条件?


24

实际上,我想问你如何定义梯度下降的终止条件。

我可以基于迭代次数来停止它,即考虑参数值进行100次迭代吗?

还是应该等两个参数值'new'和'old'的差异小到可以说?这肯定会花费很多时间。10-6

什么是最好的方法?就我而言,即使一次迭代也要花费大量时间。在这种情况下,如果我等待第二种情况,我想可能甚至要花几周的时间。

因此,我应该使用哪种方法。如何解决这种情况?


1
它没有明确说明,但我认为您正在尝试找到MLE。您的结果实际上完全取决于您的参数空间,似然函数和您的需求(aka,最好的定义还不是很好)。如果您只是在寻找理论上的证明,例如渐进效率;在Le'Cam条件下,您可以只使用一步式MLE(在进一步的假设下,您将使用牛顿法和梯度下降的得分函数)。这就要求您的初始值应具有的概率。ñ1个/2θ^0θ
乔纳森·利西奇

因此,等等,当您说“新”-“旧”足够小时,这是梯度下降的不正确终止条件吗?(如果应用定理之类的定理,该条件还可以吗?)
查理·帕克

当函数值或梯度或参数似乎停止相对或绝对移动时,可能会停止。但是实际上参数.. 太多了,因此它们被折叠了,但是每个程序的处理方式都不同。有关图片,请参见Mathworks公差和停止条件F一世F一世X一世3×2ftolabs ftolrelxtolabs
丹尼斯

Answers:


19

好问题。我在文献中已经看到许多停止规则,并且每种情况都有其优缺点,具体取决于上下文。optim例如,R中的函数至少具有三个不同的停止规则:

  • maxit即预定的最大迭代次数。我在文献中看到的另一个类似的选择是超时之前的最大秒数。如果您只需要一个近似的解决方案,这可能是非常合理的。实际上,有些模型(尤其是线性模型)的早期停止类似于将高斯优先放在参数值上。一个常客会说您有一个“ L2规范”,而不是先验的,但他们也会认为这样做是合理的。我只是略读了这篇文章,但是它讨论了提前停止和正则化之间的关系,可能会帮助您了解更多信息。但是简短的说法是,是的,尽早停止可能是一件值得尊敬的事情,具体取决于您的

  • abstol,即当函数“足够接近”到零时停止。这可能与您无关(听起来不像您期望的是零),因此我将跳过它。

  • reltol,就像您的第二个建议一样-当改善低于阈值时停止。我实际上不知道这方面有多少理论,但是您可能会倾向于获得比最小迭代次数少的最小值。如果这对您很重要,那么可能值得运行更多迭代的代码。

停止规则的另一系列与优化验证数据集(或交叉验证)而不是训练数据上的成本函数有关。根据要使用模型的目的,您可能希望在达到训练数据的局部最小值之前停下来,因为这可能涉及过度拟合。我很确定Trevor Hastie已经写了关于这样做的好方法,但是我不记得被引用了。

在合理的时间内找到较低最小值的其他可能选择包括:

  • 随机梯度下降,一次只需要估算一小部分数据的梯度(例如,“纯” SGD的一个数据点,或小型迷你批次)。

  • 更高级的优化功能(例如,牛顿型方法或共轭梯度),该功能使用有关目标函数曲率的信息来帮助您指向更好的方向,并在下坡时采用更好的步长。

  • 更新规则中的“动量”一词,使优化程序在下坡时做得更好,而不是在目标函数中限制峡谷墙。

我在网上找到的这些讲义中都讨论了这些方法。

希望这可以帮助!

编辑哦,您也可以尝试获得更好的起始值(例如,通过解决问题的简单版本),以便从“热启动”到达到最佳迭代所需的迭代次数更少。


选择固定数量的迭代的问题在于,除非您可以清楚地绘制成本曲线(并且噪声很小),否则很难知道有多少迭代是太多的,特别是如果优化函数很复杂并且谁知道它具有多少个局部最小值,并且如果您进行了随机初始化,这会使问题更加恶化,因为这使猜测更小的“小”迭代次数变得更加困难。如果您想实际使用尽早停止,您如何实际解决这个问题?您如何确保不要过度射击或下冲太多?
查理·帕克

我想澄清一下reltol(即,当不再有“改进”时)的意思。第一个改进意味着降低成本函数。因此,我假设您的意思是,当成本函数停止下降得足够少(或开始增加)时,暂停一秒钟,对吗?一个人实际上并没有做“ |旧-新|” 更新规则的类型,对不对?
查理·帕克

1
abstol仅当您采用成本函数的梯度公差而不是成本函数本身的公差时,此参数才有意义。在局部优化器中,梯度的值为零;但不是函数的值。
马里奥·贝塞拉

“热启动”是一个非常聪明的把戏!谢谢
Mehdi LAMRANI
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.