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

Многомерность редукция часто вводится с понятием проклятия размерности размерности.

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

Пусть у нас есть набор данных, состоящий из 2 функций и 12 наблюдений:

Если мы добавим одну функцию, расстояние между точками данных увеличится и изменит способ обучения модели:

В многомерном пространстве пространстве точки очень удалены друг от друга. Таким образом, для набора данных со многими функциями точки обучающих данных будут сильно разделены. Таким образом, появляется проклятие размерности, подразумевающее, что если данных для обучения слишком мало, наличие большого количества функций приведет к плохому обучению обучению и модели, которая будет давать плохие прогнозы для новых наблюдения.

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

Идея состоит в том, чтобы иметь возможность противостоять этой проблеме, позволяя машине учиться на лучших отношениях между данными. Действительно, что мы знаем о машинном обучении, так это то, что алгоритм, инициализированный в модели, будет пытаться понять, как данные представлены между ними, чтобы правильно ориентироваться при столкновении с новыми данными.
Это также относится к другим типам данных, таким как изображения, текст или аудио, модель научится замечать различия между функциями. Однако в контексте неструктурированных данных, представленных выше (изображения, текст, аудио…), указанные признаки умножаются (слово представлено по отношению к себе, но также и по отношению к другим и т. д.), и это приводит к измерениям, которые невозможно измерить. представлять себе.

Как можно уменьшить размер набора данных и справиться с этой нагрузкой?

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

Два подхода против проклятия размерности

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

Проекция

Этот первый подход в основном уменьшает измерение путем проецирования точек данных точек из пространства высшего измерения в низшее при сохранении взаимосвязей между функциями.

Если мы применим проекцию к набору 3D-данных, это позволит представить набор данных в двухмерном подпространстве следующим образом:

Этот пример вдохновлен тем же из книги Орельена Жерона.

Особенность, которую мы можем отметить, заключается в том, что новое представление (в 2D) проецируется только с 2 функциями, тогда как 3D-представление использовало 3 функции. Однако до тех пор логично иметь возможность сохранять отношения между функциями/переменными, проекция создает новые функции, которые содержат «сущность» набора данных. Основной Компонентный Анализ (PCA) — наиболее известный метод прогнозирования, и мы сосредоточимся на нем в следующем часть.

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

Как вы можете заметить, проекция затрудняет машинное обучение. Давайте посмотрим, как мы можем достичь второй редукции и иметь дело с нелинейными структурами.

Многообразное обучение

Этот подход на самом деле включает проекцию, потому что многообразие в математике:

Топологическое пространство, локально напоминающее евклидово пространство вблизи каждой точки (Википедия).

Многообразие позволяет представлять любую структуру данных в пространстве более низкого измерения, которое сохраняет ту же структуру, в конечном итоге пересобирая представление высокого измерения в уникальное локальное.

Если мы рассмотрим проекцию, она на самом деле не будет собираться заново, а просто представит трехмерную структуру в двухмерную.

2D многообразие – это два измерения, которые можно сложить в большое пространство: сферу или тор для пример.

Многообразное обучение основано на двух гипотезах:

Теперь, когда мы знаем оба основных подхода к уменьшению размерности, давайте рассмотрим методы с двумя алгоритмами: PCA и LLE.

Основные приемы уменьшения размерности

Мы углубимся в методы, которые берут структуры набора данных и уменьшают размерность этих структур.

Анализ главных компонентов

Этот метод является наиболее известным и может использоваться также в задачах обучения без учителя.

PCA использует проекционные подходы для уменьшения размерности данных. Он находит основные компоненты в структуре набора данных и сохраняет наиболее полезные из них.

Основными компонентами являются единичные векторы (векторы, которые могут указывать направление ненулевого вектора на плане):

Эти компоненты отслеживают представление структуры данных, поскольку каждый компонент вносит свой вклад в дисперсию данных (сохраняет информацию). Векторы c1 и c2 являются двумя первыми основными компонентами набора данных.

Коэффициент объясняемой дисперсии является одним из важных показателей в PCA, поскольку каждый компонент, который вы можете выбрать количество компонентов, чтобы сохранить в качестве нового представления вашего набора данных. Например, первый компонент (лучший) может объяснить 80% дисперсии ваших данных, второй — 10%… Если вы решите сохранить 90% дисперсии, вы сохраните два компонента и ваш набор данных. теперь будет состоять из 2 функций и, следовательно, 2 измерений. Это уменьшение размерности на основе проекции.

Поскольку эти компоненты являются единичными векторами, исходные функции набора данных больше не будут использоваться для обучения, а новыми функциями будут Основной компонент 1, Основной компонент 2…

Анализ основных компонентов доступен в Scikit-Learn со следующим кодом:

Главная проблема PCA заключается в том, что он работает в основном для линейных данных структуры И именно поэтому существуют другие методы.

Локально-линейное вложение

LLE — это нелинейный метод уменьшения размерности, который оценивает окрестности для каждой точки данных в многомерном пространстве и ищет более низкую точку, которая сохраняет эти отношения ближайших окрестностей.
Определение Scikit-Learn идет с хорошим сравнением: LLE «можно рассматривать как серию локальных анализов основных компонентов, которые глобально сравниваются для поиска наилучшего нелинейного встраивания».

Техника работает в несколько этапов:

  • Найдите локальные линейные отношения/k-ближайшие соседи каждой точки данных и сопоставьте веса, которые минимизируют расстояние между точка данных и ее соседи. Благодаря этому алгоритм знает все локальные окрестности.
  • Как только он поймет данные, он попытается найти новое представление всех этих локальных линейных отношений в d-мерном пространстве. Для этого он ищет позиции для каждой точки в новом пространстве, которые соответствуют соотношениям и минимизированным расстояниям, найденным на первом этапе.

Как PCA, LLE доступен в Scikit-Learn:

Заключение

Размерность уменьшение очень важно и полезно в мире с постоянно большими наборами данных. Любые неструктурированные и сложные данные должны проходить через уменьшение размерности, чтобы модель могла обучаться.
Существуют различные подходы, такие как Проекция или Многообразие Обучение, и каждый из них имеет алгоритмы, которые можно применять непосредственно к данным. Например, PCA или LLE, но некоторые другие также эффективны: Isomap, t-SNE Метод, LDA (линейный дискриминантный анализ)…

Спасибо, что прочитали эту статью, надеюсь, вам понравилось и вы лучше поняли, как работает уменьшение размерности!

Ресурсы: