Почему k-means не дает глобального минимума?


17

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

Кроме того, почему k-означает итеративный процесс? Разве мы не можем просто частично дифференцировать целевую функцию по центроидам, приравнять ее к нулю, чтобы найти центроиды, которые минимизируют эту функцию? Почему мы должны использовать градиентный спуск, чтобы шаг за шагом достичь минимума?


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

1
Я считаю, что когда я частично дифференцирую целевую функцию по одному центроиду, точки в скоплении другого центроида исчезают в производной. Таким образом, центроид, который мы можем получить, минимизирует только сумму квадратов расстояний только определенного кластера.
Prateek Kulkarni

3
Это отчасти так, но не совсем объясняет поведение. Еще более важным является тот факт, что присвоение точек центроидам является большой частью того, что делает k-means. (После того, как назначение выполнено, центроиды легко вычисляются, и больше ничего не остается.) Это назначение является дискретным : это совсем не то, что можно дифференцировать. Более того, он комбинаторно сложен: есть способов назначить n точек для k кластеров. Действительно, совершенно необязательно использовать градиентный спуск, чтобы найти центроиды. O(nk)nk
whuber

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

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

Ответы:


10

Вы можете рассматривать k-means как специальную версию алгоритма EM, которая может немного помочь.

Допустим , вы оценки многомерного нормального распределения для каждого кластера с ковариационной матрицей , прикрепленного к единичной матрице для всех, но переменная среднее , где я есть индекс кластера. Очевидно, что если параметры { μ i } известны, вы можете назначить каждой точке p свой кластер максимального правдоподобия (т. Е. Μ i, для которого расстояние до pμяя{μя}пμяп минимально). EM-алгоритм для этой задачи почти эквивалентен k-средних.

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

Вместо этого мы можем сделать некоторые предположения относительно скрытых параметров (или параметров модели) и повторить два шага (с возможностью оказаться в локальном максимуме). Если вы позволите каждому кластеру взять на себя частичную ответственность за точку, вы получите EM, если вы просто назначите оптимальный кластер, вы получите k-средних.

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


Хорошо сказано! Я отмечу это как ответ!
Prateek Kulkarni

4

Это проблема, которую вы хотите решить:

minxi=1nj=1kxij||picj||2subject to:j=1kxij=1icj is the centroid of cluster jxij{0,1}i,j

Двоичная переменная указывает, назначена ли точка i кластеру j . Символы p i и c j обозначают координаты i- й точки и центроида j- го кластера соответственно. Они оба расположены в R d , где d - размерность точек данных.xijijpicjijRdd

Первая группа ограничений говорит, что каждая точка должна быть назначена ровно одному кластеру. Вторая группа ограничений (которые мы не определили математически) говорят, что координаты центроида кластера самом деле зависят от значений переменных x i j . Мы можем, например, выразить это ограничение следующим образом: c j = i x i j p i jjxij

cj=ixijpijixij

Однако вместо того, чтобы иметь дело с этими нелинейными ограничениями, в K-средстве мы (приблизительно) решаем другую задачу, которая имеет такое же оптимальное решение, как и наша исходная задача:

minxi=1nj=1kxij||piyj||2subject to:j=1kxij=1ixij{0,1}i,jyjRdj

Вместо того чтобы минимизировать расстояние до центроидов, мы минимизируем расстояние до любого набора точек, который даст лучшее решение. Оказывается, что эти точки - точно центроиды.

Теперь, чтобы решить эту проблему, мы повторяем шаги 2-3 этого алгоритма до сходимости:

  1. yj переменным
  2. yjxij переменных .
  3. xijyj

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

xijyjyjxijyj


2

Простой пример может помочь ..

Давайте определим набор точек, которые будут сгруппированы как A = {1,2,3,4}.

Скажем, вы пытаетесь найти 2 подходящих кластера для A (2-средних). Существуют (как минимум) две разные настройки, которые удовлетворяют стационарному состоянию k-средних.

Настройка 1:

Center1 = 1, Cluster1 = {1}
Center2 = 3, Cluster1 = {2,3,4}

Здесь цель 2. На самом деле это седло (попробуйте center1 = 1 + epsilonиcenter1 = 1 - epsilon )

Настройка 1:

Center1 = 1.5, Cluster1 = {1,2}
Center2 = 3.5, Cluster1 = {3,4}

здесь цель 1/4.

Если k-means будет инициализировано в качестве первого параметра, то оно застрянет ... и это ни в коем случае не глобальный минимум.

Вы можете использовать вариант предыдущего примера для создания двух разных локальных минимумов. Для A = {1,2,3,4,5}настройки cluster1={1,2}и cluster2={3,4,5}приведет к тому же объективному значению, что cluster1={1,2,3}иcluster2={4,5}

Наконец, что произойдет, если вы выберете

A = {1,2,3,4,6}
center1={2.5} cluster1={1,2,3,4} and 
center1={6} cluster1={6}

против

center1={2} cluster1={1,2,3} and 
center1={5} cluster1={4,6}

?


0

[Это было до того, как @Peter ответил]
После небольшого обсуждения (в разделе комментариев) я чувствую, что должен ответить на свой вопрос.

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

@whuber добавляет:

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

Было бы здорово, если бы кто-нибудь еще мог добавить.


0

Все все объяснили, но я хотел бы добавить, что если выборочные данные не распространяются как распределение Гаусса, то они могут привязываться к локальным минимумам. В алгоритме K-средних мы на самом деле пытаемся это получить.


Вместо Гаусса я думаю, что вы имеете в виду «унимодальный»
Питер Леопольд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.