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