【问题标题】:Sampling from a high dimensional function从高维函数采样
【发布时间】:2014-06-25 18:47:34
【问题描述】:

我有一个函数 f 接受 N 实值输入,计算起来非常昂贵。每个N 输入(由n 调用)都有一个可以采用的值范围(n_min, n_max)。我有兴趣通过在各种输入上生成样本并查看它产生的输出来研究f 的属性。 (目标是使用 ML 为 f 构建一个逼近器。)

假设由于时间限制,我只能生成 1000 个样本。选择我提供给f 的Ns 集合是否“更好”

(A) 从n_min 迭代到n_max,每个n 的步长足够大,或者

(B) 在(n_min, n_max)的范围内对每个n进行均匀采样?

选择 (A) 的理想特性是保持其他所有输入固定,同时一次只改变一个值,但选项 (B) 具有可能探索输入空间的更多部分的理想特性。

【问题讨论】:

    标签: function machine-learning statistics sampling


    【解决方案1】:
    当函数在所有输入上的方差不相等时,

    B 更好,而它可能没有。在极端情况下,假设您有 1000 个样本、3 个输入,但实际上只有一个会影响函数。如果你对一个 10x10x10 的规则网格进行采样,如 A,你最终将只得到 10 个相关输入的样本。如果您以均匀分布进行抽样,则所有 1000 个样本都会提供信息。

    作为 B 的变体,考虑使用准随机输入序列,例如 Sobol sequence。与均匀分布相比的优势在于您的输入空间覆盖范围不会出现簇或空洞。

    【讨论】:

    • 这是一个很好的答案,谢谢。我正在寻找在 Python 中生成 Sobol 序列的方法,但我有点短。
    • 我使用了一个 C++ 实现。我不知道在 Python 中重现有多容易。 web.maths.unsw.edu.au/~fkuo/sobol
    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 2020-10-07
    • 2020-10-15
    • 2022-01-04
    • 1970-01-01
    • 2023-02-05
    • 2021-09-12
    • 2021-11-24
    相关资源
    最近更新 更多