Optimization 寻找想法/参考/关键词:搜索算法的自适应参数控制(在线学习)

Optimization 寻找想法/参考/关键词:搜索算法的自适应参数控制(在线学习),optimization,machine-learning,heuristics,reinforcement-learning,Optimization,Machine Learning,Heuristics,Reinforcement Learning,我正在寻找关于组合优化中搜索算法参数(在线学习)的自适应参数控制的想法/经验/参考文献/关键词 更详细一点: 我有一个框架,负责优化一个困难的组合优化问题。这是通过一些“小启发法”来完成的,这些“小启发法”以迭代方式使用(大邻域搜索;破坏和重建方法)。这些“小启发式”的每一个算法都采用了一些外部参数,这些参数在一定程度上控制着启发式逻辑(目前:只是随机值;某种噪声;使搜索多样化) 现在,我希望有一个控制框架,以一种收敛改进的方式选择这些参数,尽可能通用,以便以后添加新的启发式算法,而不改变参数控

我正在寻找关于组合优化中搜索算法参数(在线学习)的自适应参数控制的想法/经验/参考文献/关键词

更详细一点:

我有一个框架,负责优化一个困难的组合优化问题。这是通过一些“小启发法”来完成的,这些“小启发法”以迭代方式使用(大邻域搜索;破坏和重建方法)。这些“小启发式”的每一个算法都采用了一些外部参数,这些参数在一定程度上控制着启发式逻辑(目前:只是随机值;某种噪声;使搜索多样化)

现在,我希望有一个控制框架,以一种收敛改进的方式选择这些参数,尽可能通用,以便以后添加新的启发式算法,而不改变参数控制

至少需要做出两项一般性决定:

  • 答:选择在下一次迭代中使用的算法对(一个销毁算法和一个重建算法)
  • B:选择算法的随机参数
唯一的反馈是新发现的解决方案的评估函数。这就引出了强化学习的主题。这是正确的方向吗

这不是一种真正的学习行为,但目前的简单想法是:

  • 答:根据迭代过程中收集到的一些性能值进行轮盘赌轮选择(最近的轮盘赌比以前的轮盘赌更有价值)。 因此,如果启发式1确实找到了所有新的全局最佳解决方案->选择此解决方案的高概率
  • B:还不知道。也许可以使用(0,1)范围内的一些非均匀随机值,我正在收集一些变化的动量。 所以,如果启发式1上次使用alpha=0.3并没有找到新的最佳解决方案,那么使用0.6并找到新的最佳解决方案->有向1的势头 ->下一个随机值可能大于0.3。可能的问题:振荡
注意事项: -一个特定算法良好收敛所需的参数可能会发生显著变化->可能在开始时需要更多的多样化操作,在结束时需要更多的强化操作。 -在一对特定的销毁/重建算法(有时称为:耦合邻域)中,可能存在良好的协同效应。你怎么能认出那样的东西?这还在强化学习领域吗? -不同的算法由不同数量的参数控制(有些参数取1,有些参数取3)

任何想法、经验、参考文献(论文)、关键词(ml主题)?
如果对(b)项的决定有想法,请以线下学习的方式进行。请不要犹豫提及这一点

谢谢你的意见


Sascha

您有一组参数变量,用于控制算法集。选择算法只是另一个变量

你可能要考虑的一个方法是使用遗传算法进化你的“参数空间”。简言之,遗传算法使用自然选择过程的类似物来不断培育更好的解决方案

您将需要开发一个编码方案,以将参数空间表示为字符串,然后创建大量候选解决方案作为开始生成。遗传算法本身采用集合中最合适的解决方案,然后对其应用各种遗传算子(变异、繁殖等),以培育出更好的集合,然后成为下一代

这个过程中最困难的部分是开发一个合适的适应度函数:定量地测量给定参数空间的质量。您的搜索问题可能太复杂,无法对总体中的每个候选对象进行度量,因此您需要一个代理模型函数,该函数可能与理想解决方案本身一样难以开发

如果不了解您所写的内容,就很难看出这种方法是否可行。遗传算法通常很适合这样的多变量优化问题,但它不是万能的。作为参考,请从维基百科开始。

这听起来像是你正在尝试的超启发式。试着寻找那个关键词

在(开源,java)中,我支持禁忌搜索和模拟退火。 我还没有实现“破坏并重建”方法,但这应该很容易,尽管我并不期望有更好的结果。挑战:证明我错了,用叉子叉出来,加上它,在例子中击败我。
超启发式在我的待办事项列表中。

我知道进化算法的一般技术,但我错过了参数搜索空间的简单概念。我会调查一下的。谢谢