Sha*_*nam 15 minimization scipy-optimize scipy-optimize-minimize
我想知道如何为 scipy.optimize.minimize 选择最佳的最小化方法以及结果可能有多大不同?
我试图最小化以下表达式(求解 g):
|a1.g.x + a2.g.x^3 - K|
Avi*_*eyi 21
Scipy 有一个关于数学优化的讲座,其中有一个关于选择最小化方法的部分。摘自该部分的片段:
在不知道梯度的情况下:
- 一般来说,即使您必须近似数值梯度,也更喜欢 BFGS 或 L-BFGS。如果省略参数方法,这些也是默认值 - 取决于问题是否有约束或界限
- 对于良条件问题,Powell 和 Nelder-Mead 这两种无梯度方法在高维条件下效果很好,但对于病态问题它们就会崩溃。
有了梯度的知识:
- BFGS 或 L-BFGS。
- BFGS的计算开销比L-BFGS大,其本身也比共轭梯度大。另一方面,BFGS 通常需要比 CG 更少的功能评估。因此,共轭梯度法在优化计算成本低的函数方面比 BFGS 更好。
与黑森州:
- 如果您可以计算 Hessian,请首选牛顿法(Newton-CG 或 TCG)。
如果您的测量有噪音:
- 使用内尔德-米德或鲍威尔。
如果我正确地解释了你的等式,我认为这两者都BFGS or L-BFGS可能适合你。
| 归档时间: |
|
| 查看次数: |
16724 次 |
| 最近记录: |