首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现最陡峭的上升来优化概率

实现最陡峭的上升来优化概率
EN

Stack Overflow用户
提问于 2013-06-01 20:22:56
回答 1查看 378关注 0票数 0

我想重新实现一个涉及概率优化的方法。我得到的笔记包括梯度w.r.t的计算。该参数,以及注释“导数在[0,1]中有一个固定点,我们使用最陡峭的上升”。

我搜索了实现它的提示,找到了thisWikipedia entry on hill climbing。(这两种方法都没有给出非常具体的建议。)

我认为把它和二进制搜索放在一起,并计划用下面的方式(伪代码)来实现它是一个好主意:

代码语言:javascript
复制
steepest_ascent(param, min_itvl, max_itvl):
  if (max_itvl - min_itvl < 0.01):
    return param
  d = gradient(param)
  if (d == 0):
    return param
  if (d > 0):
    return steepest_ascent((param + max_itvl) / 2, param, max_itvl)
  if (d < 0):
    return steepest_ascent((min_itvl + param) / 2, min_itvl, param)

整个过程是迭代过程的一部分,所以它的名称是这样的(因为它是间隔为[0,1]的概率):

代码语言:javascript
复制
 param_new = steepest_ascent(param_old, 0, 1)

这里有没有明显可以改进的地方?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-01 21:05:33

您已经实现了与gradient ascent不同的bisection method。(我认为你的函数是凹的?)为了进行梯度上升,对一些适当选择的α>0重复更新param = param + alpha * gradient(param) (太小,计算将花费很长时间,太大,并且它将永远运行,因为永远不会收敛),直到满足某些收敛标准。

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

https://stackoverflow.com/questions/16872678

复制
相关文章

相似问题

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