【问题标题】:Gradient function in optim of RR优化中的梯度函数
【发布时间】:2013-07-26 07:47:22
【问题描述】:

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

【问题讨论】:

  • 您应该提供代码的最低工作/可重现示例。

标签: r optimization


【解决方案1】:

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

一种解决方案可能是记忆:

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

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

不知道你是怎么控制缓存大小的,不过源码都在里面。

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多