如何为最有用的回归采样数据?

机器算法验证 采样 优化 重要性抽样 最佳
2022-03-27 19:16:32

背景

我有一个未知函数

f(x1,x2)

但是我可以有限地评估这个函数次, L

yj=f(x1j,x2j),j=1,,L

然后我有一个模型我可以从数据计算,我想最小化f^{yj}j=1,,Lf^f

min{yj}j=1,,LKL(f^|{yj}j=1,,Lf)

问题

如何对x1,x2进行采样以获得最多信息量的数据?

也许我应该先问一下有什么信息。

1个回答

我认为这可以通过从顺序蒙特卡罗准蒙特卡罗方法中得出来回答。

构成您的问题的关键概念是探索-利用困境

  • 探索:你想尽可能多地覆盖定义f的空间;
  • 开发:但理想情况下,您宁愿花时间对f值变化很大的地方进行采样,而不是在 f 值平坦的地方进行采样。

对于探索部分,准蒙特卡罗方法告诉我们选择低差异序列以尽可能有效地覆盖空间。在 2D 中,您选择的方法无关紧要。您基本上需要一个类似网格的结构,例如参见Sobol 序列如果您只想尽可能多地探索,这可以回答您的问题(请参阅Koksma-Hlawka 不等式)。

对于开发部分,我们需要采用更动态的视角;不知何故,我们需要从已经存在的样本中学习,以便专注于对我们重要的地方,因为我们的样本越来越多。在这里,重要性抽样为我们提供了一种关注景点的方法。例如,如果我们有兴趣找到的峰值,给定一组个现有样本成比例的概率的邻域重新采样在您的情况下,您可能希望在的梯度较大的地方重新采样。fN(xi,f(xi))xkf(xk)f

如何平衡探索和利用是一个没有答案的问题;这实际上取决于您的问题和可用资源。


要为您的问题提供具体答案,您可以考虑覆盖 2D 空间的 3x3 网格,每个单元格的中心都有一个样本。由此,您可以通过将获得的值与邻居进行比较来估计每个单元格中的“梯度”。然后迭代:

  • 选择具有大梯度的单元格子集(以及可能随机选择的其他单元格),
  • 用嵌套的 3x3 网格进一步划分它们;
  • 在获得的每个较小单元格的中心评估f
  • 通过与邻居获得的值进行比较,重新评估每个单元格中的“梯度”。

这将是采样的一种自适应方式。显然这只是一个解决方案的草图,还有很多细节需要解决(主要是如何比较不同大小的框之间获得的值,以及梯度估计的预期方差是多少)。f