我使用梯度下降来最小化函数f(x),其约束为x为正。
为此,我使用了日志技巧。我设置x = exp(y)。 然后我在每次迭代时更新y
y = logx - learning_rate * gradient(f wrt y)
f的梯度y = f wrt x * x
的梯度
但是,我看到了奇怪的行为。当我继续迭代时,我发现当它达到某一点时,更新不会改善目标函数但保持接近。但是,如果我强行更新参数,即使它没有改善或最小化目标函数,而是增加它,一段时间后它再次开始流动,进一步降低目标函数。
我的函数是凸的,因此没有可能导致此问题的局部最小值。它是否与导致此问题的日志技巧有关?