Машинное обучение стало основным набором навыков для любого специалиста по данным или количественного аналитика. Большая часть машинного обучения - это разработка функций, которая также включает уменьшение размерности. В большинстве случаев это очень необходимый шаг из-за большого объема собираемых данных. Данные высокой размерности имеют несколько недостатков:

  1. Вычислительная мощность и время, необходимые для анализа данных большой размерности, очень высоки.
  2. Пространство данных большой размерности «очень велико», и, следовательно, объем данных, необходимых для его эффективного анализа, становится экспоненциально большим. Это известно как проклятие размерности.
  3. Следовательно, выполнение надежных статистических выводов для данных большой размерности затруднено из-за относительной нехватки данных.

Именно поэтому существует потребность в уменьшении размерности, которое не только уменьшает размерность набора данных, чтобы упростить анализ, но также сохраняет характер и структуру набора данных. Класс алгоритмов уменьшения размерности, использующих геометрию данных, известен как многообразное обучение. Обзор многообразного обучения можно найти в этой статье: Многообразное обучение

В этой статье я подробно расскажу о t-распределенном алгоритме стохастического соседнего встраивания (t-SNE), который находится в процессе обучения множеству и невероятно полезен для визуализации многомерных наборов данных. По моему скромному мнению, прежде чем использовать инструменты анализа, важно понять теоретические основы, лежащие в основе этого, и ограничения, которые возникают в результате использования этого инструмента. Поэтому я углублюсь в работу алгоритма и немного посмотрю, как он реализован.

t-SNE

T-распределенное стохастическое соседнее встраивание, или t-SNE, как его обычно называют, представляет собой алгоритм множественного обучения, который, по сути, строит распределение вероятностей по набору данных, а затем другое распределение вероятностей в пространстве данных более низкой размерности, делая оба распределения как «близко», насколько это возможно (позже мы сделаем это понятие более строгим).

Однако, прежде чем рассматривать t-SNE, мы исследуем SNE, в котором используется распределение Гаусса вместо t-распределения Стьюдента. Первым шагом является построение вероятностного распределения набора данных в больших измерениях. Вероятности в наборе данных построены с использованием распределения Гаусса, которое составляет

Интуиция, лежащая в основе этой конструкции, довольно проста. Евклидовы расстояния между попарными точками считаются нормально распределенными со средним значением местоположения точки и сигмой дисперсии, которую определяет пользователь.

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

Теперь цель состоит в том, чтобы убедиться, что два распределения вероятностей максимально похожи. Это достигается за счет расхождения Кульбака-Лейблера (KL).

Расхождение KL - это мера того, насколько два распределения вероятностей отличаются друг от друга. Дивергенция KL определяется как

По сути, дивергенция KL - это ожидаемое значение логарифмической разности вероятностей точек данных. Теперь, когда у нас есть представление о том, как измерить сходство / различие между распределениями, мы можем оптимизировать это с помощью хорошо известных методов градиентного спуска.

Однако у использования SNE есть существенный недостаток. Это называется проблемой скученности, и это результат проклятия размерности. Учтите, что у вас есть некоторые точки данных, которые имеют десять внутренних измерений, но представлены в гораздо более многомерном пространстве, и вы хотите уменьшить его до двух измерений. Возможно, что если количество точек данных невелико, скажем 11, тогда нет надежного способа сопоставить точки данных в двух измерениях.

Кроме того, когда вы отображаете данные высокой размерности в двух измерениях, область, используемая точками данных в двух измерениях, которые имеют большие расстояния в данных высокой размерности, не будет достаточно больше, чем область, используемая точками данных в двух измерениях, которые имеют низкие расстояния в данных большой размерности. Это связано с тем, что размер увеличивается экспоненциально с увеличением размеров. Рассмотрим объем сферы в n измерениях. Он растет со степенью радиуса. Таким образом, сфера в n-мерном пространстве будет занимать гораздо больше места, чем сфера в 2-х измерениях, даже с тем же радиусом. Таким образом, данные в двух измерениях имеют тенденцию «скучиваться» вместе.

Поскольку мы сравниваем вероятности точек данных, а не фактические расстояния, естественный способ преодолеть эту проблему - рассмотреть распределения с более толстыми хвостами, чем гауссовские. Одним из таких распределений является распределение Стьюдента. Это работает, потому что, когда хвосты более толстые, расстояние между точками в пространстве более низкой размерности намного больше по сравнению с тем, когда хвосты распределены нормально.

Чтобы визуализировать это, рассмотрите следующее. Значение z совокупной оценки вероятности в распределении Стьюдента больше, чем значение z совокупной оценки вероятности в распределении Гаусса. Итак, формула для вероятностей в низкоразмерном пространстве теперь сводится к:

Оптимизация дивергенции KL выполняется с помощью алгоритмов градиентного спуска, с которыми должен быть знаком каждый энтузиаст науки о данных. Тем не менее, есть некоторые улучшения, такие как раннее преувеличение, что означает, что вероятности p умножаются в первую очередь на ранних этапах оптимизации, поощряя большие значения для p и довольно большие значения для q. Это означает, что пространство между кластерами максимально увеличено и лучше подходит для визуализаций. Еще одно улучшение - добавление L2-регуляризации квадратов расстояний данных, что способствует кластеризации точек данных.

Заключение

Напомним, что мы сначала узнали о том, как работает алгоритм SNE, посмотрев, как построить распределение вероятностей в обоих наборах данных и минимизировать расхождение KL, чтобы получить наиболее похожий набор данных в более низких измерениях. Затем мы обсудили проблему скученности при использовании Gaussian и решили ее с помощью распределения Стьюдента. Наконец, мы рассмотрели, как улучшить классический алгоритм градиентного спуска с использованием раннего преувеличения и раннего сжатия. Надеюсь, это оставит вам понимание того, как работает t-SNE. Чтобы узнать, как эффективно настроить параметры t-SNE, прочтите эту статью.