我有这个公式:
1 - e^(log(0.5) * (x/beta) ^ alpha )
alpha 和 beta 是我必须找到的变量。 x 是一堆图像(我的数据),我可以将该公式的输出与来自用户测试的基本事实进行比较。基本上我可以生成一个我想最小化的损失函数。为了找到最佳的 alpha 和 beta,我尝试使用 tensorflow,但梯度下降和其他优化器似乎失败了,因为该函数不是凸函数(我尝试了不同的初始条件)。有没有python中的全局优化工具可以用来解决这个问题?
最佳答案
你可以使用 NLopt ,它有一些全局优化器,例如直接(在 gohlke 下载)。或者有 scipy 的 basinhopping .另一个不错的解决方案是 NOMAD ,一个非常好的黑盒优化器。它也有一个 Python 界面,但不是那么用户友好和直观。
您可以在 this answer 中找到有关局部和全局优化的其他提示或 this answer .
关于python - 在python中找到最优解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51528778/