如何自适应地采样 n 维数据并构建最佳训练集

数据挖掘 神经网络 统计数据 训练 数学
2022-02-19 13:27:43

我的输入空间至少是 10 维的(通过 PCA 等各种成分分析对其进行缩减后),输出空间是 4 维的。我正在构建一个类似于函数逼近器的神经网络,它将上述 10D 数据作为输入(输入中的 10 个神经元)并吐出 4D 数据作为输出(输出中的 4 个神经元)。中间有隐藏层。

我需要建立一个好的训练集,涵盖所有可能的输入和输出值。虽然看起来 10D 输入 + 4D 输出的组合可能非常大,但实际上,输入/输出受到现实世界的约束。我面临的问题是:在训练集中的某些部分,我需要以更高的分辨率对数据进行采样,而在其他部分,我可以通过以更低的分辨率进行采样。我显然可以以高分辨率对整个数据集进行采样,但是样本数量超过 10 万亿,而且我知道数据集的大部分变化非常缓慢,并且以较低的分辨率对这部分进行采样就足够了。我的猜测是,如果我能正确地对其进行采样,我可以减少 4-5 个数量级的样本数量。

我的问题是,我应该做什么/构建什么东西可以自适应地对高维数据集进行采样(必要时改变分辨率)并给我一个最佳的训练集?

注意:我的一位同事建议我使用马尔可夫链蒙特卡罗方法。我不确定这是否是最好的方法。请分享您的意见。

1个回答

看看主动学习。

https://en.m.wikipedia.org/wiki/Active_learning_(machine_learning)

在这种方法中,您可以使用样本子集进行训练,并根据对模型最有用的样本添加更多样本。

或者,您可以尝试通过聚类并从每个聚类中选择少量样本来减少样本数量。