Чи є версії t-SNE для потокового передавання даних?


19

Моє розуміння t-SNE та наближення Барнса-Хата полягає в тому, що потрібні всі точки даних, щоб можна було обчислити всі силові взаємодії одночасно, і кожну точку можна відрегулювати на 2d (або нижній розмірній) карті.

Чи існують версії t-sne, які можуть ефективно справлятися з потоковими даними? Тож якщо мої спостереження надходять одне за одним, воно знайде найкраще місце на 2d карті, щоб розмістити нове спостереження або постійно оновлювати всі точки на 2d карті для врахування ht нового спостереження.

Це навіть має сенс чи це суперечить налаштуванню t-sne.


Наближення Барнса-Хата робить t-SNE дуже масштабованим (принаймні, ви можете використовувати його зі 100 000 рядків, я спробував це). Ви можете зателефонувати на R: cran.r-project.org/web/packages/Rtsne/index.html
RUser4512

Гей, дякую! Я радий проголосувати за вашу відповідь, якщо ви помістите її у розділі відповідей цього.
Том

3
Дивіться тут параметричну версію, реалізовану з нейронною мережею. lvdmaaten.github.io/publications/papers/AISTATS_2009.pdf
eyaler

Відповіді:


15

У мене було саме те питання, і я розмістив його на відео YouTube з лекції CS231n, прочитаної Андреєм Карпатієм кілька тижнів тому. Ось питання, яке я опублікував, після якого відповів Андрій:

https://www.youtube.com/watch?v=ta5fdaqDT3M&lc=z12ji3arguzwgxdm422gxnf54xaluzhcx

Q:

Чи потрібен t-SNE цілу групу зображень (або загалом, даних) для створення низькомірного простору функцій? За допомогою PCA ви можете створити низькомірний простір функцій для групи даних, а потім спроектувати нові точки даних на той самий простір, не потребуючи "перенавчання". Це правда для t-SNE?

Я запитую, тому що я помітив, що scikit-learn має t-SNE як частину свого класу колекторів, але цей модуль не має методу transform (), як це робить PCA. Так, принаймні, у склеарні, здавалося б, це неможливо.

Моє запитання зводиться до цього. Як би ви застосували t-SNE в потоковій або онлайн-ситуації, коли ви хочете постійно оновлювати візуалізацію новими зображеннями? Імовірно, не хотілося б застосовувати алгоритм до всієї партії для кожного нового зображення.

A:

+ Еван Замір. Так, це можливо за допомогою t-SNE, але, можливо, це не підтримується з звичайних реалізацій t-SNE. Зазвичай розташування кожної точки є параметром оптимізації, але ви можете також добре створити відображення з високого D -> низького D (наприклад, нейронна сітка) та зворотного проходження через локації. Потім ви закінчите функцію вбудовування і зможете проектувати нові точки. Тому в принципі це нічого не заважає, але деякі реалізації можуть не підтримувати це, оскільки це рідше випадки використання.


11

Маючи справу з потоковими даними, можливо, вам не потрібно / потрібно вставляти всі точки історії в одну карту t-SNE. В якості альтернативи ви можете виконати вбудовування в Інтернет , виконавши наступні прості дії:

  1. виберіть вікно часу тривалістю T, достатньо тривалим, щоб кожен цікавий малюнок відображався принаймні пару разів протягом тривалості вікна.

  2. прокрутіть вікно, коли потоки даних пройдуть, з тимчасовим кроком dt, значно меншим за T. Для кожного положення вікна обчисліть вбудовування t-SNE даних точок даних у часове вікно.

  3. насіньте кожне вбудовування з результатом попереднього. У t-SNE потрібно вибрати початкові координати точок даних у низькомірному просторі. У нашому випадку, оскільки ми вибираємо dt набагато менший за T, два послідовних вбудовування поділяють більшість своїх точок даних. Для всіх точок спільного використання даних порівняйте їх початкові координати в теперішньому вкладенні до їх кінцевих координат у попередньому вбудовуванні . Цей крок забезпечить послідовне представлення подібних зразків у послідовних вкладках. (у реалізації sklearn у python параметр set є "init". За замовчуванням реалізація sklearn встановлює початкове положення точок випадковим чином)

Примітка 1: Важливо, щоб інтерес-моделі відображалися хоча б один раз у будь-який часовий період часу, щоб пам'ять представництва не загубилася, коли вікно ковзає через набір даних. Дійсно, t-SNE, як правило, не сходить до унікального рішення, а лише до локального мінімуму, тому, якщо пам'ять втрачена, подібний малюнок може бути представлений дуже різними способами у двох моментах вбудовування.

Примітка 2: Цей метод особливо актуальний при роботі з нестаціонарними часовими рядами, де хочеться відстежувати закономірності, що повільно розвиваються в часі. Дійсно, кожне вбудовування тут пристосоване спеціально до невеликого часового вікна, на яке воно обчислюється, гарантуючи, що воно найкращим чином фіксує тимчасово локальну структуру (на відміну від повного вбудовування всього нестаціонарного набору даних).

Примітка 3: У цьому методі послідовне вбудовування не може бути паралельним, оскільки потрібен результат попереднього вбудовування, щоб викласти наступне. Однак, оскільки насіння (тобто початкові координати точок) добре вибрано для більшості точок (усі спільні точки між послідовними вкладками), вбудовування, як правило, конвергується дуже швидко, лише за кілька ітерацій.

Для прикладу застосування цього методу до нестаціонарних часових рядів дивіться цю статтю ( ICLR 2016, Навчання стабільним уявленням у світі, що змінюється, за допомогою он-лайн t-SNE: доказ концепції в пісенній пташці ), де він був успішно застосований відслідковувати появу складів у процесі розвитку в пісенній пташці.


2
Ласкаво просимо до громади. Самоплагіат - це нестилість. Я посилаюся на ваше перше повідомлення тут . Звичайно, ми можемо використовувати одне і те ж обгрунтування для декількох відповідей, потенційно скопіювати-вставити фразу-дві або просто посилання на попередні відповіді безпосередньо. Вони, однак, не опускають своїх дописів до дослівної копії попередніх відповідей із зміненим першим реченням. Це знижує якість вмісту резюме та демонструє погану наукову майстерність з боку вас.
usεr11852 повідомляє Відновити Монік

5
@ usεr11852 Проблема була створена через те, що інший потік є дублікатом цього. Тому я закрив інший, з’єднав його з цим і видалив зайву відповідь. Загалом, Стефане, щоразу, коли ви відчуваєте натхнення розмістити абсолютно однакову відповідь у двох нитках, будь ласка, просто позначте одну з них як дублікат, щоб ми могли їх поєднати.
whuber

2
@ usεr11852 Добре, вибачте за дублюючу відповідь, я новий учасник, тому я ще не знаю найкращих практик.
Стефан Заперечуйте

1
@whuber Дякую за об'єднання питань та за голову!
Stéphane Deny

1
Ви, здається, втратили 2 обновки в результаті. Це прикро. +1 :) Ласкаво просимо до резюме.
амеба каже, що поверніть Моніку

7

Нещодавно опублікований варіант, який називається A-tSNE, який підтримує динамічне додавання нових даних та вдосконалення кластерів або на основі областей інтересів, або за допомогою даних користувача. У роботі, приведеній нижче, є кілька приємних прикладів цього:

Цитування: arXiv: 1512.01655

Приблизний та керований користувачем tSNE для прогресивної візуальної аналітики Нікола Пеццотті, Будевійн П. Ф. Лелівельдт, Лорен ван дер Мейтен, Томас Хьольт, Ельмар Айземанн, Анна Віланова

Підсумок:

Прогресивна Visual Analytics спрямована на поліпшення інтерактивності в існуючих методах аналітики за допомогою візуалізації, а також взаємодії з проміжними результатами. Одним з основних методів аналізу даних є зменшення розмірності, наприклад, для отримання 2D-вкладок, які можна візуалізувати та проаналізувати ефективно. t-розподілене стохастичне сусідне вбудовування (tSNE) - це добре підходить метод візуалізації декількох високомірних даних. tSNE може створювати значущі проміжні результати, але страждає від повільної ініціалізації, яка обмежує його застосування в Progressive Visual Analytics. Ми вводимо кероване наближення tSNE (A-tSNE), яке торгує швидкістю та точністю, щоб включити інтерактивне вивчення даних. Ми пропонуємо методи візуалізації в реальному часі, включаючи розчин на основі щільності та магічний об'єктив для перевірки ступеня наближення. За допомогою цього зворотного зв’язку користувач може приймати рішення про місцеві уточнення та керувати рівнем наближення під час аналізу. Ми демонструємо нашу техніку за допомогою декількох наборів даних у реальному сценарії дослідження та для аналізу в реальному часі потоків високих розмірів, щоб проілюструвати його ефективність для інтерактивного аналізу даних.


Ласкаво просимо на сайт. Ми намагаємось створити постійний сховище якісної статистичної інформації у вигляді запитань та відповідей. Таким чином, ми насторожено ставимося до відповідей, що стосуються лише посилань, завдяки linkrot. Чи можете ви опублікувати повне цитування та резюме інформації за посиланням, якщо вона загине?
gung - Відновити Моніку

6

Наближення Барнса-Хата робить t-SNE дуже масштабованим (принаймні, ви можете використовувати його зі 100 000 рядків, я спробував це). Ви можете його зателефонувати з R: Rtsne

O(nlog(n))O(n2)


1
Я використовував його з 250K щільними 1К лініями - насправді був досить гарним, але це пов'язано пам'яттю.
Володимир Чупахін

2

Наближення Барнса-Хата тепер є методом за замовчуванням у scikit-learn з версії 0.17.0:

За замовчуванням алгоритм розрахунку градієнта використовує апроксимацію Барнса-Хата, що працює в час O (NlogN). метод = 'точний' буде працювати у повільніший, але точніший алгоритм за O (N ^ 2). Точний алгоритм слід використовувати, коли помилки найближчих сусідів повинні бути кращими 3%. Однак точний метод не може охоплювати мільйони прикладів. Нове у версії 0.17: приблизний метод оптимізації за допомогою Барнса-Хата.


Це не стосується питання. BH, хоча і швидше, не підтримує потокове передавання. Можливо, ви мали на увазі це як коментар до цієї відповіді .
merv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.