【发布时间】:2013-10-04 06:19:07
【问题描述】:
我试图通过梯度上升过程最大化目标函数的对数。我正在观察一个客观的价值序列,其中价值首先增加然后再次开始减少。我想知道这是否可能?我的意思是,是否存在这样的函数,其上升过程通过最大值然后产生递减值路径。以下是目标值序列的链接。
【问题讨论】:
标签: machine-learning gradient newtons-method gradient-descent
我试图通过梯度上升过程最大化目标函数的对数。我正在观察一个客观的价值序列,其中价值首先增加然后再次开始减少。我想知道这是否可能?我的意思是,是否存在这样的函数,其上升过程通过最大值然后产生递减值路径。以下是目标值序列的链接。
【问题讨论】:
标签: machine-learning gradient newtons-method gradient-descent
回答一般问题:当然。如果您的函数不可微,则不能保证跟随梯度会增加函数值。例如,考虑一个像 -abs(x) 这样的函数。
也就是说,除非您认为您的函数可能不可微分,否则我怀疑 Memming 是正确的,因为您在下降/上升实现中存在一些错误,特别是考虑到迭代在多次迭代中发散的方式。
【讨论】:
简短的回答是否,只要满足以下条件是不可能的:
虽然可能是这种情况,但对于非常复杂的函数,所需的步长不是恒定的。为确保您的 GA/GD converges to stationary point 您必须选择小于 2/L 的步长,其中您的目标函数是 L-Lipschitz 函数。
【讨论】:
如果您的目标函数是确定性的,如果选择了适当的小步长,那么梯度上升应该始终在每一步中增加您的目标函数,并且您没有达到最大值。从您的输出来看,您的渐变实现似乎不正确。 尝试使用数值梯度。计算速度较慢,但出错的可能性较低。
【讨论】:
如果以下成立:
1) 目标是凹的
2) 目标是差异化的
3) 步长足够小
4) 这不是任何错误
那么梯度上升应该单调增加。
如果 1+2+4 成立,可以尝试回溯线搜索来设置步长。
【讨论】: