Про цю симуляцію

Автор: Команда MySimulator · Редакційна перевірка: Редакція MySimulator

Оновлено: 5 липня 2026 р.

Це справжня невелика реалізація t-SNE, що виконується наживо у вашому браузері: для кожної точки виконується бінарний пошук індивідуальної ширини гаусіана β так, щоб умовний розподіл p_j|i відповідав обраній Perplexity, ці значення симетризуються у спільні ймовірності P і порівнюються з важкохвостим розподілом Стьюдента q_ij ∝ 1/(1+‖yᵢ−yⱼ‖²) у 2D-вкладенні. Градієнтний спуск з моментом мінімізує розбіжність Кульбака-Лейблера KL(P‖Q), з початковою фазою «перебільшення» (перші 100 ітерацій), яка роздуває P, щоб змусити щільні, добре розділені кластери сформуватись раніше, ніж почнеться тонке налаштування відносних відстаней.

🔬 Що показано

Як багатовимірний набір даних (тут 5-8 вимірів) можна стиснути в 2D-діаграму розсіювання, що зберігає локальну структуру сусідства — точки, близькі в оригінальному просторі, лишаються близькими у вкладенні, хоча точні відстані не зберігаються.

🎮 Як користуватись

Оберіть Dataset (Blobs, Two moons, Concentric, Random), потім налаштуйте Perplexity (ефективний розмір околиці), Learning rate та кількість Points; слідкуйте, як розвивається 2D-вкладення та жива крива розбіжності KL, використайте Pause/Resume, щоб зупинити оптимізацію, і Reset/Re-init, щоб почати заново з нового випадкового вкладення для тих самих даних.

💡 Чи знали ви?

t-SNE навмисно використовує важкохвостий розподіл Стьюдента (а не гаусів) для низьковимірних подібностей саме для розв'язання «проблеми тісняви» — це дає помірно віддаленим точкам більше простору розійтись у 2D, ніж дозволив би гаусів розподіл, тому графіки t-SNE зазвичай показують чітко розділені, округлі кластери.

Часті запитання

Що насправді контролює параметр Perplexity?

Perplexity — це приблизно ефективна кількість найближчих сусідів, яку враховує кожна точка, коли підбирається ширина її гаусіана; низькі значення підкреслюють дуже локальну структуру, а високі — глобальнішу, і алгоритм бінарним пошуком підбирає ширину для кожної точки, щоб досягти цільового значення.

Чому вкладення спочатку стиснуте, а потім поступово розширюється?

Під час фази «перебільшення» (приблизно перші 100 ітерацій) багатовимірні ймовірності P штучно множаться, що спершу стягує подібні точки у незвично щільні, добре відокремлені грудки, полегшуючи різним кластерам знайти окремі області, перш ніж алгоритм переходить до тонкого налаштування реальних відносних відстаней.

Що показує крива розбіжності KL?

Вона вимірює, наскільки добре розподіл подібності Q у 2D-вкладенні відповідає оригінальному багатовимірному розподілу подібності P; стабільне зменшення KL означає, що вкладення дедалі краще зберігає оригінальну структуру сусідства, і крива має вирівнятись, коли оптимізація сходиться.

Чи можна порівнювати відстані між кластерами на графіку t-SNE?

Ні — t-SNE призначений зберігати локальні околиці, а не глобальні відстані чи щільність, тож розмір кластерів і проміжки між ними на 2D-графіку не надійно відображають, наскільки далеко чи щільно ці групи розташовані насправді в оригінальному багатовимірному просторі.

Чому t-SNE використовує розподіл Стьюдента, а не гаусів, у 2D?

Важкі хвости розподілу Стьюдента дозволяють помірно несхожим точкам опинитись далі одна від одної на низьковимірній карті, ніж дозволив би гаусів розподіл, що протидіє «проблемі тісняви», коли багато точок, змагаючись за обмежений низьковимірний простір, інакше були б неприродно стиснуті докупи.