r - R优化中的梯度函数

标签 r optimization

我有两个函数 f(x)g(x) .这里f(x)是要最小化的目标函数,g(x)是梯度函数。我的问题是每次试验 x , 正文 f(x)将计算一个复杂的矩阵 A(x) , 这也将用于 g(x) .为了效率,我不要g(x)重复 A 的计算.我正在考虑制作 A(x)全局定义 A <<- ...f(x) 的正文中.所以g(x)可以使用A(x)直接地。因为我不知道如何optim在 R 中迭代 f(x)g(x) ,我不确定这个策略是否正确有效。欢迎任何建议和意见。谢谢。

最佳答案

因为你不知道 optim 将如何调用 fg 你将不得不确保任何隐藏的A(x) 在您需要时来自同一个 x。它可能会调用 f(x1)f(x2)f(x3),然后是 g(x1).

一种解决方案可能是内存:

http://cran.r-project.org/web/packages/memoise/index.html

A memoised A(x) 将存储给定输入值的返回值,并在给定相同输入值时返回该值而不重新计算。显然只适用于非随机函数(不要调用任何随机数生成器)。

我不确定你是如何控制缓存的大小的,但是源代码就在那里。

关于r - R优化中的梯度函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17874595/

相关文章:

r - GoogleAnalyticsR api - FilterExpression

c++ - Double 或 float - 优化例程

excel - 混合模型: Oil Production

c# - 提高C#代码效率的方法

algorithm - 优化 Haskell 中的 "list"索引

r - 在 R 中结合线图和条形图图例

r - 使用 for 循环进行控制和处理匹配比较

r - 在 R 或 SQLite 中分别将多列中的字符串拆分为新行

Readme.Rmd 导致从 Rstudio 推送到 github 失败

python - 为什么遍历枚举比生成器快得多?