常用求解器选项(求解关键字参数)
|
该页面正在翻译中。 |
# *`常识。解决方案`*-Method
solve(prob::OptimizationProblem, alg::AbstractOptimizationAlgorithm,
args...; kwargs...)::OptimizationSolution
有关返回的解决方案对象的信息,请参阅以下文档 优化/优化/优化
*关键字参数*
的论点 解决方案 在所有的优化器中都是常见的。 这些常见的论点是:
* 最大的,最大的:最大迭代次数
* 最大时间:优化运行的最长时间(通常以秒为单位)
* 阿布斯托尔:客观值变化的绝对容差
* [医]雷托尔:客观值变化的相对容差
* 回调;回调:回调函数
一些优化器算法在文档的求解器部分及其各自的文档中记录了特殊的关键字参数。 这些参数可以传递为 夸格斯。.. 到 解决方案. 同样,特殊关键字参数 本地-本地 全局优化器的传递为 命名的,命名的 到 本地选项.
随着时间的推移,我们希望在通用接口下复盖更多这些关键字参数。
如果未为优化器实现公共参数,则会显示警告。
*回调函数*
回调函数 回调;回调 是在每个优化器步骤之后调用的函数。 它的签名是:
callback = (state, loss_val) -> false
哪里 国家 是一个 优化状态 存储求解器当前迭代的信息和 损失_价值 是损失/客观值。 有关的字段的更多信息 国家 看看 优化状态 文件。 回调应该返回一个布尔值,默认值应该是 错误,所以优化停止,如果它返回 真的.
*回调示例*
在这里,我们展示了一个回调函数的示例,该函数在优化变量的当前值处绘制预测。 对于可视化回调,我们需要当前参数的预测,即 ODEProblem,ODEProblem 教授,教授. 所以我们叫 预测 再次回调内的函数。
function predict(u)
Array(solve(prob, Tsit5(), p = u))
end
function loss(u, p)
pred = predict(u)
sum(abs2, batch .- pred)
end
callback = function (state, l; doplot = false) #callback function to observe training
display(l)
# plot current prediction against data
if doplot
pred = predict(state.u)
pl = scatter(t, ode_data[1, :], label = "data")
scatter!(pl, t, pred[1, :], label = "prediction")
display(plot(pl))
end
return false
end
如果所选方法是使用局部优化方法的全局优化器,则存在一组类似的公共局部优化器参数。 你看 MLSL系列 或 奥格拉格 从NLopt为例。 常见的局部优化器参数是:
* 本地-本地:全局方法中用于局部优化的优化器
* 本地axiters:最大迭代次数
* 本地时间:优化运行的最长时间(以秒为单位)
* 本地_abstol:客观值变化的绝对容差
* 本地_reltol:客观值变化的相对容差
* 本地选项: 命名的,命名的 本地优化器的关键字参数