从高维数据中采样 n 个数据点

数据挖掘 采样
2022-02-25 13:16:40

我有一些(一个人的)面部图像,我通过嵌入生成器运行这些图像以获得 128 维嵌入。

我有 1000 个这样的嵌入(数据集的形状 (1000, 128))。我对可用于训练模型的嵌入数量有限制(100 个嵌入)。我想从所有 1000 个嵌入中挑选 100 个嵌入,这将代表所有 1000 个嵌入。

我的问题是,我怎样才能选择代表全部 1000 个嵌入的最佳 100 个嵌入。

有些事情我已经尝试过了。

  1. 选择集群中最远的 100 个点。(所有图像都是边缘情况,如图像模糊、姿势不当等)
  2. 随机抽样(工作正常,但有时会选择从有问题的人脸计算的嵌入,比如模糊等)

还有一件事,我想过但没有测试。以概率抽样。概率 = 1/(euclidean_distance of point from cluster centroid)。

我想知道是否有任何替代方案,我可以研究哪些可以提供更好的结果。

3个回答

一种方法是运行您选择的无监督聚类算法,参数化以返回 100 个聚类的解决方案。如果确实有图像组,您应该看到相似的图像落入同一个集群。然后,您可以从每个集群中选择一个有代表性的图像,可能被识别为与同一集群中的其他图像具有最高平均相关性或最低平均距离的图像。这将帮助您避免对具有高相似性的图像进行过采样,尽管您可能希望寻找高度不同的单例集群 - 这些可能是有用的数据点,或者只是您可能根本不想训练的异常值。

一种选择是使用类似k-means++的播种技术来挑选具有代表性的数据点样本。K-means++ 从剩余的数据点中挑选每个后续的聚类中心,概率与其与该点最近的现有聚类中心的距离平方成正比。

所以这可能不像你希望的那样直接的答案,但事实是它真的取决于。

如果图像针对您的问题正确嵌入,即点之间的几何关系真正反映了您关心的特征差异,那么这应该很简单,并且 Nuclear Hoagie 的聚类想法可以工作(只要您没有如此多的集群,以至于在将集群的数量限制为 100 时会合并许多不同的集群),随机抽样或试图找到跨越尽可能多的搜索空间的 100 个点的集合同时保留的方法也是如此彼此大致等距(在由于点的分布而很难定义集群的情况下可能更好)。

换句话说,听起来您遇到的问题主要是由于嵌入和数据本身(即模糊图像应该被丢弃或大量预处理和锐化,因此在嵌入中不那么强调模糊特征) . 此外,如果您从头开始训练任何东西,而不是现成的嵌入模型或使用迁移学习训练有素的东西,那么您使用的图像数量听起来非常少)。

你是如何生成嵌入的,你在做什么类型的图像预处理?