Как обучить нейронную сеть, чтобы выучить «функцию», которая отображает из многомерного пространства (~ 300d) в 2D плоскость? - PullRequest
0 голосов
/ 05 февраля 2020

Теперь , У меня есть около 10M точек данных в 300-мерном пространстве, ожидающих сокращения в 2D-пространство. Я знаю некоторые алгоритмы уменьшения размерности, такие как t-SNE, многоядерный t-SNE, Q-SNE, umap, largevis. Однако они слишком медленные для такого большого объема данных. Я думаю, что следующая идея может смягчить проблему:

  1. простые 10% -ные данные, применяя алгоритм DR для получения (300d, 2d) пары для каждого из данных, рассматривая эти пары как обучающие данные.
  2. используйте данные обучения для обучения глубокой нейронной сети, которая обрабатывает отображение от 300d до 2d
  3. , применяет изученное отображение к остальным 90% -ым данным.

Это осуществимая идея? Знаете ли вы какие-либо работы по подобной идее? Любые предложения по созданию такой нейронной сети?

1 Ответ

0 голосов
/ 05 февраля 2020

То, что вы ищете, это автоэнкодеры.

Autoencoder

Вы обучаете эту нейронную сеть таким образом, чтобы выходной вектор был как можно ближе к входной вектор (вам может потребоваться несколько потерь расстояния: евклидово расстояние, TripletSemiHardLoss, ...). Таким образом, скрытый слой с двумя нейронами будет вашим 2D представлением! В любом случае, ваш подход тоже умный, может быть, чуть более трудоемкий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...