【问题标题】:Optimization through machine learning通过机器学习进行优化
【发布时间】:2014-07-04 10:46:51
【问题描述】:

我有一个系统,它从 17 x 17 的网格中提取 15 个点作为输入(顺序无关紧要),并生成一个标量作为输出。系统不能用正式函数表示。

目标是找到最优的 15 个点,使输出标量最小。由于每次运行需要 14 秒,彻底解决这个问题需要太多时间而不实用。

我已经开始在线学习机器学习课程。但是这个问题似乎并不复杂,我想知道是否有人可以指出我正确的方向。非常感谢任何帮助!

【问题讨论】:

  • 这个问题很不明确。你想最小化一个函数。可微分函数?凸函数?实值输入?布尔输入?整数输入?
  • 对于我来说,系统对于所有实际目的来说都是一个黑盒子,而不是可以用正式函数表示的东西。输入是 17X17 网格中的 15 对坐标。
  • 任务“Minimize a function f: {1,..,17}^2 -> {some ordered set}”是not未指定的imo——假设为尽可能少。我仍然同意提供尽可能多的信息总是有用的。

标签: optimization machine-learning


【解决方案1】:

使用simulated annealing。我想这将接近最佳状态。

因此,从 15 个点的随机分布开始。然后,在每次迭代中,如果结果标量值较低,则更改一个并接受新状态。如果它更大,则以一定的概率接受(玻尔兹曼因子)。最终,您必须对少数随机选择的初始状态进行尝试,然后接受最低值。

【讨论】:

  • 谢谢。我会阅读并尝试一下。我确实忘了提到,根据过去的经验,有一套标准的 15 分开始,但其中许多最终偏离了很多。
  • 好的,阅读了一些内容,我想我知道如何实现这一点。但是有一个问题,我不应该在每次迭代中一次更改所有 15 个点吗?
  • 这取决于,但我不会一次更改所有粒子,因为那样可能会经常拒绝这些步骤。我将从改变一个点开始,但在实现中保留这个数字n 变量。直观地说,我希望 n=14 能够正常工作。但无论如何,您将获得比详尽搜索快得多的优化(这相当于检查大约 4*10^24 个状态!)
猜你喜欢
  • 2018-05-09
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-16
  • 1970-01-01
  • 2017-12-16
  • 2015-07-21
相关资源
最近更新 更多