Открыть сервис

Спектральная кластеризация

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

История

Методы, лежащие в основе спектральной кластеризации, имеют корни в теории графов и спектральном анализе. В 1973 году Мирослав Фидлер (Miroslav Fiedler) ввёл понятие алгебраической связности графа и показал, что второй наименьший собственный вектор матрицы Лапласа (вектор Фидлера) может использоваться для разбиения графа на две части. В 1990-х годах работы Джеймса Ши (Jianbo Shi) и Джитендры Малика (Jitendra Malik) по сегментации изображений (нормализованные разрезы, Normalized Cuts) популяризировали применение спектральных методов в компьютерном зрении. В 2000-х годах Ульрике фон Люксбург (Ulrike von Luxburg) и другие исследователи формализовали алгоритм, связав его с теорией графов, ядерными методами и задачами минимизации разреза графа.

Основные понятия

Граф и матрица смежности

Исходные данные представляются в виде взвешенного неориентированного графа \( G = (V, E) \), где вершины \( V \) — это объекты (например, точки данных), а рёбра \( E \) — связи между ними. Вес ребра \( w_{ij} \) отражает степень сходства между объектами \( i \) и \( j \). Обычно вес вычисляется с помощью функции ядра, например, гауссовского радиально-базисного ядра: \[ w_{ij} = \exp\left(-\frac{\|x_i - x_j\|^2}{2\sigma^2}\right) \] где \( \sigma \) — параметр масштаба. Матрица смежности \( W \) размера \( n \times n \) (где \( n \) — число объектов) содержит веса \( w_{ij} \).

Матрица Лапласа

Центральным инструментом является матрица Лапласа графа. Существует несколько вариантов:

Свойства матрицы Лапласа: она симметрична (для \( L \) и \( L_{sym} \)), положительно полуопределена, имеет \( n \) неотрицательных собственных значений \( 0 = \lambda_1 \le \lambda_2 \le \dots \le \lambda_n \). Количество нулевых собственных значений равно числу связных компонент графа.

Спектральное разложение

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

Алгоритм

Наиболее распространённый алгоритм спектральной кластеризации (нормализованные разрезы) состоит из следующих шагов:

  1. Построение графа сходства: По набору данных \( \{x_1, x_2, \dots, x_n\} \) строится взвешенный граф. Используются три основных подхода:
  1. Вычисление матрицы Лапласа: Выбирается один из вариантов (обычно \( L_{sym} \) или \( L_{rw} \)).
  2. Спектральное разложение: Находятся \( k \) собственных векторов, соответствующих \( k \) наименьшим собственным значениям выбранной матрицы Лапласа (для \( L_{sym} \) — это \( u_1, \dots, u_k \)). Эти векторы образуют матрицу \( U \in \mathbb{R}^{n \times k} \).
  3. Нормализация строк: Строки матрицы \( U \) нормализуются до единичной длины (для \( L_{sym} \)), чтобы устранить влияние степени вершин.
  4. Кластеризация в пространстве меньшей размерности: Каждая строка матрицы \( U \) рассматривается как точка в \( \mathbb{R}^k \). К этим точкам применяется стандартный алгоритм кластеризации, например, k-средних. Полученные метки присваиваются исходным вершинам.

Применение

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

Преимущества и недостатки

Преимущества

Недостатки

Связь с другими методами

Спектральная кластеризация тесно связана с:

Примеры

Пример 1: Концентрические окружности

Набор данных состоит из двух концентрических окружностей. Алгоритм k-средних не может их разделить, так как центроиды не отражают структуру. Спектральная кластеризация строит граф, где точки на одной окружности имеют высокие веса связей, а между окружностями — низкие. После спектрального разложения точки каждой окружности проецируются в два различных кластера в пространстве собственных векторов.

Пример 2: Сегментация изображения

Изображение 100×100 пикселей преобразуется в граф с 10 000 вершин. Веса рёбер вычисляются на основе сходства цвета и близости пикселей. Спектральная кластеризация выделяет области, соответствующие объектам, например, человеку на фоне неба.

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →