我使用 nlm 来最大化 R 中的可能性。我想预测可能性评估的数量,如果任务可能花费太长时间,则中止。nlm 返回“迭代”的次数(通常为 10-20),我认为每次迭代都涉及对 Hessian 的一次数值评估。每次迭代的时间(Hessian?)取决于参数的数量。所以我想知道:参数数量和nlm中每次迭代的函数评估数量之间的一般关系是什么?
问问题
76 次
1 回答
0
这个问题很笼统,我的回答也是。
从参考nlm
:
如果函数值具有称为梯度的属性,或者同时具有梯度和 hessian 属性,则这些将用于计算更新的参数值。否则,使用数值导数。deriv 返回具有合适梯度属性和可选的 hessian 属性的函数。
如果您为要最小化的函数提供梯度和 Hessian,则每次迭代都涉及两个函数评估。如果你不这样做,Hessian 和梯度是用数值计算的。源代码可以在这里找到。据我了解,Rnlm
函数的参数仅影响收敛之前的迭代次数,但对数值计算梯度的方式没有影响。
于 2019-11-05T02:48:59.280 回答