我有一个函数f
,它接受N
实值输入,计算起来非常昂贵。每个N
输入,n
调用一个,可以使用一系列值(n_min, n_max)
。我有兴趣通过在各种输入上生成样本并查看它产生的输出来研究f
的属性。 (目标是使用ML为f
构建近似值。)
让我们说由于时间限制,我只能生成1000个样本。是不是更好"通过
选择我N
的{{1}}集
(A)从f
迭代到n_min
,每个n_max
的步长足够大,或者
(B)在n
?
n
进行统一抽样
选择(A)具有保持每个其他输入固定而一次仅改变一个值的期望特性,但选择(B)具有可能探索输入空间的更多部分的期望特性。
答案 0 :(得分:1)
B 会更好,这可能不是。在极端情况下,假设您有1000个样本,3个输入,但其中只有一个实际影响了该功能。如果您在10x10x10的常规网格上进行采样,如 A ,则最终只会得到10个相关输入的样本。如果您以均匀分布进行采样,则所有1000个样本都将提供信息。
作为 B 的变体,请考虑使用准随机输入序列,例如Sobol sequence。统一分布的优势在于输入空间覆盖范围不会有簇或洞。