Кластеризация и em-алгоритм-.4cm
TRANSCRIPT
![Page 1: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/1.jpg)
Кластеризация и EM-алгоритм
Сергей Николенко
НИУ ВШЭ − Санкт-Петербург28 марта 2020 г.
Random facts:
• 28 марта — День освобождения тибетцев от крепостного рабства; 28 марта 1959 г. властиКНР объявили о роспуске тибетского правительства и провели военную операцию, врезультате которой Далай-лама XIV и десятки тысяч других тибетцев бежали в Индию
• 28 марта 193 г. закончилось трёхмесячное правление императора Пертинакса; оннедоплатил преторианцам, те его убили и выставили должность императора нааукцион; сенатор Дидий Юлиан победил в аукционе и правил ещё месяца два
• 28 марта 519 г. закончилась акакианская схизма — в 482 г. у константинопольскогопатриарха Акакия возникли разногласия с александрийским патриархом Иоанном, в484 его низложили на соборе в Риме, но через 35 лет удалось (пока) помириться
• 28 марта 1939 г. войска генерала Франко заняли Мадрид после трёхлетней осады
• 28 марта 1979 г. произошла авария на станции Three Mile Island в Пенсильвании; 50%активной зоны реактора расплавились, но люди и окружающая среда не пострадали;тем не менее, на этом атомная энергетика в США фактически закончилась: с 1979 до2012 года не было выдано ни одной новой лицензии на строительство АЭС
![Page 2: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/2.jpg)
Кластеризация
![Page 3: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/3.jpg)
Суть лекции
• Кластеризация — типичная задача обучения без учителя:задача классификации объектов одной природы в несколькогрупп так, чтобы объекты в одной группе обладали одним итем же свойством.
• Под свойством обычно понимается близость друг к другуотносительно выбранной метрики.
1
![Page 4: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/4.jpg)
Чуть более формально
• Есть набор тестовых примеров X = {x1, . . . , xn} и функциярасстояния между примерами ρ.
• Требуется разбить X на непересекающиеся подмножества(кластеры) так, чтобы каждое подмножество состояло изпохожих объектов, а объекты разных подмножествсущественно различались.
2
![Page 5: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/5.jpg)
Идея
• Есть точки x1, x2, . . . , xn в пространстве. Нужнокластеризовать.
• Считаем каждую точку кластером. Затем ближайшие точкиобъединяем, далее считаем единым кластером. Затемповторяем.
• Получается дерево.
3
![Page 6: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/6.jpg)
Алгоритм
HierarchyCluster(X = {x1, . . . , xn})
• Инициализируем C = X, G = X.• Пока в C больше одного элемента:
• Выбираем два элемента C c1 и c2, расстояние между которымиминимально.
• Добавляем в G вершину c1c2, соединяем её с вершинами c1 и c2.• C := C ∪ {c1c2} \ {c1, c2}.
• Выдаём G.
4
![Page 7: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/7.jpg)
Результат
• В итоге получается дерево кластеров, из которого потомможно выбрать кластеризацию с требуемой степеньюдетализации (обрезать на том или ином максимальномрасстоянии).
• Всё ли понятно?
5
![Page 8: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/8.jpg)
Результат
• В итоге получается дерево кластеров, из которого потомможно выбрать кластеризацию с требуемой степеньюдетализации (обрезать на том или ином максимальномрасстоянии).
• Всё ли понятно?• Остаётся вопрос: как подсчитывать расстояние междукластерами?
5
![Page 9: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/9.jpg)
Single-link vs. complete-link
• Single-link алгоритмы считают минимум из возможныхрасстояний между парами объектов, находящихся в кластере.
• Complete-link алгоритмы считают максимум из этихрасстояний
• Какие особенности будут у single-link и complete-linkалгоритмов? Чем они будут отличаться?
6
![Page 10: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/10.jpg)
Очевидный алгоритм
• Нарисуем полный граф с весами, равными расстояниюмежду объектами.
• Выберем некий предопределённый порог расстояния r ивыбросим все рёбра длиннее r.
• Компоненты связности полученного графа — это нашикластеры.
7
![Page 11: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/11.jpg)
Минимальное остовное дерево
• Минимальное остовное дерево — дерево, содержащее всевершины (связного) графа и имеющее минимальныйсуммарный вес своих рёбер.
• Алгоритм Краскала (Kruskal): выбираем на каждом шагеребро с минимальным весом, если оно соединяет двадерева, добавляем, если нет, пропускаем.
• Алгоритм Борувки (Boruvka).
8
![Page 12: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/12.jpg)
Кластеризация
• Как использовать минимальное остовное дерево длякластеризации?
9
![Page 13: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/13.jpg)
Кластеризация
• Как использовать минимальное остовное дерево длякластеризации?
• Построить минимальное остовное дерево, а потомвыкидывать из него рёбра максимального веса.
• Сколько рёбер выбросим, столько кластеров получим.
9
![Page 14: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/14.jpg)
DBSCAN
• Идея: кластер – это зона высокой плотности точек,отделённая от других кластеров зонами низкой плотности.
• Алгоритм: выделяем core samples, которые сэмплируются взонах высокой плотности (т.е. есть по крайней мере nсоседей, других точек на расстоянии ≤ ϵ).
• Затем последовательно объединяем core samples, которыеоказываются соседями друг друга.
• Точки, которые не являются ничьими соседями, — этовыбросы.
10
![Page 15: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/15.jpg)
Birch
• Идея: строим дерево (CF-tree, от clustering feature), котороесодержит краткие описания кластеров и поддерживаетапдейты.
• CFi = {Ni,LSi,SSi}: число точек в кластере CFi,LSi =
∑x∈CFi
xi (linear sum), SSi =∑
x∈CFix2i (sum of squares).
• Этого достаточно для того, чтобы подсчитать разумныерасстояния между кластерами.
• А также для того, чтобы слить два кластера: CFi аддитивны.
11
![Page 16: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/16.jpg)
Birch
• CF-дерево состоит из CFi; оно похоже на B-дерево,сбалансировано по высоте. Кластеры – листья дерева, надними “суперкластеры”.
• Добавляем новый кластер, рекурсивно вставляя его вдерево; если от этого число элементов в листе становитсяслишком большим (параметр), лист разбивается на два.
• А когда дерево построено, можно запустить ещё однукластеризацию (любым другим методом) на полученных“мини-кластерах”.
11
![Page 17: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/17.jpg)
Алгоритм EM и кластеризация
![Page 18: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/18.jpg)
Постановка задачи
• Часто возникает ситуация, когда в имеющихся данныхнекоторые переменные присутствуют, а некоторые —отсутствуют.
• Даны результаты сэмплирования распределениявероятностей с несколькими параметрами, из которыхизвестны не все.
12
![Page 19: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/19.jpg)
Постановка задачи
• Эти неизвестные параметры тоже расцениваются какслучайные величины.
• Задача — найти наиболее вероятную гипотезу, то есть тугипотезу h, которая максимизирует
E[lnp(D|h)].
13
![Page 20: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/20.jpg)
Частный случай
Построим один из простейших примеров применения алгоритмаEM. Пусть случайная переменная x сэмплируется из суммы двухнормальных распределений. Дисперсии даны (одинаковые),нужно найти только средние µ1, µ2.
14
![Page 21: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/21.jpg)
Два распределения
• Теперь нельзя понять, какие xi были порождены какимраспределением — классический пример скрытыхпеременных.
• Один тестовый пример полностью описывается как тройка⟨xi, zi1, zi2⟩, где zij = 1 iff xi был сгенерирован j-мраспределением.
15
![Page 22: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/22.jpg)
Суть алгоритма EM
• Сгенерировать какую-нибудь гипотезу h = (µ1, µ2).• Пока не дойдем до локального максимума:
• Вычислить ожидание E(zij) в предположении текущей гипотезы(E–шаг).
• Вычислить новую гипотезу h′ = (µ′1, µ
′2), предполагая, что zij
принимают значения E(zij) (M–шаг).
16
![Page 23: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/23.jpg)
В примере с гауссианами
В примере с гауссианами:
E(zij) =p(x = xi|µ = µj)
p(x = xi|µ = µ1) + p(x = xi|µ = µ2)=
=e−
12σ2
(xi−µj)2
e−1
2σ2(xi−µ1)2 + e−
12σ2
(xi−µ2)2.
Мы подсчитываем эти ожидания, а потом подправляем гипотезу:
µj ←1m
m∑i=1
E(zij)xi.
17
![Page 24: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/24.jpg)
Обоснование алгоритма EM
• Дадим формальное обоснование алгоритма EM.• Мы решаем задачу максимизации правдоподобия по даннымX = {x1, . . . , xN}.
L(θ | X ) = p(X | θ) =∏
p(xi | θ)
или, что то же самое, максимизации ℓ(θ | X ) = log L(θ | X ).• EM может помочь, если этот максимум трудно найтианалитически.
18
![Page 25: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/25.jpg)
Обоснование алгоритма EM
• Давайте предположим, что в данных есть скрытыекомпоненты, такие, что если бы мы их знали, задача былабы проще.
• Замечание: совершенно не обязательно эти компонентыдолжны иметь какой-то физический смысл. :) Может быть,так просто удобнее.
• В любом случае, получается набор данных Z = (X ,Y) ссовместной плотностью
p(z | θ) = p(x, y | θ) = p(y | x, θ)p(x | θ).
• Получается полное правдоподобие L(θ | Z) = p(X ,Y | θ). Этослучайная величина (т.к. Y неизвестно).
18
![Page 26: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/26.jpg)
Обоснование алгоритма EM
• Заметим, что настоящее правдоподобиеL(θ) = EY [p(X ,Y | θ) | X , θ].
• E-шаг алгоритма EM вычисляет условное ожидание(логарифма) полного правдоподобия при условии X итекущих оценок параметров θn:
Q(θ, θn) = E [log p(X ,Y | θ) | X , θn] .
• Здесь θn – текущие оценки, а θ – неизвестные значения(которые мы хотим получить в конечном счёте); т.е. Q(θ, θn) –это функция от θ.
18
![Page 27: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/27.jpg)
Обоснование алгоритма EM
• E-шаг алгоритма EM вычисляет условное ожидание(логарифма) полного правдоподобия при условии X итекущих оценок параметров θ:
Q(θ, θn) = E [log p(X ,Y | θ) | X , θn] .
• Условное ожидание – это
E [log p(X ,Y | θ) | X , θn] =∫ylog p(X , y | θ)p(y | X , θn)dy,
где p(y | X , θn) – маргинальное распределение скрытыхкомпонентов данных.
• EM лучше всего применять, когда это выражение легкоподсчитать, может быть, даже аналитически.
• Вместо p(y | X , θn) можно подставитьp(y,X | θn) = p(y | X , θn)p(X | θn), от этого ничего неизменится. 18
![Page 28: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/28.jpg)
Обоснование алгоритма EM
• В итоге после E-шага алгоритма EM мы получаем функциюQ(θ, θn).
• На M-шаге мы максимизируем
θn+1 = arg maxθQ(θ, θn).
• Затем повторяем процедуру до сходимости.• В принципе, достаточно просто находить θn+1, для которогоQ(θn+1, θn) > Q(θn, θn) – Generalized EM.
• Осталось понять, что значит Q(θ, θn) и почему всё этоработает.
18
![Page 29: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/29.jpg)
Обоснование алгоритма EM
• Мы хотели перейти от θn к θ, для которого ℓ(θ) > ℓ(θn).
ℓ(θ)− ℓ(θn) =
= log
(∫yp(X | y, θ)p(y | θ)dy
)− log p(X | θn) =
= log
(∫yp(y | X , θn)
p(X | y, θ)p(y | θ)p(y | X , θn)
dy)− log p(X | θn) ≥
≥∫yp(y | X , θn) log
(p(X | y, θ)p(y | θ)
p(y | X , θn)
)dy− log p(X | θn) =
=
∫yp(y | X , θn) log
(p(X | y, θ)p(y | θ)p(X | θn)p(y | X , θn)
)dy.
18
![Page 30: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/30.jpg)
Обоснование алгоритма EM
• Получили
ℓ(θ) ≥ l(θ, θn) =
= ℓ(θn) +
∫yp(y | X , θn) log
(p(X | y, θ)p(y | θ)p(X | θn)p(y | X , θn)
)dy.
Упражнение. Докажите, что l(θn, θn) = ℓ(θn).
18
![Page 31: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/31.jpg)
Обоснование алгоритма EM
• Иначе говоря, мы нашли нижнюю оценку на ℓ(θ) везде,касание происходит в точке θn.
• Т.е. мы нашли нижнюю оценку для правдоподобия исмещаемся в точку, где она максимальна (или хотя быбольше текущей).
• Такая общая схема называется MM-алгоритм(minorization-maximization). Мы к ним, возможно, ещёвернёмся.
18
![Page 32: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/32.jpg)
Обоснование алгоритма EM
19
![Page 33: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/33.jpg)
Обоснование алгоритма EM
• Осталось только понять, что максимизировать можно Q.
θn+1 = arg maxθl(θ, θn) = arg maxθ {ℓ(θn)+
+
∫yf(y | X , θn) log
(p(X | y, θ)f(y | θ)p(X | θn)f(y | X , θn)
)dy
}=
= arg maxθ
{∫yp(y | X , θn) log (p(X | y, θ)p(y | θ))dy
}=
= arg maxθ
{∫yp(y | X , θn) log p(X , y | θ)dy
}=
= arg maxθ {Q(θ, θn)} ,
а остальное от θ не зависит. Вот и получился EM.
20
![Page 34: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/34.jpg)
Мысли?
• Какие есть мысли о применении алгоритма EM к задачамкластеризации?
21
![Page 35: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/35.jpg)
Гипотезы
• Чтобы воспользоваться статистическим алгоритмом, нужносформулировать гипотезы о распределении данных.
• Гипотеза о природе данных: тестовые примеры появляютсяслучайно и независимо, согласно вероятностномураспределению, равному смеси распределений кластеров
p(x) =∑c∈C
wcpc(x),∑c∈C
wc = 1,
где wc — вероятность появления объектов из кластера c, pc —плотность распределения кластера c.
22
![Page 36: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/36.jpg)
Гипотезы cont’d
• Остается вопрос: какими предположить распределения pc?
23
![Page 37: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/37.jpg)
Гипотезы cont’d
• Остается вопрос: какими предположить распределения pc?• Часто берут сферические гауссианы, но это не слишкомгибкий вариант: кластер может быть вытянут в ту или инуюсторону.
23
![Page 38: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/38.jpg)
Гипотезы cont’d
• Остается вопрос: какими предположить распределения pc?• Часто берут сферические гауссианы, но это не слишкомгибкий вариант: кластер может быть вытянут в ту или инуюсторону.
• Мы будем брать эллиптические гауссианы.• Гипотеза 2: Каждый кластер c описывается d–мернойгауссовской плотностью с центром µc = {µc1, . . . , µcd} идиагональной матрицей ковариаций Σc = diag(σ2c1, . . . , σ2c2)(т.е. по каждой координате своя дисперсия).
23
![Page 39: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/39.jpg)
Постановка задачи и общий вид алгоритма
• В этих предположениях получается в точности задачаразделения смеси вероятностных распределений. Для этогои нужен EM–алгоритм.
• Каждый тестовый пример описывается своимикоординатами (f1(x), . . . , fn(x)).
• Скрытые переменные в данном случае — вероятности gicтого, что объект xi принадлежит кластеру c ∈ C.
24
![Page 40: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/40.jpg)
Идея алгоритма
• E–шаг: по формуле Байеса вычисляются скрытыепеременные gic:
25
![Page 41: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/41.jpg)
Идея алгоритма
• E–шаг: по формуле Байеса вычисляются скрытыепеременные gic:
gic =wcpc(xi)∑
c′∈C wc′pc′(xi).
25
![Page 42: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/42.jpg)
Идея алгоритма
• E–шаг: по формуле Байеса вычисляются скрытыепеременные gic:
gic =wcpc(xi)∑
c′∈C wc′pc′(xi).
• M–шаг: с использованием gic уточняются параметрыкластеров w, µ, σ:
25
![Page 43: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/43.jpg)
Идея алгоритма
• E–шаг: по формуле Байеса вычисляются скрытыепеременные gic:
gic =wcpc(xi)∑
c′∈C wc′pc′(xi).
• M–шаг: с использованием gic уточняются параметрыкластеров w, µ, σ:
wc =1n
n∑i=1
gic,
25
![Page 44: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/44.jpg)
Идея алгоритма
• E–шаг: по формуле Байеса вычисляются скрытыепеременные gic:
gic =wcpc(xi)∑
c′∈C wc′pc′(xi).
• M–шаг: с использованием gic уточняются параметрыкластеров w, µ, σ:
wc =1n
n∑i=1
gic, µcj =1nwc
n∑i=1
gicfj(xi),
25
![Page 45: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/45.jpg)
Идея алгоритма
• E–шаг: по формуле Байеса вычисляются скрытыепеременные gic:
gic =wcpc(xi)∑
c′∈C wc′pc′(xi).
• M–шаг: с использованием gic уточняются параметрыкластеров w, µ, σ:
wc =1n
n∑i=1
gic, µcj =1nwc
n∑i=1
gicfj(xi),
σ2cj =1nwc
n∑i=1
gic(fj(xi)− µcj
)2.
25
![Page 46: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/46.jpg)
Алгоритм
EMCluster(X, |C|):
• Инициализировать |C| кластеров; начальное приближение:wc := 1/|C|, µc := случайный xi, σ2cj :=
1n|C|
∑ni=1
(fj(xi)− µcj
)2.• Пока принадлежность кластерам не перестанет изменяться:
• E–шаг: gic := wcpc(xi)∑c′∈C wc′pc′ (xi)
.
• M–шаг: wc = 1n∑n
i=1 gic, µcj =1
nwc
∑ni=1 gicfj(xi),
σ2cj =1nwc
n∑i=1
gic (fj(xi)− µcj)2 .
• Определить принадлежность xi к кластерам:
clusti := arg maxc∈Cgic.
26
![Page 47: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/47.jpg)
Упражнение
Упражнение. Докажите, что E-шаг и M-шаг действительно в данном случае таквыглядят.
27
![Page 48: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/48.jpg)
Пример
28
![Page 49: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/49.jpg)
Пример
28
![Page 50: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/50.jpg)
Пример
28
![Page 51: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/51.jpg)
Проблема
• Остается проблема: нужно задавать количество кластеров.
29
![Page 52: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/52.jpg)
Суть алгоритма k–средних
• Один из самых известных алгоритмов кластеризации –алгоритм k-средних – это фактически упрощение алгоритмаEM.
• Разница в том, что мы не считаем вероятностипринадлежности кластерам, а жестко приписываем каждыйобъект одному кластеру.
• Кроме того, в алгоритме k–средних форма кластеров ненастраивается (но это не так важно).
30
![Page 53: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/53.jpg)
Цель
• Цель алгоритма k–средних — минимизировать меру ошибки
E(X, C) =n∑i=1
||xi − µi||2,
где µi — ближайший к xi центр кластера.• Т.е. мы не относим точки к кластерам, а двигаем центры, апринадлежность точек определяется автоматически.
31
![Page 54: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/54.jpg)
Алгоритм неформально
• Идея та же, что в EM:• Проинициализировать.• Классифицировать точки по ближайшему к ним центрукластера.
• Перевычислить каждый из центров.• Если ничего не изменилось, остановиться, если изменилось —повторить.
32
![Page 55: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/55.jpg)
Алгоритм
kMeans(X, |C|):
• Инициализировать центры |C| кластеров µ1, . . . , µ|C|.• Пока принадлежность кластерам не перестанет изменяться:
• Определить принадлежность xi к кластерам:
clusti := arg minc∈Cρ(xi, µc).
• Определить новое положение центров кластеров:
µc :=
∑clusti=c
fj(xi)∑clusti=c
1 .
33
![Page 56: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/56.jpg)
Semi–supervised clustering
• И EM, и k–means хорошо обобщаются на случай частичнообученных кластеров.
• То есть про часть точек уже известно, какому кластеру онипринадлежат.
• Как это учесть?
34
![Page 57: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/57.jpg)
Semi–supervised clustering
• Чтобы учесть информацию о точке xi, достаточно для EMположить скрытую переменную gic равной тому кластеру,которому нужно, с вероятностью 1, а остальным — свероятностью 0, и не пересчитывать.
• Для k–means то же самое, но для clusti.
35
![Page 58: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/58.jpg)
Пример EM: presence-only data
![Page 59: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/59.jpg)
Presence-only data
• Пример из экологии: пусть мы хотим оценить, где водятся теили иные животные.
• Как определить, что суслики тут водятся, понятно: видишьсуслика — значит, он есть.
• Но как определить, что суслика нет? Может быть, ты невидишь суслика, и я не вижу, а он есть?..
36
![Page 60: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/60.jpg)
Presence-only data
• Формально говоря, есть переменные x, определяющиенекий регион (квадрат на карте), и мы моделируемвероятность того, что нужный вид тут есть, p(y = 1 | x), припомощи логит-функции:
p(y = 1 | x) = σ(η(x)) = 11+ e−η(x) ,
где η(x) может быть линейной (тогда получитсялогистическая регрессия), но может, в принципе, и не быть.
• Заметим, что даже если бы мы знали настоящие y, это былобы ещё не всё: сэмплирование положительных иотрицательных примеров неравномерно, перекошено впользу положительных.
36
![Page 61: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/61.jpg)
Presence-only data
• Это значит, что ещё есть пропорции сэмплирования(sampling rates)
γ0 = p(s = 1 | y = 0), γ1 = p(s = 1 | y = 1),
т.е. вероятности взять в выборкуположительный/отрицательный пример.
• Их можно оценить как
γ0 =n0
(1− π)N , γ1 =n1πN ,
где π — истинная доля положительных примеров(встречаемость, occurrence).
• Кстати, эту π было бы очень неплохо оценить в итоге.
36
![Page 62: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/62.jpg)
Presence-only data
• Тогда, если знать истинные значения всех y, то в принципеможно обучить:
p(y = 1 | s = 1, x) =
=p(s = 1 | y = 1, x)p(y = 1 | x)
p(s = 1 | y = 0, x)p(y = 0 | x) + p(s = 1 | y = 1, x)p(y = 1 | x) =
=γ1eη(x)
γ0 + γ1eη(x)=
eη∗(x)
1+ eη∗(x) ,
где η∗(x) = η(x) + log(γ1/γ0), т.е.
η∗(x) = η(x) + log
(n1n0
)− log
(π
1− π
).
36
![Page 63: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/63.jpg)
Presence-only data
• Таким образом, если π неизвестно, то η(x) можно найти сточностью до константы.
• А у нас не n0 и n1, а naive presence np и background nu, т.е.
p(y = 1 | s = 1) = np+πnunp+nu , p(y = 1 | s = 0) = (1−π)nu
np+nu ,
γ1 =p(y=1|s=1)p(s=1)
p(y=1) =np+πnuπ(np+nu)p(s = 1),
γ0 =p(y=0|s=1)p(s=1)
p(y=0) = nunp+nup(s = 1),
и в нашей модели log n1n0 = log
np+πnuπnu , т.е. всё как раньше, но
n1 = np + πnu, n0 = (1− π)nu.• Обучать по y можно так: обучить модель, а потом вычесть изη(x) константу log np+πnu
πnu .
36
![Page 64: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/64.jpg)
Presence-only data
• Но у нас нет настоящих данных y, чтобы обучить регрессию, аесть только presence-only z: если z = 1, то y = 1, но если z = 0,то неизвестно, чему равен y.
• (Ward et al., 2009): давайте использовать EM. Правдоподобие:
L(η | y, z,X ) =∏i
p(yi, zi | si = 1, xi) =
=∏i
p(yi | si = 1, xi)p(zi | yi, si = 1, xi).
• В нашем случае при np положительных примеров и nuфоновых (неизвестных)
p(zi = 0 | yi = 0, si = 1, xi) = 1,p(zi = 1 | yi = 1, si = 1, xi) =
npnp+πnu ,
p(zi = 0 | yi = 1, si = 1, xi) = πnunp+πnu .
36
![Page 65: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/65.jpg)
Presence-only data
• А максимизировать нам надо сложное правдоподобие, вкотором значения y неизвестны:
L(η | z,X ) =∏i
p(zi | si = 1, x) =
=∏i
npπnu e
η(xi)
1+(1+ np
πnu
)eη(xi)
zi 1+ eη(xi)
1+(1+ np
πnu
)eη(xi)
1−zi
.
• Для этого и нужен EM.
36
![Page 66: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/66.jpg)
Presence-only data
• E-шаг здесь в том, чтобы заменить yi на его оценку
y(k)i = E[yi | η(k)
]=
eη(k)+ 1
1+ eη(k) + 1.
• M-шаг мы уже видели, это обучение параметровлогистической модели с целевой переменной y(k) на данныхX .
36
![Page 67: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/67.jpg)
Presence-only data
• У Ward et al. получалось хорошо, но тут вышел любопытныйспор.
• Ward et al. писали так: хотелось бы, чтобы можно былооценить π, но “π is identifiable only if we make unrealisticassumptions about the structure of η(x) such as in logisticregression where η(x) is linear in x: η(x) = x⊤β”.
• Через пару лет вышла статья Royle et al. (2012), тоже оченьцитируемая, в которой говорилось: “logistic regression... ishardly unrealistic... such models are the most commonapproach to modeling binary variables in ecology (and probablyall of statistics)... the logistic functions... is customarily adoptedand widely used, and even books have been written about it”.
36
![Page 68: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/68.jpg)
Presence-only data
• Они предложили процедуру для оценки встречаемости π:• для признаков x у нас p(y = 1 | x) = p(y=1)π1(x)
p(y=1)π1(x)+(1−p(y=1))π0(x) ;• данные – это выборка из π1(x) и отдельно выборка из π(x);• как видно, даже если знать π и π1 полностью, остаётся свобода:надо оценить p(y = 1 | x), а π0(x) мы не знаем;
• Royle et al. вводят предположения для p(y = 1 | x) в виделогистической регрессии: p(y = 1 | x) = σ(β⊤x);
• тогда действительно можно записатьp(y = 1)π1(x) = p(y = 1 | x)π(x) = p(y = 1, x), и если π(x)равномерно (это логично), то
π1(xi) =p(yi = 1 | xi)∑x p(y = 1 | x) ;
если подставить сюда логистическую регрессию, то можнооценить β максимального правдоподобия, и не надо знатьp(y = 1)!
• Что тут не так?36
![Page 69: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/69.jpg)
Presence-only data
• Всё так, но предположение о логистической регрессии здесьвыполняет слишком много работы.
• Если рассмотреть две кривые, у которыхp∗(y = 1 | x,β) = 1
2p(y = 1 | x,β), то у них будетp∗(y = 1) = 1
2p(y = 1), но общее правдоподобие π1(xi) будет вточности одинаковое, 12 сократится.
• Дело в том, что модель p∗ не будет логистическойрегрессией, с β произойдёт что-то нелинейное; но откуда унас настолько сильное предположение? Как отличить синююкривую справа от пунктирной прямой?
36
![Page 70: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/70.jpg)
Рейтинг спортивного ЧГК
• Пример из практики: в какой-то момент я хотел сделатьрейтинг спортивного «Что? Где? Когда?»:
• участвуют команды по ≤ 6 человек, причём часто встречаютсянеполные команды;
• игроки постоянно переходят между командами (поэтомуTrueSkill);
• в одном турнире могут участвовать до тысячи команд(синхронные турниры);
• командам задаётся фиксированное число вопросов (36, 60, 90),т.е. в крупных турнирах очень много команд делят одно и то жеместо.
37
![Page 71: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/71.jpg)
Рейтинг спортивного ЧГК
• Первое решение — система TrueSkill• Расскажу о ней потом, когда будем говорить об ExpectationPropagation
• У неё есть проблемы в постановке спортивного ЧГК, мыкогда-то их отчасти решили, была сложная и интереснаямодель, она работала лучше базового TrueSkill
• Но...
37
![Page 72: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/72.jpg)
Рейтинг спортивного ЧГК
• В какой-то момент база турниров ЧГК стала собиратьповопросные результаты.
• Мы теперь знаем, на какие именно вопросы ответила та илииная команда.
• Так что когда я вернулся к задаче построения рейтинга ЧГК,задача стала существенно проще.
37
![Page 73: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/73.jpg)
Рейтинг спортивного ЧГК
• Пример аналогичного приложения:• есть набор вопросов для теста из большого числа вопросов(например, IQ-тест или экзамен по какому-то предмету);
• участники отвечают на случайное подмножество вопросов;• надо оценить участников, но уровень сложности вопросовнельзя заранее точно сбалансировать.
• «Что? Где? Когда?» — это оно и есть, только теперь участникиобъединяются в команды.
37
![Page 74: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/74.jpg)
Baseline: логистическая регрессия
• Baseline — логистическая регрессия:• каждый игрок i моделируется скиллом si,• каждый вопрос q моделируется сложностью («лёгкостью») cq,• добавим глобальное среднее µ,• обучим логистическую модель
p(xtq | si, cq) ∼ σ(µ+ si + cq)
для каждого игрока i ∈ t команды-участницы t ∈ T (d) и каждоговопроса q ∈ Q(d), где σ(x) = 1/(1+ ex) — логистическийсигмоид, xtq — ответила ли команда t на вопрос q.
38
![Page 75: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/75.jpg)
Модель со скрытыми переменными
• Логистическая модель предполагает фактически, что каждыйигрок ответил на каждый вопрос, который взяла команда.
• Это неправда, мы не знаем, кто ответил, только знаем, чтокто-то это сделал; а если команда не ответила, то никто.
• Это по идее похоже на presence-only data models (Ward et al.,2009; Royle et al., 2012).
39
![Page 76: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/76.jpg)
Модель со скрытыми переменными
• Поэтому давайте сделаем модель со скрытыми переменными.• Для каждой пары игрок-вопрос, добавим переменную ziq,которая означает, что «игрок i ответил на вопрос q».
• На эти переменные есть такие ограничения:• если xtq = 0, то ziq = 0 для каждого игрока i ∈ t;• если xtq = 1, то ziq = 1 для по крайней мере одного игрока i ∈ t.
39
![Page 77: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/77.jpg)
Модель со скрытыми переменными
• Параметры модели те же — скилл и сложность вопросов:
p(ziq | si, cq) ∼ σ(µ+ si + cq).
• Обучаем EM-алгоритмом:• E-шаг: зафиксируем все si и cq, вычислим ожидания скрытыхпеременных ziq как
E[ziq
]=
0, если xtq = 0,p(ziq = 1 | ∃j ∈ t zjq = 1) = σ(µ+si+cq)
1−∏j∈t(1−σ(µ+sj+cq))
, если xtq = 1;
• M-шаг: зафиксируем E [ziq], обучим логистическую модель
E [ziq] ∼ σ(µ+ si + cq).
39
![Page 78: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/78.jpg)
Результаты
• Ну и, конечно, работает хорошо.
MAP
0.6
0.7
0.8
AUC
04.2012
07.2012
10.2012
01.2013
05.2013
08.2013
11.2013
03.2014
06.2014
09.2014
0.7
0.8
0.9
40
![Page 79: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/79.jpg)
Пример
41
![Page 80: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/80.jpg)
Пример
42
![Page 81: Кластеризация и EM-алгоритм-.4cm](https://reader033.vdocuments.mx/reader033/viewer/2022060702/6297647738b80a4a4f262789/html5/thumbnails/81.jpg)
Спасибо!
Спасибо за внимание!
43