Машинное обучение стало основным набором навыков для любого специалиста по данным или количественного аналитика. Большая часть машинного обучения - это разработка функций, которая также включает уменьшение размерности. В большинстве случаев это очень необходимый шаг из-за большого объема собираемых данных. Данные высокой размерности имеют несколько недостатков:
- Вычислительная мощность и время, необходимые для анализа данных большой размерности, очень высоки.
- Пространство данных большой размерности «очень велико», и, следовательно, объем данных, необходимых для его эффективного анализа, становится экспоненциально большим. Это известно как проклятие размерности.
- Следовательно, выполнение надежных статистических выводов для данных большой размерности затруднено из-за относительной нехватки данных.
Именно поэтому существует потребность в уменьшении размерности, которое не только уменьшает размерность набора данных, чтобы упростить анализ, но также сохраняет характер и структуру набора данных. Класс алгоритмов уменьшения размерности, использующих геометрию данных, известен как многообразное обучение. Обзор многообразного обучения можно найти в этой статье: Многообразное обучение
В этой статье я подробно расскажу о 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, прочтите эту статью.