Изменения

Перейти к: навигация, поиск

Стохастическое вложение соседей с t-распределением

912 байт добавлено, 19:43, 4 сентября 2022
м
rollbackEdits.php mass rollback
{{Определение
|definition=
'''Стохастическое вложение соседей с t-распределением''' (англ. ''t-Distributed Stochastic Neighbor Embedding, t-SNE'') {{---}} метод визуализации данных высокой размерности с помощью представления каждой точки данных в двух или трехмерном пространстве, являющийся модификацией метода стохастического вложения соседей.
}}
[[Файл:MNIST_compression_methods_comparison.png|300px|thumb|right|Пример работы методов [[Стохастическое вложение соседей с t-распределением|t-SNE]], Isomap<ref>[https://en.wikipedia.org/wiki/Isomap Isomap]</ref>, Sammon mapping<ref>[https://en.wikipedia.org/wiki/Sammon_mapping Sammon mapping]</ref>, LLE<ref>[https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction#Manifold_learning_algorithms Manifold learning algorithms]</ref> на наборе данных [[Известные наборы данных|MNIST]]]]
Пусть стоит задача вложить множество точек в пространстве высокой размерности <tex>\{x_i \mid x_i \in X\}</tex> в пространство низкой размерности. Обозначим множество точек в пространстве низкой размерности, которые получаются после вложения через <tex>\{y_i \mid y_i \in Y\}</tex>. '''Стохастическое вложение соседей''' (англ. ''Stochastic Neighbor Embedding, SNE'') конвертирует расстояния в Евклидовом пространстве высокой размерности между точками в условные вероятности <tex>p_{j|i}</tex>. <tex>p_{j|i}</tex> {{---}} вероятность, что точка <tex>x_i</tex> выберет в качестве своего соседа точку <tex>x_j</tex> среди остальных точек данных. Будем считать, что вероятность для точки <tex>x_i</tex> найти соседа падает с увеличением расстояния от точки <tex>x_i</tex> в соответствии с распределением Гаусса<ref>[https://ru.wikipedia.org/wiki/Нормальное_распределение Нормальное распределение]</ref> с нулевым [[Математическое ожидание случайной величины|математическим ожиданием]] и [[Дисперсия случайной величины|стандартным отклонением]] <tex>\sigma_i</tex>. В соответствии с этим <tex>p_{j|i}</tex> выражается как
<tex>p_{j|i} = \dfrac{\exp{(-\dfrac{{\left\Vert x_i - x_j \right\Vert}^2/}{2\sigma_i^2})}}{\sum\limits_{k \neq i}\exp{(\dfrac{{-\left\Vert x_i - x_k \right\Vert}^2/}{2\sigma_i^2})}}</tex>.
Теперь определим похожие вероятности <tex>q_{i|j}</tex> для пространства низкой размерности, куда вкладываются точки пространства высокой размерности.
<tex>q_{j|i} = \dfrac{\exp{(-{\left\Vert y_i - y_j \right\Vert}^2)}}{\sum\limits_{k \neq i}\exp{({-\left\Vert x_i y_i - x_k y_k \right\Vert}^2)}}</tex>.
Данные вероятности получаются из тех же самых предложений, что были сделаны для пространства высокой размерности, за исключением того, что все распределения Гаусса имеют стандартное отклонение <tex>\dfrac{1}{\sqrt{2}}</tex> для всех точек.
<tex>KL(P \Vert Q) = \sum\limits_j p_j \log_2 \dfrac{p_j}{q_j}</tex>.
В данном случае имеем <tex>|X|</tex> распределений. Тогда целевую функцию<ref>[https://ru.wikipedia.org/wiki/Целевая_функция Целевая функция]</ref>, который которую будем оптимизировать, определим как сумму соответствующих дивергенций Кульбака-Лейблера. То есть:
<tex>C = \sum\limits_i KL(p_i \Vert q_i) = \sum\limits_i \sum\limits_j p_{j|i} \log_2 \dfrac{p_{j|i}}{q_{j|i}}</tex>.
== Физическая интерпретация ==
Есть следующая физическая интерпретация модели. В пространстве низкой размерности натянуты пружины между каждой парой точек <tex>y_i</tex> и <tex>y_j</tex>. , действующие в направлении <tex>y_i - y_j</tex>. Пружины могут притягивать или отталкивать точки в зависимости от расстояния между ними. Сила, прикладываемая пружиной, пропорциональна её длине <tex>\left\Vert y_i - y_j \right\Vert</tex> и жесткости<ref>[https://ru.wikipedia.org/wiki/Жёсткость Жесткость]</ref> <tex>p_{j|i} - q_{j|i} + p_{i|j} - q_{i|j}</tex>. Оптимизация функционала в данной интерпретации эквивалентна поиску положения точек, в котором будет наблюдаться равновесие сил.
== Симметричное стохастическое вложение соседей ==
<tex>q_{i j} = \dfrac {\exp ({ -{\left\Vert y_i - y_j \right\Vert}^2 }) } {\sum\limits_{k \neq l} \exp ({ -{\left\Vert y_k - y_l \right\Vert}^2) } }</tex>,
но то же решение для <tex>p_{i j}</tex> привело бы к проблеме, что для [[Выброс|выброса]] <tex>x_i</tex> <tex>p_{i j}</tex> будет очень маленькой для любого <tex>x_j</tex>. Таким образом, таким образом будет почти нулевой соответствующая дивергенция Кульбака-Лейблера для любого распределения <tex>q_{i j}</tex>. Это означало бы, что положение точки <tex>y_i</tex> определялось бы очень неточно относительно положения других точек и не было бы особой разницы в том, где она расположена. Поэтому в симметричном SNE <tex>p_{i j}</tex> определили как:
Таким образом, в симметричном SNE в качестве <tex>p_{i j} = \dfrac {p_{i|j} + p_{i|j} } {2|X|}</tex>.рассматривается следующая величина:
<tex>p_{i j} = \dfrac {p_{i|j} + p_{j|i} } {2|X|}</tex>. Очевидный плюс такого определения в том, что <tex>\sum\limits_j p_{i j} > \dfrac 1 {2|X|}</tex> для всех точек, что хорошо скажется на выбросах. А также теперь <tex>p_{i j} = p_{j i}</tex>, <tex>q_{i j} = q_{j i}</tex>.
Авторы утверждают, что симметричный SNE вкладывает данные в пространство низкой размерности почти так же как и ассиметричный, а иногда даже лучше.
== Проблема скученности ==
Необходимо понимать, что невозможно абсолютно точно моделировать расстояния между точками пространства высокой размерности в низком. Например, в десятимерном пространстве существует <tex>11</tex> равноудаленных друг от друга точек, в то время как на плоскости может быть максимум <tex>3</tex> равноудаленные точки. При использовании обычного SNE возникает следующая проблема, которая вытекает из разного распределения вероятностей в пространствах высокой и низкой размерностей. Пусть есть некоторое пространство высокой размерности. Пусть в нем точки <tex>x_i</tex> равномерно распределены в нем вокруг некоторой точки <tex>x_ix_0</tex> в некотором шаре с радиусом <tex>R</tex>. Заметим, что, чем больше размерность пространства, тем больше точек попадет рядом с границей шара, поэтому количество близких к <tex>x_0</tex> точек с ростом размерности будет убывать. Теперь попытаемся вложить данное пространство в плоскость. Пусть точки <tex>x_i</tex> перешли в точки <tex>y_i</tex> на плоскости. Заметим, что область пространства на плоскостиесли попытаться вложить точки <tex>x_i</tex> в круг радиуса <tex>R</tex> с центром в точке <tex>y_0</tex> образуется большое количество маленьких расстояний между точками <tex>y_i</tex>, доступная для размещения умеренно-удаленных точек пространства высокой размерности относительно области пространства, доступное для размещения близких точек пространства высокой размерности достаточно мала по сравнению с тем же самым т.к. объем сферы в исходном высокомерном пространстве (нужно сравнить отношения объемов сфер в этих пространствах)несопоставим с площадью круга на плоскости. Таким образом, если мы хотим правильно моделировать маленькие расстояния на плоскости и не иметь их между умеренно-удаленными точками пространства высокой размерности, следовало бы поместить умеренно-удаленные точки подальше от <tex>x_0</tex> точки <tex>x_i</tex>ещё дальше, чем в исходномпространстве. В Но в таком случае , вспоминая физическую интерпретацию, на эти слишком далекие соответствующие им точки на плоскости <tex>y_i</tex> будет действовать небольшая сила притяжения от точки к точке <tex>x_iy_0</tex>. Но, принимая Принимая во внимание остальные точки, таких сил что точек наподобие <tex>x_0</tex> в реальной выборке данных будет достаточно много, их пружины вместе образуют силу, что сожмет все точки в нуле и будет мешать образованию кластеров.
== Стохастическое вложение соседей с t-распределением ==
[[Файл:T-SNE iterations visualization.gif||200px|thumb|right|Рис. 3. Визуализация работы t-SNE]]
На Рис. 3 представлена визуализация работы t-SNE, на которой видны эффекты от применения данных приведенных выше оптимизаций.
== См. также ==
1632
правки

Навигация