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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Пример двух связных графов

Техники спектральной кластеризации используют спектр (собственные значения) матрицы сходства данных для осуществления снижения размерности перед кластеризацией в пространствах меньших размерностей. Матрица сходства подаётся в качестве входа и состоит из количественных оценок относительной схожести каждой пары точек в данных.

В приложении к сегментации изображений спектральная кластеризация известна как кластеризация объектов на основе сегментации[en].

Алгоритмы[править | править код]

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

Одна из техник спектральной кластеризации — алгоритм нормализованных сечений[en] (или алгоритм Ши — Малика), предложенный Джиамбо Ши и Джитендра Маликом[1], широко используемый метод для сегментации изображений. Алгоритм разбивает точки на два множества основываясь на собственном векторе , соответствующем второму по величине собственному значению симметрично нормализованной матрицы Кирхгофа, задаваемой формулой

где — диагональная матрица

Математически эквивалентный алгоритм[2] использует собственный вектор, соответствующий наибольшему собственному значению нормализованной матрицы Кирхгофа случайного блуждания . Алгоритм Мейла – Ши был проверен в контексте диффузионных карт[en], которые, как обнаружилось, имеют связь с вычислительной квантовой механикой[3].

Другая возможность — использование матрицы Кирхгофа, задаваемой выражением

а не симметрично нормализованной матрицы Кирхгофа.

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

Если алгебраически матрица сходства ещё непостроена, эффективность спектральной кластеризации может быть улучшена, если решение соответствующей задачи — поиск собственных значений осуществить безматричным методом (без явного манипулирования или даже вычисления матрицы сходства), таким как алгоритм Ланцоша[en].

Для графов большого размера второе собственное значение (нормализованной) матрицы Кирхгофа графа часто плохо обусловленно, что приводит к медленной сходимости итеративных методов поиска собственных значений. Предобуславливание является ключевой техникой улучшения сходимости, для примера, в безматричном методе LOBPCG. Спектральная кластеризация была успешно применена к большим графам первым делом путём распознавания структуры сетевого сообщества, а затем уж кластеризации сообщества[4].

Спектральная кластеризация тесно связана с нелинейным понижением размерности[en] и могут быть использованы техники понижения размерности, такие как локально линейное вложение, для уменьшения погрешности от шума или выброса в наблюдениях[5].


Бесплатное программное обеспечение для имплементации спектральной кластеризации доступно в больших проектах с открытым исходным кодом, таких как Scikit-learn[en] [6], MLlib для кластеризации на основе псевдособственных значений с использованием метода степенной итерации[en][7], языка R [8].

Связь с k-средними[править | править код]

Задача о k-средних с нелинейным ядром[en] является расширением задачи о k-средних, в которой входные точки отображаются нелинейно в пространство признаков высокой размерности с помощью кернфункции . Взвешенная задача о k-средних с нелинейным ядром расширяет задачу далее, задавая вес для каждого кластера как значение, обратно пропорциональное числу элементов кластера,

Пусть — матрица нормализованных коэффициентов для каждой точки любого кластера, в которой , если , и 0 в противном случае. Пусть — матрица ядра для всех точек. Взвешенная задача о k-средних с нелинейным ядром с n точками и k кластерами задаётся как задача максимизации

при условиях

При этом . Кроме того, задано ограничение на коэффициенты

,

где представляет собой вектор из единиц.

Задачу можно преобразовать в

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

Меры для сравнения кластеризации[править | править код]

Рави Каннан, Сантош Вемпала и Адриан Ветта[11] предложили бикритериальную меру для определения качества кластеризации. Они говорят, что кластеризация является (α, ε)-кластеризацией, если проводимость каждого кластера не меньше α, а вес межкластерных рёбер не превышает ε доли от веса всех рёбер в графе. В той же статье они рассматривают также два аппроксимационных алгоритма.

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]