首页 > 解决方案 > 如何训练神经网络来学习从高维空间(~300d)映射到二维平面的“函数”?

问题描述

现在,我在 300 维空间中大约有 10M 数据点,等待缩减为 2D 空间。我知道一些降维算法,比如t-SNE、多核t-SNE、Q-SNE、umap、largevis。但是,对于如此大规模的数据,它们太慢了。我认为以下想法可以缓解这个问题:

  1. 简单的 10% 数据,应用 DR 算法为每个数据获取 (300d, 2d) 对,将这些对视为训练数据。
  2. 使用训练数据训练深度神经网络,将 300d 映射到 2d
  3. 将学习到的映射应用于其余 90% 的数据。

这是一个可行的想法吗?你知道遵循类似想法的任何工作吗?对构建这样一个神经网络有什么建议吗?

标签: neural-networkdimensionality-reduction

解决方案


您正在搜索的是自动编码器。

自动编码器

您以输出向量最接近输入向量的方式训练这个神经网络(您可能需要尝试几种距离损失:欧几里得距离、TripletSemiHardLoss...)。这样,具有两个神经元的隐藏层将是您的 2D 表示!无论如何,你的方法也很聪明,也许只是有点费力。


推荐阅读