【问题标题】:Gradient Ascent convergence梯度上升收敛
【发布时间】:2013-10-04 06:19:07
【问题描述】:

我试图通过梯度上升过程最大化目标函数的对数。我正在观察一个客观的价值序列,其中价值首先增加然后再次开始减少。我想知道这是否可能?我的意思是,是否存在这样的函数,其上升过程通过最大值然后产生递减值路径。以下是目标值序列的链接。

Value Sequence

【问题讨论】:

    标签: machine-learning gradient newtons-method gradient-descent


    【解决方案1】:

    回答一般问题:当然。如果您的函数不可微,则不能保证跟随梯度会增加函数值。例如,考虑一个像 -abs(x) 这样的函数。

    也就是说,除非您认为您的函数可能不可微分,否则我怀疑 Memming 是正确的,因为您在下降/上升实现中存在一些错误,特别是考虑到迭代在多次迭代中发散的方式。

    【讨论】:

      【解决方案2】:

      简短的回答是,只要满足以下条件是不可能的:

      • 目标函数是可微的(如果您使用任何经典目标,例如对数似然,那么它是正确的)
      • 您正在使用足够小的步长(尽管在大多数情况下,如果您选择太大的步长,您应该观察某个值附近的振荡,而不是一致的递减,但它仍然可能)@987654322 @
      • 您的目标函数是迭代无关的(因此它只是训练集的函数,不会随时间变化,尽管它仍然可以衡量某些模型的复杂度以添加正则化)
      • 您的实现是正确的 - 这是最可能的解决方案,要么您以错误的方式计算梯度,要么您的梯度上升算法有一些错误

      虽然可能是这种情况,但对于非常复杂的函数,所需的步长不是恒定的。为确保您的 GA/GD converges to stationary point 您必须选择小于 2/L 的步长,其中您的目标函数是 L-Lipschitz 函数

      【讨论】:

        【解决方案3】:

        如果您的目标函数是确定性的,如果选择了适当的小步长,那么梯度上升应该始终在每一步中增加您的目标函数,并且您没有达到最大值。从您的输出来看,您的渐变实现似乎不正确。 尝试使用数值梯度。计算速度较慢,但​​出错的可能性较低。

        【讨论】:

          【解决方案4】:

          如果以下成立:

          1) 目标是凹的

          2) 目标是差异化的

          3) 步长足够小

          4) 这不是任何错误

          那么梯度上升应该单调增加。

          如果 1+2+4 成立,可以尝试回溯线搜索来设置步长。

          【讨论】:

          • 凹=/>差!看看-|x|举个例子。确实,单调性不需要凹度,我已经跳到了全局最大值(这通常是目标)
          猜你喜欢
          • 2013-06-21
          • 2015-02-18
          • 1970-01-01
          • 2019-01-31
          • 1970-01-01
          • 2017-08-09
          • 2021-11-16
          • 2020-04-28
          • 2015-05-27
          相关资源
          最近更新 更多