我有一个python“blackbox”函数,它与边界x>=0
明显不同。我想找到它的最佳(最小/最大)值。
想象一下min(x^2,|x|,x^3+x^4) s.t. x>=0
之类的东西(但我的真正功能是更高维度Dim(x)~=2000
)。但我知道subgradient
无处不在。
例如,我确切地知道每个x,底层函数及其渐变是什么。但是如果我使用spicy.optimize
包,使用伪渐变作为雅可比输入,优化器通常会过早终止,因为它只是放弃它是否处于“明显可区分”功能的“连接点”和一个小的步骤不会给函数值减少...我认为实际上一个强大的简单梯度下降甚至可以更好地工作。
但我想知道这种情况下最好的解算器是什么。
谢谢。