【发布时间】:2021-02-22 16:41:18
【问题描述】:
我有一个(相对)简单的函数,我想最小化 Julia 中的 10 多个参数。定义参数列表params和函数example_func,然后使用Optim.jl包:
r = optimize(x->example_func(x, J, K, G), params, NelderMead())
对于某些参数值,它很好地收敛。但是,对于某些参数值,我收到以下错误消息:
* Status: failure (reached maximum number of iterations)
* Candidate solution
Final objective value: -1.148303e+00
* Found with
Algorithm: Nelder-Mead
* Convergence measures
√(Σ(yᵢ-ȳ)²)/n ≰ 1.0e-08
* Work counters
Seconds run: 3 (vs limit Inf)
Iterations: 1000
f(x) calls: 1391
我无法显示函数的显式形式。
我的问题是是否有更好的方法来最小化多个参数上的一些通用函数以确保收敛?我可以增加 Optim.jl 中的最大迭代次数吗?在 Julia 中是否有比 Optim.jl 更好的方法来执行此任务?
【问题讨论】:
-
如果你不能显示函数的显式形式,那么我认为是否有更好的方法来找到最小值没有答案。保证任意输入的优化问题收敛是对halting problem的重述。
标签: optimization julia minimization