Спектральная кластеризация
Материал из MachineLearning.
| Строка 1: | Строка 1: | ||
| - | + | {{well|Статья написана с использованием LLM ChatGPT и проверена участником [[Участник:...|...]].}} | |
| - | + | {{TOCright}} | |
| - | Спектральная кластеризация | + | '''Спектральная кластеризация''' — семейство методов [[Кластеризация|кластеризации]], основанных на представлении данных в виде взвешенного графа и анализе спектра его [[Лапласиан графа|лапласиана]]. В отличие от методов, работающих непосредственно в исходном пространстве признаков, спектральная кластеризация использует структуру связей между объектами и позволяет находить кластеры сложной формы, которые могут быть неразделимы линейными границами. |
| + | |||
| + | Основная идея метода состоит в построении графа сходства, вычислении нескольких собственных векторов соответствующего лапласиана и последующей кластеризации полученного низкоразмерного представления, обычно алгоритмом [[k-means]]. Метод тесно связан с задачами разбиения графов, критериями [[Normalized Cut]] и [[RatioCut]], а также с такими направлениями, как [[Laplacian Eigenmaps]] и [[Diffusion Maps]].<ref name="Luxburg2007">U. von Luxburg. A Tutorial on Spectral Clustering. Statistics and Computing, 17(4):395–416, 2007.</ref> | ||
== Постановка задачи == | == Постановка задачи == | ||
| - | Пусть дана выборка объектов | + | Пусть дана выборка объектов |
| - | :: <tex>X=\{x_1 | + | :: <tex>X=\{x_1,\ldots,x_n\}, \qquad x_i\in\mathbf{R}^d.</tex> |
| - | + | Цель [[кластеризация|кластеризации]] — разбить множество объектов на <tex>K</tex> групп: | |
:: <tex>X=C_1\cup C_2\cup\dots\cup C_K.</tex> | :: <tex>X=C_1\cup C_2\cup\dots\cup C_K.</tex> | ||
| - | В | + | В спектральной кластеризации сначала строится граф |
| - | + | ||
| - | + | ||
:: <tex>G=(V,E,W),</tex> | :: <tex>G=(V,E,W),</tex> | ||
| Строка 23: | Строка 23: | ||
где: | где: | ||
| - | * <tex>V</tex> — множество вершин; | + | * <tex>V</tex> — множество вершин, соответствующих объектам; |
* <tex>E</tex> — множество рёбер; | * <tex>E</tex> — множество рёбер; | ||
| - | * <tex>W=(w_{ij})</tex> — матрица весов | + | * <tex>W=(w_{ij})</tex> — матрица весов, задающая сходство объектов. |
| - | + | Вес <tex>w_{ij}</tex> показывает, насколько объекты <tex>x_i</tex> и <tex>x_j</tex> близки. Большие значения соответствуют сильным связям, малые — слабым. | |
| - | + | После построения графа задача кластеризации преобразуется в задачу поиска слабо связанных областей графа. | |
| - | + | == Построение графа сходства == | |
| - | + | Качество спектральной кластеризации во многом определяется выбором графа. Один и тот же набор объектов при разных способах построения графа может давать различные результаты. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Полносвязный граф === | === Полносвязный граф === | ||
| - | В | + | В простейшем случае каждое ребро присутствует между всеми парами объектов: |
:: <tex>w_{ij}>0,\qquad i\neq j.</tex> | :: <tex>w_{ij}>0,\qquad i\neq j.</tex> | ||
| - | + | Часто используется гауссово ядро: | |
| - | :: <tex> | + | :: <tex>w_{ij}=\exp\left(-\frac{\|x_i-x_j\|^2}{2\sigma^2}\right).</tex> |
| - | w_{ij}= | + | |
| - | \exp | + | |
| - | \left( | + | |
| - | -\frac{\|x_i-x_j\|^2}{2\sigma^2} | + | |
| - | \right). | + | |
| - | </tex> | + | |
| - | Параметр <tex>\sigma</tex> определяет масштаб | + | Параметр <tex>\sigma</tex> определяет масштаб локальной близости. |
| - | + | Преимущество полносвязного графа — использование всей информации о сходстве. Недостаток — квадратичная сложность хранения: | |
| - | + | :: <tex>O(n^2).</tex> | |
| - | + | ||
| - | + | Поэтому для больших данных чаще используются разреженные графы. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Граф ближайших соседей === | === Граф ближайших соседей === | ||
| - | В графе | + | В <tex>k</tex>-NN графе вершина соединяется только с ближайшими соседями: |
| - | + | :: <tex>(i,j)\in E \Leftrightarrow x_j\in {\rm kNN}(x_i).</tex> | |
| - | : | + | После построения граф обычно симметризуется: |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | * объединённый граф — ребро существует, если хотя бы одна вершина выбирает другую; | |
| + | * взаимный граф — ребро существует, если обе вершины выбирают друг друга. | ||
| - | + | Граф ближайших соседей уменьшает вычислительную стоимость и лучше сохраняет локальную структуру данных. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Граф ближайших соседей уменьшает | + | |
=== ε-граф === | === ε-граф === | ||
| - | В ε-графе связь | + | В ε-графе связь создаётся, если расстояние меньше заданного порога: |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | :: <tex>(i,j)\in E \Leftrightarrow \|x_i-x_j\|\leq\varepsilon.</tex> | |
| - | Недостаток — необходимость | + | Недостаток метода — необходимость правильно выбрать параметр <tex>\varepsilon</tex>. Малое значение может привести к разрыву графа, а большое — к объединению разных кластеров. |
| - | == Матрица смежности == | + | == Матрица смежности и матрица степеней == |
Матрица весов | Матрица весов | ||
| - | :: <tex> | + | :: <tex>W=(w_{ij})</tex> |
| - | W=(w_{ij}) | + | |
| - | </tex> | + | |
называется матрицей смежности или матрицей сходства. | называется матрицей смежности или матрицей сходства. | ||
| Строка 127: | Строка 84: | ||
Для невзвешенного графа: | Для невзвешенного графа: | ||
| - | :: <tex> | + | :: <tex>w_{ij}= \left\{\begin{array}{ll} 1,&(i,j)\in E,\\ 0,&(i,j)\notin E. \end{array}\right.</tex> |
| - | w_{ij}= | + | |
| - | \begin{ | + | |
| - | 1,&(i,j)\in E,\\ | + | |
| - | 0,&(i,j)\notin E. | + | |
| - | \end{ | + | |
| - | </tex> | + | |
| - | + | Степень вершины определяется как | |
| - | + | :: <tex>d_i=\sum_j w_{ij}.</tex> | |
| - | : | + | Матрица степеней: |
| - | + | :: <tex>D= \left(\begin{array}{cccc} d_1&0&\dots&0\\ 0&d_2&\dots&0\\ \vdots&\vdots&\ddots&\vdots\\ 0&0&\dots&d_n \end{array}\right).</tex> | |
| - | + | Степень показывает общую силу связи вершины с остальным графом. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
== Лапласианы графа == | == Лапласианы графа == | ||
| - | |||
| - | |||
=== Ненормализованный лапласиан === | === Ненормализованный лапласиан === | ||
| - | Классический лапласиан определяется как | + | Классический лапласиан определяется как |
| - | :: <tex> | + | :: <tex>L=D-W.</tex> |
| - | L=D-W. | + | |
| - | </tex> | + | |
| - | + | Он обладает важным свойством: | |
| - | :: <tex> | + | :: <tex>x^TLx=\frac12\sum_{i,j}w_{ij}(x_i-x_j)^2.</tex> |
| - | + | ||
| - | \frac12 | + | |
| - | \sum_{i,j} | + | |
| - | w_{ij}( | + | |
| - | </tex> | + | |
| - | + | Следовательно, если две вершины сильно связаны, то значение соответствующих координат вектора должно быть близким. | |
| - | + | Лапласиан является симметричной положительно полуопределённой матрицей. Его минимальное собственное значение равно нулю: | |
| - | + | :: <tex>\lambda_1=0.</tex> | |
| - | + | Количество собственных значений, равных нулю, совпадает с количеством компонент связности графа.<ref name="Chung1997">F. Chung. Spectral Graph Theory. American Mathematical Society, 1997.</ref> | |
| - | + | ||
| - | + | ||
| - | + | === Нормализованный лапласиан === | |
| - | + | Для уменьшения влияния различий в степенях вершин используют нормализованный лапласиан: | |
| - | + | :: <tex>L_{sym}=D^{-1/2}LD^{-1/2} =I-D^{-1/2}WD^{-1/2}.</tex> | |
| - | + | ||
| - | :: <tex> | + | |
| - | L_{sym} | + | |
| - | = | + | |
| - | D^{-1/2}LD^{-1/2} | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | = | + | |
| - | I-D^{-1/2}WD^{-1/2}. | + | |
| - | </tex> | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
Другой вариант: | Другой вариант: | ||
| - | :: <tex> | + | :: <tex>L_{rw}=D^{-1}L.</tex> |
| - | L_{rw}=D^{-1}L. | + | |
| - | </tex> | + | |
| - | Он связан | + | Он связан со случайным блужданием по графу. |
| - | + | Нормализация особенно важна, когда кластеры имеют разные размеры или различную плотность связей. | |
| - | + | ||
| - | + | ||
| - | + | == Собственные значения и собственные векторы == | |
| - | + | Пусть | |
| - | + | ||
| - | + | ||
| - | + | :: <tex>Lu=\lambda u</tex> | |
| - | + | — задача на собственные значения лапласиана. | |
| - | + | Собственные значения упорядочиваются: | |
| - | :: <tex> | + | :: <tex>0=\lambda_1\leq\lambda_2\leq\dots\leq\lambda_n.</tex> |
| - | + | ||
| - | </tex> | + | |
| - | + | Собственные векторы соответствуют направлениям, в которых структура графа изменяется медленно. | |
| - | + | Если граф состоит из нескольких почти независимых частей, то первые собственные векторы приближают индикаторы этих групп. | |
| - | + | ||
| - | + | В идеальном случае, когда граф имеет ровно <tex>K</tex> компонент связности: | |
| - | :: <tex> | + | :: <tex>\lambda_1=\lambda_2=\dots=\lambda_K=0.</tex> |
| - | + | ||
| - | </tex> | + | |
| - | + | Поэтому первые <tex>K</tex> собственных векторов содержат информацию о кластерной структуре. | |
| - | + | Разность между соседними собственными значениями: | |
| - | + | :: <tex>\lambda_{K+1}-\lambda_K</tex> | |
| - | + | называется спектральным зазором и часто используется для выбора числа кластеров. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
== Спектральное вложение == | == Спектральное вложение == | ||
| - | Пусть найдены собственные векторы | + | Пусть найдены собственные векторы |
| - | :: <tex> | + | :: <tex>u_1,\ldots,u_K.</tex> |
| - | u_1 | + | |
| - | </tex> | + | |
Из них формируется матрица: | Из них формируется матрица: | ||
| - | :: <tex> | + | :: <tex>U=[u_1,\ldots,u_K].</tex> |
| - | U=[u_1 | + | |
| - | </tex> | + | |
| - | Каждый объект заменяется строкой: | + | Каждый объект заменяется строкой этой матрицы: |
| - | :: <tex> | + | :: <tex>y_i=U_{i,:}.</tex> |
| - | y_i=U_{i,:}. | + | |
| - | </tex> | + | |
| - | Таким образом | + | Таким образом исходное пространство высокой размерности заменяется новым пространством размерности <tex>K</tex>. |
| - | После этого | + | После этого применяется обычная кластеризация: |
| - | :: <tex> | + | :: <tex>\{y_1,\ldots,y_n\}\rightarrow C_1,\ldots,C_K.</tex> |
| - | y_1 | + | |
| - | \rightarrow | + | |
| - | C_1 | + | |
| - | </tex> | + | |
| - | Чаще всего | + | Чаще всего используется [[k-means]]. |
| - | Для нормализованной версии Нга — Джордана — Вайса | + | Для нормализованной версии Нга — Джордана — Вайса строки дополнительно нормируются: |
| - | :: <tex> | + | :: <tex>y_i= \frac{U_{i,:}}{\|U_{i,:}\|_2}.</tex> |
| - | y_i= | + | |
| - | \frac{U_{i,:}} | + | |
| - | {\|U_{i,:}\|_2}. | + | |
| - | </tex> | + | |
<ref name="Ng2002">A. Ng, M. Jordan, Y. Weiss. On Spectral Clustering: Analysis and an Algorithm. Advances in Neural Information Processing Systems, 2002.</ref> | <ref name="Ng2002">A. Ng, M. Jordan, Y. Weiss. On Spectral Clustering: Analysis and an Algorithm. Advances in Neural Information Processing Systems, 2002.</ref> | ||
| - | == Связь с | + | == Связь с RatioCut и Normalized Cut == |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Разрез графа === | === Разрез графа === | ||
| - | Для двух | + | Для двух множеств вершин <tex>A</tex> и <tex>B</tex> определяется вес разреза: |
| - | :: <tex> | + | :: <tex>cut(A,B)= \sum_{i\in A}\sum_{j\in B}w_{ij}.</tex> |
| - | cut(A,B)= | + | |
| - | \sum_{i\in A} | + | |
| - | \sum_{j\in B} | + | |
| - | w_{ij}. | + | |
| - | </tex> | + | |
| - | Минимизация только этого | + | Минимизация только этого выражения приводит к выделению маленьких групп или одиночных вершин. |
| - | + | ||
| - | + | ||
=== RatioCut === | === RatioCut === | ||
| - | Критерий RatioCut | + | Критерий RatioCut учитывает размер кластеров: |
| - | :: <tex> | + | :: <tex>RatioCut(A_1,\ldots,A_K)= \sum_{i=1}^{K} \frac{cut(A_i,\bar A_i)} {|A_i|}.</tex> |
| - | RatioCut(A_1,\ldots,A_K)= | + | |
| - | \sum_{i=1}^{K} | + | |
| - | \frac{cut(A_i,\ | + | |
| - | {|A_i|}. | + | |
| - | </tex> | + | |
| - | Он | + | Он стремится минимизировать связи между кластерами и одновременно избегать слишком маленьких групп. |
| - | Спектральная релаксация | + | Спектральная релаксация RatioCut приводит к поиску собственных векторов ненормализованного лапласиана. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
=== Normalized Cut === | === Normalized Cut === | ||
| - | + | Normalized Cut использует объём множества: | |
| - | :: <tex> | + | :: <tex>vol(A)=\sum_{i\in A}d_i.</tex> |
| - | vol(A)=\sum_{i\in A}d_i. | + | |
| - | </tex> | + | |
| - | Критерий | + | Критерий: |
| - | :: <tex> | + | :: <tex>Ncut(A_1,\ldots,A_K)= \sum_{i=1}^{K} \frac{cut(A_i,\bar A_i)} {vol(A_i)}.</tex> |
| - | Ncut(A_1,\ldots,A_K)= | + | |
| - | \sum_{i=1}^{K} | + | |
| - | \frac{cut(A_i,\ | + | |
| - | {vol(A_i)}. | + | |
| - | </tex> | + | |
| - | + | Его спектральная релаксация приводит к собственным векторам нормализованного лапласиана. | |
| - | + | ||
| - | Его спектральная релаксация приводит к | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| + | Normalized Cut широко применяется в задачах сегментации изображений.<ref name="ShiMalik2000">J. Shi, J. Malik. Normalized Cuts and Image Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(8):888–905, 2000.</ref> | ||
== Алгоритм спектральной кластеризации == | == Алгоритм спектральной кластеризации == | ||
| - | === | + | === Базовый алгоритм === |
Вход: | Вход: | ||
| - | * | + | * множество объектов <tex>X=\{x_1,\ldots,x_n\}</tex>; |
* число кластеров <tex>K</tex>; | * число кластеров <tex>K</tex>; | ||
| - | * функция сходства. | + | * функция сходства; |
| + | * параметры построения графа. | ||
| - | + | Выход: | |
| + | |||
| + | * кластерные метки объектов. | ||
| + | |||
| + | Алгоритм: | ||
# Построить матрицу сходства <tex>W</tex>. | # Построить матрицу сходства <tex>W</tex>. | ||
# Вычислить матрицу степеней <tex>D</tex>. | # Вычислить матрицу степеней <tex>D</tex>. | ||
| - | # Построить лапласиан: | + | # Построить выбранный лапласиан: |
| + | ## <tex>L=D-W</tex> для ненормализованной версии; | ||
| + | ## <tex>L_{sym}=I-D^{-1/2}WD^{-1/2}</tex> для нормализованной версии. | ||
| + | # Найти <tex>K</tex> собственных векторов, соответствующих наименьшим собственным значениям. | ||
| + | # Сформировать спектральное вложение объектов. | ||
| + | # Выполнить кластеризацию строк полученной матрицы, обычно методом [[k-means]]. | ||
| + | # Присвоить исходным объектам найденные метки. | ||
| - | + | === Псевдокод === | |
| - | + | ||
| - | + | ||
| - | + | '''Вход:''' данные X, число кластеров K. | |
| - | + | ||
| - | : | + | '''Выход:''' метки кластеров. |
| - | + | ||
| - | + | ||
| - | + | 1. Построить граф сходства W. | |
| - | + | 2. Вычислить степени вершин D. | |
| + | 3. Построить лапласиан L. | ||
| + | 4. Найти K минимальных собственных векторов: | ||
| + | L u_i = λ_i u_i | ||
| + | 5. Сформировать матрицу U. | ||
| + | 6. Нормировать строки U (для нормализованного варианта). | ||
| + | 7. Выполнить k-means по строкам U. | ||
| + | 8. Вернуть полученные группы. | ||
| + | == Выбор параметров == | ||
| - | === | + | === Число кластеров === |
| - | + | В классическом алгоритме число кластеров <tex>K</tex> задаётся заранее. Однако часто его необходимо оценивать. | |
| - | + | Один из распространённых подходов основан на спектральном зазоре: | |
| - | + | ||
| - | :: <tex> | + | :: <tex>gap(k)=\lambda_{k+1}-\lambda_k.</tex> |
| - | + | ||
| - | </tex> | + | |
| - | + | Если между двумя соседними собственными значениями существует большой разрыв, это может указывать на естественное число кластеров. | |
| - | + | ||
| - | + | Однако спектральный зазор является только эвристикой. Большой разрыв может возникать из-за особенностей построенного графа, выбросов или неравномерной плотности данных. | |
| - | + | ||
| - | + | ||
| - | + | === Выбор числа соседей === | |
| - | + | В графах ближайших соседей параметр <tex>k</tex> определяет локальный масштаб. | |
| - | + | ||
| - | + | ||
| - | </tex> | + | |
| - | + | Слишком маленькое значение: | |
| + | * приводит к разрывам графа; | ||
| + | * создаёт искусственные компоненты связности; | ||
| + | * делает результат нестабильным. | ||
| - | + | Слишком большое значение: | |
| - | + | * добавляет связи между различными группами; | |
| + | * сглаживает границы кластеров; | ||
| + | * приближает граф к полносвязному. | ||
| - | + | На практике рекомендуется проверять устойчивость кластеров при нескольких значениях <tex>k</tex>. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| + | === Выбор параметра ядра === | ||
| - | + | Для гауссового сходства | |
| - | = | + | :: <tex>w_{ij}= \exp \left( -\frac{\|x_i-x_j\|^2}{2\sigma^2} \right)</tex> |
| - | + | параметр <tex>\sigma</tex> определяет масштаб. | |
| - | + | Если <tex>\sigma</tex> слишком мал: | |
| - | + | * большинство весов становится близко к нулю; | |
| - | + | * граф может распасться. | |
| - | + | ||
| - | + | Если <tex>\sigma</tex> слишком велик: | |
| - | + | * все объекты становятся похожими; | |
| + | * теряется локальная структура. | ||
| - | + | Для неоднородных данных применяют локальные масштабы: | |
| - | + | :: <tex>w_{ij}= \exp \left( -\frac{\|x_i-x_j\|^2}{\sigma_i\sigma_j} \right).</tex> | |
| - | + | Такой подход называется самонастраиваемой спектральной кластеризацией.<ref name="Zelnik2004">L. Zelnik-Manor, P. Perona. Self-Tuning Spectral Clustering. Advances in Neural Information Processing Systems, 2004.</ref> | |
| - | + | == Ненормализованная и нормализованная спектральная кластеризация == | |
| - | + | ||
| - | + | === Ненормализованный вариант === | |
| - | + | Используется лапласиан | |
| - | + | ||
| - | + | :: <tex>L=D-W.</tex> | |
| - | + | Он соответствует релаксации критерия RatioCut. | |
| - | + | Преимущества: | |
| - | + | * простая математическая форма; | |
| - | + | * естественная связь с теорией графов; | |
| - | + | * хорошая работа при близких степенях вершин. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | Недостатки: | |
| - | + | * чувствительность к различию плотностей; | |
| + | * зависимость от размеров кластеров; | ||
| + | * хуже работает при сильно неоднородных данных. | ||
| - | + | === Нормализованный вариант === | |
| - | + | Используются: | |
| - | :: <tex> | + | :: <tex>L_{sym}=D^{-1/2}LD^{-1/2}</tex> |
| - | + | ||
| - | = | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | { | + | |
| - | + | ||
| - | </tex> | + | |
| - | + | или | |
| - | + | :: <tex>L_{rw}=D^{-1}L.</tex> | |
| - | + | Нормализация учитывает степень каждой вершины и уменьшает влияние крупных плотных областей. | |
| - | + | ||
| - | + | ||
| - | + | Преимущества: | |
| + | * устойчивость к различным размерам кластеров; | ||
| + | * связь со случайными блужданиями; | ||
| + | * широкое применение на реальных данных. | ||
| - | + | Именно нормализованные варианты чаще используются в современных приложениях. | |
| - | + | == Масштабируемая спектральная кластеризация == | |
| - | + | Классическая спектральная кластеризация имеет высокую вычислительную стоимость. | |
| - | + | Для полной матрицы сходства: | |
| - | + | :: <tex>W\in\mathbf{R}^{n\times n},</tex> | |
| - | + | требуется | |
| - | :: <tex> | + | :: <tex>O(n^2)</tex> |
| - | + | ||
| - | </tex> | + | |
| - | + | памяти. | |
| - | : | + | Полное собственное разложение имеет сложность порядка: |
| - | + | ||
| - | + | ||
| - | + | :: <tex>O(n^3).</tex> | |
| - | + | Поэтому для больших наборов данных применяются приближённые методы. | |
| - | + | === Метод Nyström === | |
| - | + | ||
| - | + | ||
| - | + | Метод Nyström приближает большую матрицу сходства через небольшое количество опорных точек. | |
| - | + | Пусть выбрано <tex>m\ll n</tex> объектов. Тогда матрица сходства приближается низкоранговой: | |
| + | |||
| + | :: <tex>W\approx UV^T.</tex> | ||
| + | |||
| + | Вместо разложения матрицы размера <tex>n\times n</tex> решается задача меньшего размера. | ||
| + | |||
| + | Преимущества: | ||
| + | |||
| + | * снижение памяти; | ||
| + | * ускорение вычислений; | ||
| + | * возможность работы с большими выборками. | ||
| + | Недостаток — качество зависит от выбора опорных точек.<ref name="Fowlkes2004">C. Fowlkes, S. Belongie, F. Chung, J. Malik. Spectral Grouping Using the Nyström Method. IEEE Transactions on Pattern Analysis and Machine Intelligence, 26(2):214–225, 2004.</ref> | ||
=== Разреженная спектральная кластеризация === | === Разреженная спектральная кластеризация === | ||
| - | Вместо полного графа используется граф ближайших соседей. | + | Вместо полного графа используется разреженный граф ближайших соседей. |
| - | Количество рёбер | + | Количество рёбер: |
| - | :: <tex> | + | :: <tex>|E|\ll n^2.</tex> |
| - | |E|\ll n^2. | + | |
| - | </tex> | + | |
| - | Это позволяет применять итерационные методы поиска собственных векторов. | + | Это позволяет применять итерационные методы поиска собственных векторов, например методы Ланцоша. |
Преимущества: | Преимущества: | ||
| Строка 585: | Строка 414: | ||
* возможность работы с большими графами; | * возможность работы с большими графами; | ||
* сохранение локальной структуры. | * сохранение локальной структуры. | ||
| - | |||
| - | |||
| - | |||
=== Landmark-based методы === | === Landmark-based методы === | ||
| - | + | Выбирается небольшое множество представителей данных: | |
| - | :: <tex> | + | :: <tex>L=\{l_1,\ldots,l_m\}.</tex> |
| - | L=\{l_1,\ldots,l_m\}. | + | |
| - | </tex> | + | |
| - | + | Затем строится граф только между объектами и представителями. | |
| - | + | Метод позволяет применять спектральную кластеризацию к миллионам объектов, но качество зависит от того, насколько хорошо выбраны landmarks. | |
| - | == Расширения | + | == Расширения метода == |
=== Многопредставленческая спектральная кластеризация === | === Многопредставленческая спектральная кластеризация === | ||
| - | + | Если объекты имеют несколько представлений: | |
| - | :: <tex> | + | :: <tex>X^{(1)},X^{(2)},...,X^{(m)},</tex> |
| - | X^{(1)},X^{(2)}, | + | |
| - | </tex> | + | |
| - | + | для каждого строится отдельный граф. | |
| - | + | Затем графы объединяются: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | :: <tex>W=\sum_i\alpha_iW_i.</tex> | |
| - | + | Такой подход применяется, например, при объединении: | |
| - | + | ||
| - | + | ||
| - | + | * текстовых признаков; | |
| - | + | * изображений; | |
| - | + | * биологических измерений. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| + | Основная проблема — определить оптимальные веса различных представлений. | ||
=== Робастная спектральная кластеризация === | === Робастная спектральная кластеризация === | ||
| - | + | Классический метод чувствителен к ошибочным рёбрам. | |
| - | + | Робастные варианты учитывают: | |
| - | + | * шум в матрице сходства; | |
| - | + | * выбросы; | |
| - | + | * неправильные связи графа. | |
| - | + | Обычно вводится дополнительная модель ошибок: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | :: <tex>W=W_0+E,</tex> | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | где <tex>W_0</tex> — истинная структура, а <tex>E</tex> — шум. | |
| + | Цель состоит в восстановлении устойчивого графа перед кластеризацией. | ||
=== Глубокая спектральная кластеризация === | === Глубокая спектральная кластеризация === | ||
| Строка 677: | Строка 471: | ||
Вместо явного вычисления собственных векторов обучается отображение: | Вместо явного вычисления собственных векторов обучается отображение: | ||
| - | :: <tex> | + | :: <tex>f_\theta(x):\mathbf{R}^d\rightarrow\mathbf{R}^K.</tex> |
| - | f_\theta(x):\ | + | |
| - | </tex> | + | |
| - | + | Сеть обучается так, чтобы её выходы приближали спектральное вложение. | |
Преимущества: | Преимущества: | ||
| - | * | + | * масштабируемость; |
| - | * | + | * возможность работы с новыми объектами; |
* использование сложных признаковых представлений. | * использование сложных признаковых представлений. | ||
Недостатки: | Недостатки: | ||
| - | * | + | * сложность обучения; |
| - | * зависимость от архитектуры | + | * зависимость от архитектуры; |
* отсутствие точного совпадения с классическим спектральным решением. | * отсутствие точного совпадения с классическим спектральным решением. | ||
| - | + | Пример такого подхода — SpectralNet.<ref name="SpectralNet2018">U. Shaham et al. SpectralNet: Spectral Clustering Using Deep Neural Networks. International Conference on Learning Representations, 2018.</ref> | |
| - | + | ||
== Применения == | == Применения == | ||
| Строка 702: | Строка 493: | ||
=== Сегментация изображений === | === Сегментация изображений === | ||
| - | Одно из | + | Одно из первых практических применений спектральной кластеризации — разделение изображения на области. |
| - | Вершинами графа являются пиксели или суперпиксели | + | Вершинами графа являются пиксели или суперпиксели. |
| + | |||
| + | Вес учитывает: | ||
* сходство цвета; | * сходство цвета; | ||
| - | * близость | + | * близость координат; |
| - | * | + | * текстурные признаки. |
Например: | Например: | ||
| - | :: <tex> | + | :: <tex>w_{ij} = \exp \left( -\frac{\|I_i-I_j\|^2}{2\sigma_I^2} -\frac{\|p_i-p_j\|^2}{2\sigma_p^2} \right).</tex> |
| - | w_{ij}= | + | |
| - | \exp | + | |
| - | \left( | + | |
| - | -\frac{\|I_i-I_j\|^2}{2\sigma_I^2} | + | |
| - | -\frac{\|p_i-p_j\|^2}{2\sigma_p^2} | + | |
| - | \right) | + | |
| - | </tex> | + | |
| - | + | Метод Normalized Cut стал одним из классических подходов к компьютерной сегментации.<ref name="ShiMalik2000"/> | |
| - | + | === Анализ социальных сетей === | |
| - | + | ||
| - | + | В социальных графах вершины представляют пользователей, а рёбра — связи между ними. | |
| + | Спектральные методы позволяют находить: | ||
| - | + | * сообщества; | |
| - | + | * группы пользователей; | |
| - | + | * скрытую структуру сети. | |
| - | + | ||
| - | * | + | |
| - | * | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | * | + | |
| - | + | ||
| - | + | ||
| + | Они особенно эффективны, когда связи внутри сообществ значительно сильнее связей между ними. | ||
=== Текстовые данные === | === Текстовые данные === | ||
| Строка 752: | Строка 528: | ||
* веса — сходство текстовых представлений. | * веса — сходство текстовых представлений. | ||
| - | + | Используются: | |
* TF-IDF; | * TF-IDF; | ||
* эмбеддинги слов; | * эмбеддинги слов; | ||
| - | * представления | + | * трансформерные представления. |
| - | + | ||
| - | + | ||
| + | Спектральная кластеризация позволяет находить тематические группы документов. | ||
=== Биоинформатика === | === Биоинформатика === | ||
| - | + | Применения: | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | * кластеризация профилей экспрессии генов; | |
| + | * анализ белковых сетей; | ||
| + | * поиск групп клеток. | ||
| + | Особенно полезна способность работать с графами взаимодействий. | ||
=== Рекомендательные системы === | === Рекомендательные системы === | ||
| - | + | Пользователи и объекты можно представить двудольным графом. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
Спектральные методы применяются для: | Спектральные методы применяются для: | ||
| - | * | + | * группировки пользователей; |
| - | * поиска похожих | + | * поиска похожих товаров; |
| - | * анализа структуры | + | * анализа структуры взаимодействий. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
== Сравнение с другими методами == | == Сравнение с другими методами == | ||
| Строка 805: | Строка 560: | ||
=== k-means === | === k-means === | ||
| - | [[k-means]] | + | [[k-means]] быстр и хорошо масштабируется, но предпочитает компактные кластеры, близкие к сферическим. Спектральная кластеризация предпочтительнее для колец, дуг, многообразий и данных с естественной графовой структурой. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Спектральная кластеризация предпочтительнее, | + | |
| - | + | ||
=== Иерархическая кластеризация === | === Иерархическая кластеризация === | ||
| - | + | [[Иерархическая кластеризация]] строит дендрограмму и позволяет исследовать несколько уровней разбиения. Спектральный метод обычно выдаёт одно плоское разбиение, используя глобальную структуру графа. | |
| - | + | === DBSCAN === | |
| - | + | [[DBSCAN]] ищет области высокой плотности и выделяет шум. Спектральный метод вместо плотностной достижимости ищет слабо связанные части графа. Оба подхода чувствительны к выбору локального масштаба. | |
| - | + | ||
| - | + | === Gaussian Mixture Models === | |
| - | + | Gaussian Mixture Models задают вероятностную смесь распределений и позволяют получать мягкие принадлежности. Спектральная кластеризация не требует предположения о гауссовой форме компонент, но не даёт вероятностной интерпретации меток. | |
| - | + | ||
| - | + | === Mean Shift === | |
| + | Mean Shift ищет моды оценки плотности и не требует заранее задавать число кластеров. Его результат чувствителен к ширине окна, а вычислительная стоимость высока на больших выборках. | ||
| - | === | + | === Affinity Propagation === |
| - | + | Affinity Propagation выбирает реальные объекты в качестве представителей кластеров и передаёт сообщения между парами объектов. В плотной реализации он, как и классическая спектральная кластеризация, требует квадратичной памяти. | |
| - | + | == Отличия от близких методов == | |
| - | + | === Спектральное разбиение графов === | |
| - | + | ||
| - | + | Спектральное разбиение графов делит уже заданный граф, часто по знаку вектора Фидлера. Спектральная кластеризация дополнительно включает построение графа из объектов, выбор функции сходства, многомерное вложение и округление методом [[k-means]]. | |
| - | + | === Laplacian Eigenmaps === | |
| - | + | ||
| - | + | Laplacian Eigenmaps использует собственные векторы лапласиана для нелинейного [[Снижение размерности|снижения размерности]]. Целью является сохранение локальной геометрии, а не обязательное получение кластерных меток.<ref name="Belkin2003">M. Belkin, P. Niyogi. Laplacian Eigenmaps for Dimensionality Reduction and Data Representation. Neural Computation, 15(6):1373–1396, 2003.</ref> | |
| + | === Diffusion Maps === | ||
| - | = | + | Diffusion Maps строит координаты по собственным векторам марковского оператора и учитывает многошаговую диффузию. Метод предназначен прежде всего для анализа геометрии и диффузионных расстояний.<ref name="Coifman2006">R. R. Coifman, S. Lafon. Diffusion Maps. Applied and Computational Harmonic Analysis, 21(1):5–30, 2006.</ref> |
| - | + | === Графовые нейронные сети === | |
| - | + | [[Графовые нейронные сети]] обучают параметрические преобразования признаков с использованием рёбер графа. Использование лапласиана в выводе графовой свёртки не делает модель алгоритмом спектральной кластеризации. | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | Преимущества | + | == Преимущества и ограничения == |
| - | + | Преимущества метода: | |
| - | + | ||
| - | + | * обнаружение невыпуклых и линейно неразделимых групп; | |
| + | * использование произвольных предметных мер сходства; | ||
| + | * естественная работа с графовыми данными; | ||
| + | * формальная связь с RatioCut и Normalized Cut. | ||
| - | + | Основные ограничения: | |
| - | + | ||
| - | + | * квадратичная память для плотной матрицы сходства; | |
| + | * высокая стоимость вычисления собственных векторов; | ||
| + | * необходимость выбирать граф, масштаб и число кластеров; | ||
| + | * чувствительность к выбросам и ошибочным рёбрам; | ||
| + | * отсутствие естественного точного продолжения на новые объекты. | ||
| + | == Типичные ошибки == | ||
| - | + | * использование нестандартизованных признаков при евклидовой метрике; | |
| + | * слишком малое или слишком большое число соседей; | ||
| + | * игнорирование изолированных вершин; | ||
| + | * выбор собственных векторов не с того края спектра; | ||
| + | * пропуск построчной нормировки в алгоритме Нга — Джордана — Вайса; | ||
| + | * единственный запуск [[k-means]]; | ||
| + | * подбор параметров по тестовым меткам; | ||
| + | * интерпретация любого спектрального зазора как доказательства кластерной структуры. | ||
| - | + | == Когда метод предпочтителен == | |
| - | + | Спектральная кластеризация особенно полезна, когда объекты естественно образуют граф, кластеры имеют сложную форму, важна связность по цепочкам локальных соседей и существует содержательная функция сходства. Метод обычно не является первым выбором для миллионов объектов без специальных приближений, при частом добавлении новых данных или когда кластеры хорошо описываются центроидами. | |
| - | + | == См. также == | |
| - | + | ||
| - | + | * [[Кластеризация]] | |
| + | * [[Обучение без учителя]] | ||
| + | * [[Лапласиан графа]] | ||
| + | * [[Матрица смежности]] | ||
| + | * [[Собственные значения]] | ||
| + | * [[Собственные векторы]] | ||
| + | * [[k-means]] | ||
| + | * [[Иерархическая кластеризация]] | ||
| + | * [[DBSCAN]] | ||
| + | * [[Снижение размерности]] | ||
| + | * [[Графовые нейронные сети]] | ||
| - | + | == Литература == | |
| - | + | ||
| + | <references/> | ||
| - | === | + | * {{книга |автор=Chung F. R. K. |заглавие=Spectral Graph Theory |издательство=American Mathematical Society |год=1997 |язык=en}} |
| - | + | * {{статья |автор=von Luxburg U. |заглавие=A Tutorial on Spectral Clustering |издание=Statistics and Computing |год=2007 |том=17 |номер=4 |страницы=395—416 |doi=10.1007/s11222-007-9033-z |язык=en}} | |
| - | + | * {{статья |автор=Shi J., Malik J. |заглавие=Normalized Cuts and Image Segmentation |издание=IEEE Transactions on Pattern Analysis and Machine Intelligence |год=2000 |том=22 |номер=8 |страницы=888—905 |doi=10.1109/34.868688 |язык=en}} | |
| - | + | * {{статья |автор=Ng A. Y., Jordan M. I., Weiss Y. |заглавие=On Spectral Clustering: Analysis and an Algorithm |издание=Advances in Neural Information Processing Systems 14 |год=2002 |страницы=849—856 |язык=en}} | |
| - | + | * {{статья |автор=Zelnik-Manor L., Perona P. |заглавие=Self-Tuning Spectral Clustering |издание=Advances in Neural Information Processing Systems 17 |год=2004 |язык=en}} | |
| - | + | * {{статья |автор=Fowlkes C., Belongie S., Chung F., Malik J. |заглавие=Spectral Grouping Using the Nyström Method |издание=IEEE Transactions on Pattern Analysis and Machine Intelligence |год=2004 |том=26 |номер=2 |страницы=214—225 |doi=10.1109/TPAMI.2004.1262185 |язык=en}} | |
| - | * | + | * {{статья |автор=Belkin M., Niyogi P. |заглавие=Laplacian Eigenmaps for Dimensionality Reduction and Data Representation |издание=Neural Computation |год=2003 |том=15 |номер=6 |страницы=1373—1396 |doi=10.1162/089976603321780317 |язык=en}} |
| - | * | + | * {{статья |автор=Coifman R. R., Lafon S. |заглавие=Diffusion Maps |издание=Applied and Computational Harmonic Analysis |год=2006 |том=21 |номер=1 |страницы=5—30 |doi=10.1016/j.acha.2006.04.006 |язык=en}} |
| - | + | * {{статья |автор=Shaham U., Stanton K., Li H., Nadler B., Basri R., Kluger Y. |заглавие=SpectralNet: Spectral Clustering Using Deep Neural Networks |издание=International Conference on Learning Representations |год=2018 |язык=en}} | |
| - | + | ||
| - | + | [[Категория:Кластеризация]] | |
| - | + | [[Категория:Обучение без учителя]] | |
| + | [[Категория:Теория графов]] | ||
| + | [[Категория:Машинное обучение]] | ||
| + | [[Категория:Энциклопедия анализа данных]] | ||
| + | [[Категория:Спектральные методы]] | ||
Версия 11:50, 19 июля 2026
| | Статья написана с использованием LLM ChatGPT и проверена участником .... |
Спектральная кластеризация — семейство методов кластеризации, основанных на представлении данных в виде взвешенного графа и анализе спектра его лапласиана. В отличие от методов, работающих непосредственно в исходном пространстве признаков, спектральная кластеризация использует структуру связей между объектами и позволяет находить кластеры сложной формы, которые могут быть неразделимы линейными границами.
Основная идея метода состоит в построении графа сходства, вычислении нескольких собственных векторов соответствующего лапласиана и последующей кластеризации полученного низкоразмерного представления, обычно алгоритмом k-means. Метод тесно связан с задачами разбиения графов, критериями Normalized Cut и RatioCut, а также с такими направлениями, как Laplacian Eigenmaps и Diffusion Maps.[1]
Постановка задачи
Пусть дана выборка объектов
Цель кластеризации — разбить множество объектов на групп:
В спектральной кластеризации сначала строится граф
где:
-
— множество вершин, соответствующих объектам;
-
— множество рёбер;
-
— матрица весов, задающая сходство объектов.
Вес показывает, насколько объекты
и
близки. Большие значения соответствуют сильным связям, малые — слабым.
После построения графа задача кластеризации преобразуется в задачу поиска слабо связанных областей графа.
Построение графа сходства
Качество спектральной кластеризации во многом определяется выбором графа. Один и тот же набор объектов при разных способах построения графа может давать различные результаты.
Полносвязный граф
В простейшем случае каждое ребро присутствует между всеми парами объектов:
Часто используется гауссово ядро:
Параметр определяет масштаб локальной близости.
Преимущество полносвязного графа — использование всей информации о сходстве. Недостаток — квадратичная сложность хранения:
Поэтому для больших данных чаще используются разреженные графы.
Граф ближайших соседей
В -NN графе вершина соединяется только с ближайшими соседями:
После построения граф обычно симметризуется:
- объединённый граф — ребро существует, если хотя бы одна вершина выбирает другую;
- взаимный граф — ребро существует, если обе вершины выбирают друг друга.
Граф ближайших соседей уменьшает вычислительную стоимость и лучше сохраняет локальную структуру данных.
ε-граф
В ε-графе связь создаётся, если расстояние меньше заданного порога:
Недостаток метода — необходимость правильно выбрать параметр . Малое значение может привести к разрыву графа, а большое — к объединению разных кластеров.
Матрица смежности и матрица степеней
Матрица весов
называется матрицей смежности или матрицей сходства.
Для невзвешенного графа:
Степень вершины определяется как
Матрица степеней:
Степень показывает общую силу связи вершины с остальным графом.
Лапласианы графа
Ненормализованный лапласиан
Классический лапласиан определяется как
Он обладает важным свойством:
Следовательно, если две вершины сильно связаны, то значение соответствующих координат вектора должно быть близким.
Лапласиан является симметричной положительно полуопределённой матрицей. Его минимальное собственное значение равно нулю:
Количество собственных значений, равных нулю, совпадает с количеством компонент связности графа.[1]
Нормализованный лапласиан
Для уменьшения влияния различий в степенях вершин используют нормализованный лапласиан:
Другой вариант:
Он связан со случайным блужданием по графу.
Нормализация особенно важна, когда кластеры имеют разные размеры или различную плотность связей.
Собственные значения и собственные векторы
Пусть
— задача на собственные значения лапласиана.
Собственные значения упорядочиваются:
Собственные векторы соответствуют направлениям, в которых структура графа изменяется медленно.
Если граф состоит из нескольких почти независимых частей, то первые собственные векторы приближают индикаторы этих групп.
В идеальном случае, когда граф имеет ровно компонент связности:
Поэтому первые собственных векторов содержат информацию о кластерной структуре.
Разность между соседними собственными значениями:
называется спектральным зазором и часто используется для выбора числа кластеров.
Спектральное вложение
Пусть найдены собственные векторы
Из них формируется матрица:
Каждый объект заменяется строкой этой матрицы:
Таким образом исходное пространство высокой размерности заменяется новым пространством размерности .
После этого применяется обычная кластеризация:
Чаще всего используется k-means.
Для нормализованной версии Нга — Джордана — Вайса строки дополнительно нормируются:
Связь с RatioCut и Normalized Cut
Разрез графа
Для двух множеств вершин и
определяется вес разреза:
Минимизация только этого выражения приводит к выделению маленьких групп или одиночных вершин.
RatioCut
Критерий RatioCut учитывает размер кластеров:
Он стремится минимизировать связи между кластерами и одновременно избегать слишком маленьких групп.
Спектральная релаксация RatioCut приводит к поиску собственных векторов ненормализованного лапласиана.
Normalized Cut
Normalized Cut использует объём множества:
Критерий:
Его спектральная релаксация приводит к собственным векторам нормализованного лапласиана.
Normalized Cut широко применяется в задачах сегментации изображений.[1]
Алгоритм спектральной кластеризации
Базовый алгоритм
Вход:
- множество объектов
;
- число кластеров
;
- функция сходства;
- параметры построения графа.
Выход:
- кластерные метки объектов.
Алгоритм:
- Построить матрицу сходства
.
- Вычислить матрицу степеней
.
- Построить выбранный лапласиан:
-
для ненормализованной версии;
-
для нормализованной версии.
-
- Найти
собственных векторов, соответствующих наименьшим собственным значениям.
- Сформировать спектральное вложение объектов.
- Выполнить кластеризацию строк полученной матрицы, обычно методом k-means.
- Присвоить исходным объектам найденные метки.
Псевдокод
Вход: данные X, число кластеров K.
Выход: метки кластеров.
1. Построить граф сходства W.
2. Вычислить степени вершин D.
3. Построить лапласиан L.
4. Найти K минимальных собственных векторов:
L u_i = λ_i u_i
5. Сформировать матрицу U.
6. Нормировать строки U (для нормализованного варианта).
7. Выполнить k-means по строкам U.
8. Вернуть полученные группы.
Выбор параметров
Число кластеров
В классическом алгоритме число кластеров задаётся заранее. Однако часто его необходимо оценивать.
Один из распространённых подходов основан на спектральном зазоре:
Если между двумя соседними собственными значениями существует большой разрыв, это может указывать на естественное число кластеров.
Однако спектральный зазор является только эвристикой. Большой разрыв может возникать из-за особенностей построенного графа, выбросов или неравномерной плотности данных.
Выбор числа соседей
В графах ближайших соседей параметр определяет локальный масштаб.
Слишком маленькое значение:
- приводит к разрывам графа;
- создаёт искусственные компоненты связности;
- делает результат нестабильным.
Слишком большое значение:
- добавляет связи между различными группами;
- сглаживает границы кластеров;
- приближает граф к полносвязному.
На практике рекомендуется проверять устойчивость кластеров при нескольких значениях .
Выбор параметра ядра
Для гауссового сходства
параметр определяет масштаб.
Если слишком мал:
- большинство весов становится близко к нулю;
- граф может распасться.
Если слишком велик:
- все объекты становятся похожими;
- теряется локальная структура.
Для неоднородных данных применяют локальные масштабы:
Такой подход называется самонастраиваемой спектральной кластеризацией.[1]
Ненормализованная и нормализованная спектральная кластеризация
Ненормализованный вариант
Используется лапласиан
Он соответствует релаксации критерия RatioCut.
Преимущества:
- простая математическая форма;
- естественная связь с теорией графов;
- хорошая работа при близких степенях вершин.
Недостатки:
- чувствительность к различию плотностей;
- зависимость от размеров кластеров;
- хуже работает при сильно неоднородных данных.
Нормализованный вариант
Используются:
или
Нормализация учитывает степень каждой вершины и уменьшает влияние крупных плотных областей.
Преимущества:
- устойчивость к различным размерам кластеров;
- связь со случайными блужданиями;
- широкое применение на реальных данных.
Именно нормализованные варианты чаще используются в современных приложениях.
Масштабируемая спектральная кластеризация
Классическая спектральная кластеризация имеет высокую вычислительную стоимость.
Для полной матрицы сходства:
требуется
памяти.
Полное собственное разложение имеет сложность порядка:
Поэтому для больших наборов данных применяются приближённые методы.
Метод Nyström
Метод Nyström приближает большую матрицу сходства через небольшое количество опорных точек.
Пусть выбрано объектов. Тогда матрица сходства приближается низкоранговой:
Вместо разложения матрицы размера решается задача меньшего размера.
Преимущества:
- снижение памяти;
- ускорение вычислений;
- возможность работы с большими выборками.
Недостаток — качество зависит от выбора опорных точек.[1]
Разреженная спектральная кластеризация
Вместо полного графа используется разреженный граф ближайших соседей.
Количество рёбер:
Это позволяет применять итерационные методы поиска собственных векторов, например методы Ланцоша.
Преимущества:
- меньшая память;
- возможность работы с большими графами;
- сохранение локальной структуры.
Landmark-based методы
Выбирается небольшое множество представителей данных:
Затем строится граф только между объектами и представителями.
Метод позволяет применять спектральную кластеризацию к миллионам объектов, но качество зависит от того, насколько хорошо выбраны landmarks.
Расширения метода
Многопредставленческая спектральная кластеризация
Если объекты имеют несколько представлений:
для каждого строится отдельный граф.
Затем графы объединяются:
Такой подход применяется, например, при объединении:
- текстовых признаков;
- изображений;
- биологических измерений.
Основная проблема — определить оптимальные веса различных представлений.
Робастная спектральная кластеризация
Классический метод чувствителен к ошибочным рёбрам.
Робастные варианты учитывают:
- шум в матрице сходства;
- выбросы;
- неправильные связи графа.
Обычно вводится дополнительная модель ошибок:
где — истинная структура, а
— шум.
Цель состоит в восстановлении устойчивого графа перед кластеризацией.
Глубокая спектральная кластеризация
Современные методы объединяют спектральные идеи с нейронными сетями.
Вместо явного вычисления собственных векторов обучается отображение:
Сеть обучается так, чтобы её выходы приближали спектральное вложение.
Преимущества:
- масштабируемость;
- возможность работы с новыми объектами;
- использование сложных признаковых представлений.
Недостатки:
- сложность обучения;
- зависимость от архитектуры;
- отсутствие точного совпадения с классическим спектральным решением.
Пример такого подхода — SpectralNet.[1]
Применения
Сегментация изображений
Одно из первых практических применений спектральной кластеризации — разделение изображения на области.
Вершинами графа являются пиксели или суперпиксели.
Вес учитывает:
- сходство цвета;
- близость координат;
- текстурные признаки.
Например:
Метод Normalized Cut стал одним из классических подходов к компьютерной сегментации.[1]
Анализ социальных сетей
В социальных графах вершины представляют пользователей, а рёбра — связи между ними.
Спектральные методы позволяют находить:
- сообщества;
- группы пользователей;
- скрытую структуру сети.
Они особенно эффективны, когда связи внутри сообществ значительно сильнее связей между ними.
Текстовые данные
Для документов строится граф сходства:
- вершины — документы;
- веса — сходство текстовых представлений.
Используются:
- TF-IDF;
- эмбеддинги слов;
- трансформерные представления.
Спектральная кластеризация позволяет находить тематические группы документов.
Биоинформатика
Применения:
- кластеризация профилей экспрессии генов;
- анализ белковых сетей;
- поиск групп клеток.
Особенно полезна способность работать с графами взаимодействий.
Рекомендательные системы
Пользователи и объекты можно представить двудольным графом.
Спектральные методы применяются для:
- группировки пользователей;
- поиска похожих товаров;
- анализа структуры взаимодействий.
Сравнение с другими методами
k-means
k-means быстр и хорошо масштабируется, но предпочитает компактные кластеры, близкие к сферическим. Спектральная кластеризация предпочтительнее для колец, дуг, многообразий и данных с естественной графовой структурой.
Иерархическая кластеризация
Иерархическая кластеризация строит дендрограмму и позволяет исследовать несколько уровней разбиения. Спектральный метод обычно выдаёт одно плоское разбиение, используя глобальную структуру графа.
DBSCAN
DBSCAN ищет области высокой плотности и выделяет шум. Спектральный метод вместо плотностной достижимости ищет слабо связанные части графа. Оба подхода чувствительны к выбору локального масштаба.
Gaussian Mixture Models
Gaussian Mixture Models задают вероятностную смесь распределений и позволяют получать мягкие принадлежности. Спектральная кластеризация не требует предположения о гауссовой форме компонент, но не даёт вероятностной интерпретации меток.
Mean Shift
Mean Shift ищет моды оценки плотности и не требует заранее задавать число кластеров. Его результат чувствителен к ширине окна, а вычислительная стоимость высока на больших выборках.
Affinity Propagation
Affinity Propagation выбирает реальные объекты в качестве представителей кластеров и передаёт сообщения между парами объектов. В плотной реализации он, как и классическая спектральная кластеризация, требует квадратичной памяти.
Отличия от близких методов
Спектральное разбиение графов
Спектральное разбиение графов делит уже заданный граф, часто по знаку вектора Фидлера. Спектральная кластеризация дополнительно включает построение графа из объектов, выбор функции сходства, многомерное вложение и округление методом k-means.
Laplacian Eigenmaps
Laplacian Eigenmaps использует собственные векторы лапласиана для нелинейного снижения размерности. Целью является сохранение локальной геометрии, а не обязательное получение кластерных меток.[1]
Diffusion Maps
Diffusion Maps строит координаты по собственным векторам марковского оператора и учитывает многошаговую диффузию. Метод предназначен прежде всего для анализа геометрии и диффузионных расстояний.[1]
Графовые нейронные сети
Графовые нейронные сети обучают параметрические преобразования признаков с использованием рёбер графа. Использование лапласиана в выводе графовой свёртки не делает модель алгоритмом спектральной кластеризации.
Преимущества и ограничения
Преимущества метода:
- обнаружение невыпуклых и линейно неразделимых групп;
- использование произвольных предметных мер сходства;
- естественная работа с графовыми данными;
- формальная связь с RatioCut и Normalized Cut.
Основные ограничения:
- квадратичная память для плотной матрицы сходства;
- высокая стоимость вычисления собственных векторов;
- необходимость выбирать граф, масштаб и число кластеров;
- чувствительность к выбросам и ошибочным рёбрам;
- отсутствие естественного точного продолжения на новые объекты.
Типичные ошибки
- использование нестандартизованных признаков при евклидовой метрике;
- слишком малое или слишком большое число соседей;
- игнорирование изолированных вершин;
- выбор собственных векторов не с того края спектра;
- пропуск построчной нормировки в алгоритме Нга — Джордана — Вайса;
- единственный запуск k-means;
- подбор параметров по тестовым меткам;
- интерпретация любого спектрального зазора как доказательства кластерной структуры.
Когда метод предпочтителен
Спектральная кластеризация особенно полезна, когда объекты естественно образуют граф, кластеры имеют сложную форму, важна связность по цепочкам локальных соседей и существует содержательная функция сходства. Метод обычно не является первым выбором для миллионов объектов без специальных приближений, при частом добавлении новых данных или когда кластеры хорошо описываются центроидами.
См. также
- Кластеризация
- Обучение без учителя
- Лапласиан графа
- Матрица смежности
- Собственные значения
- Собственные векторы
- k-means
- Иерархическая кластеризация
- DBSCAN
- Снижение размерности
- Графовые нейронные сети
Литература
- Chung F. R. K. Spectral Graph Theory. — American Mathematical Society, 1997.
- von Luxburg U. A Tutorial on Spectral Clustering // Statistics and Computing. — 2007. — Т. 17. — № 4. — С. 395—416.
- Shi J., Malik J. Normalized Cuts and Image Segmentation // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2000. — Т. 22. — № 8. — С. 888—905.
- Ng A. Y., Jordan M. I., Weiss Y. On Spectral Clustering: Analysis and an Algorithm // Advances in Neural Information Processing Systems 14. — 2002. — С. 849—856.
- Zelnik-Manor L., Perona P. Self-Tuning Spectral Clustering // Advances in Neural Information Processing Systems 17. — 2004.
- Fowlkes C., Belongie S., Chung F., Malik J. Spectral Grouping Using the Nyström Method // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2004. — Т. 26. — № 2. — С. 214—225.
- Belkin M., Niyogi P. Laplacian Eigenmaps for Dimensionality Reduction and Data Representation // Neural Computation. — 2003. — Т. 15. — № 6. — С. 1373—1396.
- Coifman R. R., Lafon S. Diffusion Maps // Applied and Computational Harmonic Analysis. — 2006. — Т. 21. — № 1. — С. 5—30.
- Shaham U., Stanton K., Li H., Nadler B., Basri R., Kluger Y. SpectralNet: Spectral Clustering Using Deep Neural Networks // International Conference on Learning Representations. — 2018.

