首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枕:收敛度量

枕:收敛度量
EN

Stack Overflow用户
提问于 2015-12-03 02:24:23
回答 2查看 490关注 0票数 2

我正在使用跳盆算法来优化多元成本函数。温度是影响跳频算法收敛时间的重要参数之一。我希望能够通过将成本函数值曲线拟合到当前的迭代,并确定它是否比以前的温度设置更快的收敛速度来确定basinhopping()的收敛速度。

下面是跳槽电话的样子:

代码语言:javascript
复制
res = basinhopping(cost, guess, niter=1, T=t, minimizer_kwargs={"method": "cobyla"})

有什么方法可以“实时”更新成本函数的当前值,这样我就可以进行自适应优化了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-05 11:46:11

你想通过一个变量函数的搜索来找到一个最优的T吗?

代码语言:javascript
复制
ftemperature( T ) = basinhopping( ... T=T ... ) .func  ?

如果是这样的话,请构建func Tres的历史列表,这些列表为您的Tsearch函数提供了如下内容:

代码语言:javascript
复制
# initialize history lists for a few T  (grid search) --
fhist, Thist, reshist = [], [], []

for T in [...]:
    res = basinhopping( cost, guess, T=T ... )
    print "T %.3g  func %.3g" % (T, res.func)
    fhist.append( res.func )
    Thist.append( T )
    reshist.append( res )

# search for new T --
while True:
    T = Tsearch( Thist, fhist )  # golden search or ...
    if T is None:  break
    res = basinhopping( cost, guess, T=T ... )
    print "T %.3g  func %.3g" % (T, res.func)
    fhist.append( res.func )
    Thist.append( T )
    reshist.append( res )

如果没有,请澄清。

(你可以在callback里面做同样的事情,就像@Jacob说的那样。)

(有一些更理想的方法来最小化一个变量的函数,参见例如标量。)

票数 1
EN

Stack Overflow用户

发布于 2015-12-04 18:00:58

我不是百分之百肯定我理解你的问题,但基本跳跃参数callback听起来像你要找的东西。

顺便说一句,你想要做的事情听起来有点像本文中的冻结-Thaw贝叶斯优化

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34056788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档