Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Data Mining #10 / ЕМ-алгоритм [Технострим]

Data Mining #10 / ЕМ-алгоритм [Технострим]

More Decks by Технострим Mail.ru Group

Transcript

  1. Метод максимума правдоподобия Пишем функцию правдоподобия, то есть вероятность пронаблюдать

    выборку. Если все объекты берутся независимо из одинакового распределения: С суммой, как правило, удобнее работать. Правильные параметры те, которые максимизируют L(θ) = p(X|θ) = N ∏ i=1 p(xi |θ) log L(θ) = N ∑ i=1 log p(xi |θ) L(θ) θML = argmax log L(θ) 4
  2. Метод максимума правдоподобия Показали, что для распределения Бернулли: Для нормального:

    θ = ∑N i=1 xi N μ = ∑N i=1 yi N σ2 = 1 N N ∑ i=1 (xi − μ)2 = 1 N N ∑ i=1 (xi − 1 N N ∑ i=1 xi )2 5
  3. Метод максимума правдоподобия Если мы провели очень мало испытаний, метод

    максимума правдоподобия может дать неадекватную оценку Свойства ММП: • Состоятельность (оценка сходится по вероятности к истинному значению) • Асимптотическая нормальность (оценка распределена нормально) • Асимптотическая эффективность (обладает наименьшей дисперсией среди всех состоятельных асимптотически нормальных оценок) При Для каких распределений мы можем легко посчитать оценку максимума правдоподобия? n d → ∞ 6
  4. Экспоненциальный класс лежит в экспоненциальном классе, если: , где Что

    мы хотим от , чтобы быть уверенными, что мы сможем посчитать оценки ММП? θML = argmax log p(X|θ) p(x|θ) p(x|θ) = f(x) g(θ) exp(θTu(x)) g(θ) = ∫ f(x)exp(θTu(x))dx log p(X|θ) 7
  5. Экспоненциальный класс Можно показать, что: Ковариационная матрица неотрицательно определена, то

    есть функция вогнутая Ну и что, наши то любимые распределения ни из какого не экспоненциального класса. log L(θ) = N ∑ i=1 f(xi ) − N log g(θ) + θT N ∑ i=1 u(xi ) ∂2g(θ) ∂θi ∂θj = cov(ui , uj ) log L(θ) 10
  6. Пример распределения не из экспоненциального класса Источник: chrisjmccormick.files.wordpress.com/ 2014/08/1d_example.png Что

    бы нам дополнительно хотелось знать, чтобы мы могли построить 2 гауссианы? 12
  7. Какая точка из какой гауссианы Тогда бы мы рассмотрели независимо

    точки из каждой гауссианы и по формулам из ММП: Одна проблемка — мы не знаем из какой гауссианы пришла каждая точка! K σ2 k = ∑N i=1 [xi ∈ K](xi − μk )2 Nk 13 μk = ∑N i=1 xi [xi ∈ K] Nk
  8. Модели со скрытыми переменными Наша выборка пришла из какого-то сложного

    распределения, которое зависит не только от наблюдаемых переменных , но и от каких-то скрытых переменных , которые мы не наблюдаем. Есть два варианта: • Не обращаем на это внимание, просто решаем задачу выбирая какое-то параметрическое семейство • Смиряемся, что мы не наблюдаем, моделируем все равно и находим одновременно и параметры модели, и скрытые переменные X Z argmax log p(X|θ) Z argmax log p(X, Z|θ) 14
  9. В чем преимущество Скрытые переменные мы выбираем сами! То есть

    мы можем сделать так, что совместное распределение будет из экспоненциального класса, а значит будет вогнутой функцией и задача может быть решена эффективно! • — неполное правдоподобие • — полное правдоподобие p(X, Z|θ) log p(X, Z|θ) argmax θ log p(X, Z|θ) p(X|θ) p(X, Z|θ) 15
  10. Иногда сами параметры не нужны В некоторых задачах нам на

    самом деле только скрытые переменные и нужны! Источник: en.wikipedia.org/wiki/Cluster_analysis В задаче кластеризации какие скрытые переменные? 16
  11. Примеры задач Скрытая переменная — номер кластера! Нам ее и

    нужно восстановить Примеры задач со скрытыми переменными: • Кластеризация • Машинный перевод • Распознавание речи • Распознавание частей речи • Тематическое моделирование • Умная разметка в краудсорсинге • Восстановление плотности 17
  12. Пример Провели тест, теперь хотим узнать правильные ответы. И какой

    ответ правильный? Какие в задаче наблюдаемые, а какие скрытые переменные? 18
  13. Пример Правильный logN Наблюдаемые — ответы, которые дают студенты Скрытые

    — правильные ответы Параметры — «оценка студента» Такие задачи можно решать в 2 шага На первой итерации всех студентов оцениваем одинаково. 1. Оценили ответы через взвешенную сумму голосов с большими весами у отличников 2. По этим ответам пересчитали оценки студентов А какое практическое применение? Ответы то мы знаем. 19
  14. Пример Для краудсорсинга! Хотим разметить огромный датасет на кошечек и

    собачек. Одну картинку оценивают сразу несколько людей. Применяем такой алгоритм, чтобы найти халтурщиков (ставят метки просто так) и восстановить правильные метки! 20
  15. Тематические модели Один из современных подходов к анализу текстов. Тема

    — семантический кластер текстов Цель тематического моделирования: понять, к каким темам относится документ и какие слова образуют тему. Примеры применения: • Категоризация документов • Рекомендательные системы • Информационный поиск • Выделение трендов в новостных потоках Какие параметры наблюдаемые, а какие скрытые? 22
  16. Тематические модели Тема — скрытая переменная. Число тем задаем сами.

    Наблюдаем слова в документе. Настраиваем параметры: • — матрица вероятности темы для каждого слова • — матрица вероятности темы для каждого документа Строим генеративную модель порождения текстов: Если на матрицу наложить prior в виде распределения Дирихле, то модель будет называться latent dirichlet allocation Позволяет поощрять разреженность тематического профиля документа Находим параметры Φ Θ L(W, Z|Φ, Θ) = D ∏ d=1 Nd ∏ i=1 p(wd,i |zd,i , Φ)p(zd,i |Θd ) Θ log L(W, Z|Φ, Θ) → max Φ,Θ 23
  17. Резюме первой части • Узнали, что такое экспоненциальный класс распределений,

    почему для него просто считать оценку ММП • Познакомились с формулировкой задачи со скрытыми переменными • Разобрали несколько примеров таких задач 25
  18. Вариационная нижняя оценка Вариационной нижней оценки для функции является функция

    , если для любых и для любого найдется такой, что То есть мы пытаемся снизу подпереть нашу функцию каким-то классом функций! f(θ) g(θ, ν) θ, ν g(θ, ν) ≤ f(θ) θ* μ* g(θ*, ν*) = f(θ*) 26
  19. Вариационная нижняя оценка Хотим решить задачу Напрямую решить не получается,

    но мы смогли построить вариационную нижнюю оценку , для которой максимум по искать просто. Тогда для решения задачи можно итеративно находить максимумы для 1. Инициализировали , посчитали для него 2. , Сходится ли такой метод? argmax θ f(θ) g(θ, ν) θ argmax θ f(θ) g(θ, ν) θold νold = argmax ν g(θold , ν) = f(θold ) θnew = argmax θ g(θ, νold ) νnew = argmax ν g(θnew , ν) 28
  20. Сходится ли метод Да! На каждой итерации мы увеличиваем значение

    нашей функции , но глобального оптимума никто не гарантирует — сходимся к локальному. При чем тут машинное обучение? За что нам это? g(θold , μold ) = f(θold ) < g(θnew , μold ) < g(θnew , μnew ) = f(θnew ) f(θ) 29
  21. EM алгоритм в нашей задачи это неполное правдоподобие Наша задача

    построить для нее , которое бы являлась вариационной нижней оценкой. Очевидно, что в нее в каком-то виде войдут скрытые переменные. EM (Expectation-maximization) - алгоритм, позволяющий находить оценку максимального правдоподобия в задачах со скрытыми переменными. Схематично метод можно описать так: 1. Проинициализировали параметры 2. Максимизировать по скрытым переменным (E шаг) 3. Максимизировать по параметрам (M шаг) 4. Повторять 2 и 3 до сходимости f(θ) g(θ, ν) 30
  22. Напоминание из теории информации Есть случайная величина. Какое число информации

    мы получаем, когда наблюдаем определенную ее реализацию? Можно показать, что Получатель отправляет информацию о том, какая у него реализация случайной величины Сколько в среднем бит ему надо передать? Эта величина называется энтропией случайной величины Почему ее используют для дерева решений? h(x) h(x) = − log2 p(x) H[x] = − ∑ x p(x)log2 p(x) x 31
  23. Напоминание из теории информации Потому что она максимальна у равномерного

    распределения и равна нулю у вырожденного (когда значение принимается с вероятностью 1) Для вещественных величин 
 Для нормального распределения: Чем более «размазанное» распределение, тем больше у него энтропия! H[x] = − ∫ p(x)log p(x)dx H[x] = 1 2 (1 + log 2πσ2) 32
  24. Дивергенция Кульбака-Лейблера Представим, что мы не знаем и пытаемся восстановить

    его каким-то . Как померить расстояние между этими двумя распределениями, насколько мы хорошо приблизили? Будем считать, насколько бит увеличится информация, если мы будем кодировать случайную величины из с помощью Это метрика? p(x) q(x) p(x) q(x) KL(q||p) = − ∫ p(x)log q(x)dx − ( − ∫ p(x)log p(x)dx) KL(q||p) = − ∫ p(x)log q(x) p(x) dx = ∫ p(x)log p(x) q(x) dx 33
  25. Дивергенция Кульбака-Лейблера Это не метрика! Она не удовлетворяет ни условию

    симметричности, ни неравенству треугольника. Но она неотрицательна. Докажем. Неравенство Йенсена для выпуклых функций Равенство, когда в каждой точке. То есть можно использовать, как функцию расстояния. ∑ λi f(xi ) ≥ f(∑ λi xi ) KL(q||p) = − ∫ p(x)log q(x) p(x) dx ≥ − log ∫ p(x) q(x) p(x) dx = − log ∫ q(x)dx = 0 p(x) = q(x) 34
  26. Дивергенция Кульбака-Лейблера Пусть мы пытаемся восстановить вырожденное распределение для одного

    объекта Будем считать что у объекта 2 класса: Ничего не напоминает? KL(q||p) = ∑ p(y)log p(y) q(y) dx = ∑ p(y)log p(y) − ∑ p(y)log q(y) = − ∑ p(y)log q(y) −∑ p(y)log q(y) = − [y = 1]log q(y = 1) − [y = 0]log q(y = 0) 35
  27. Дивергенция Кульбака-Лейблера Logloss это просто дивергенция Кульбака-Лейблера. Мы пытаемся восстановить

    для каждого объекта распредели над его классами такое, чтобы оно было максимально похоже на истинное врожденное распределение (то есть на такое, когда единственный класс имеет вероятность 1, а остальные классы 0) Источник: stats.stackexchange.com/questions/116517/degenerate-univariate-gaussian 36
  28. Вывод EM алгоритма Хотим максимизировать Пусть - скрытые переменные в

    нашей задаче (так как ) Где тут спряталась KL дивергенция? log P(X|θ) → max θ Z log P(X|θ) = ∫ q(Z)log P(X|θ)dZ = ∫ q(z)log P(X, Z|θ) P(Z|X, θ) dZ P(X|θ) = P(X, Z|θ) P(Z|X, θ) log P(X|θ) = ∫ q(z)log P(X, Z|θ)q(Z) P(Z|X, θ)q(Z) dZ = = ∫ q(Z)log P(X, Z|θ) q(Z) dZ + ∫ q(Z)log q(Z) P(Z|X, θ) dZ 37
  29. Вывод EM алгоритма Вот Первое слагаемое не дивергенция, так как

    разный носитель! Мы доказали, что неотрицательна. Для любого существует , такое что неравенство перейдет в равенство (когда ) Ну и что же дальше? KL(q||p) = ∫ q(Z)log q(Z) P(Z|X, θ) dZ L(θ, q) = ∫ q(Z)log P(X, Z|θ) q(Z) dZ KL(q||p) log P(X|θ) = L(θ, q) + KL(q||p) ≥ L(θ, q) θ q KL(q||p) = 0 38
  30. Вывод EM алгоритма Это значит, что является вариационной нижней оценкой

    для , которую мы оптимизируем Таким образом для решения делаем итеративную оптимизацию (E шаг, expectation) (M шаг, maximization) L(q, θ) = ∫ q(Z)log P(X, Z|θ) q(Z) dZ f(θ) = log P(X|θ) log P(X|θ) → max θ L(θ, q) log L(θ*, q) → max q log L(θ, q*) → max θ 39
  31. E шаг Хотим оптимизировать нижнюю оценку по — это, вообще

    говоря, распределение. То есть нам нужно провести функциональную оптимизацию. Задача в общем случае непосильная, если бы не: То есть сумма от не зависит! Значит, чтобы максимизировать по , надо минимизировать по , ну а это то уже мы знаем как Как минимизировать по ? q log L(θ*, q) → max q q f(θ) = log P(X|θ) = L(θ, q) + KL(q||p) q L(θ, q) q KL(q||p) q KL(q||p) q 40
  32. E шаг По свойству KL дивергенции Если аналитически вывод провести

    нельзя, то параметризуем наше какими-то параметрами и решаем задачу KL(q||p) = ∫ q(Z)log q(Z) P(Z|X, θ) dZ log KL(q||p) → min q q*(Z) = P(Z|X, θ) q q(η) log KL(q(η)||p) → min η 41
  33. M шаг Хотим оптимизировать нижнюю оценку по Второй член от

    не зависит, его можно отбросить То есть на M шаге решаем задачу: Вместо исходной стали решать , в чем смысл? θ log L(θ, q*) → max θ L(θ, q*) = ∫ q*(Z)log P(X, Z|θ) q(Z) dZ = ∫ q*(Z)log P(X, Z|θ)dZ − ∫ q(Z)log q*(Z)dZ θ ∫ q*(Z)log P(X, Z|θ)dZ → max θ Z log P(X, Z|θ) → max θ log P(X|θ) → max θ Z log P(X, Z|θ) → max θ 42
  34. M шаг Смысл есть! Мы говорили, что не лежит в

    экспоненциальном классе. Мы можем подобрать скрытые переменные так, что уже будет в экспоненциальном классе, а значит будет вогнутой функции, а значит, что и будет вогнутым! Интеграл можем даже не считать аналитически, а например использовать методы Монте-Карло. P(X|θ) P(X, Z|θ) log P(X, Z|θ) Z log P(X, Z|θ) 43
  35. EM алгоритм Инициализировали параметры 1. Оценили апостериорное распределение на скрытые

    переменные с весами с прошлого шага (E шаг) 2. Нашли новые веса (M шаг) 3. Повторять до сходимости весов θ0 q*(Z) = P(Z|X, θold ) ∫ q*(Z)log P(X, Z|θ)dZ → max θ 44
  36. Пример Для 2 броска вероятней, что это монетка ! А

    как оценить апостериорную вероятность? Дальше считаем мат.ожидание. Дальше считаем не через реальное число бросков, а через их мат.ожидания! θA = 0.6,θB = 0.5 L(θ) = p9(1 − p)10−9 L(θA ) = 0.004,L(θB ) = 0.001 A P(Z|X, θold) = P(X, θold |Z)P(Z) P(X, θold) = P(X, θold |Z)P(Z) ∑ i P(Zi )P(X, θold |Zi ) P(Z = A|X, θold) = 0.004 0.004 + 0.001 = 0.8,P(Z = B|X, θold) = 0.001 0.004 + 0.001 = 0.2 θA , θB 49
  37. Пример Дальше считаем производные по подставим вместо вероятность (мат ожидание

    индикатора) Ответ будет такой же, как для ММП, но число орлов и решек нужно домножить на Для монетки число орлов , число решек Для монетки число орлов , число решек p(z = 1|x, θold) = p(x, θold |z = 1)p(z = 1) P(z, θold) = θx A (1 − θA )1−x θx A (1 − θA )1−x + θx B (1 − θB )1−x Z log P(X, Z|θ) = log[(θx A (1 − θA )1−x)z ⋅ (θx B (1 − θB )1−x)1−z] = = [z](x log θA + (1 − x)log(1 − θA )) + [1 − z](x log θB + (1 − x)log(1 − θB )) θA , θB [z] p(z = 1|x, θold) P(Z|X, θold) A 9 * 0.8 = 7.2 1 * 0.8 = 0.8 B 9 * 0.2 = 1.8 1 * 0.2 = 0.2 50
  38. Резюме второй части • Познакомились с итеративным методом оптимизации с

    помощью вариационной нижней оценки • Узнали, что такое KL дивергенция и как она связана с Loglossом • Вывели EM алгоритм • Разобрали пример 51
  39. Напоминание Оптимальный Байесовский классификатор: Аналитически не знаем, нужно сделать оценку

    «Насколько вероятно, что целевая переменная равна классу при условии, что этот объект имеет вектор весов » Считаем такую вероятность по обучающей выборке! Как оцениваем каждый множитель? a*(x) = argmax y∈Y p(y|x) y x a*(x) = argmax y∈Y p(y|x) = argmax y∈Y p(x|y)p(y) p(x) = argmax y∈Y p(x|y)p(y) 53
  40. Байесовский классификатор, основанный на оценке плотности. 1. Разбили обучающую выборку

    по классам 2. Оценили , как долю данного класса в обучающей выборке для каждого класса 3. Решили, как будем считать 4. Посчитали и умножили на для каждого класса 5. Взяли класс с максимальным значением Какими способами можно оценить p(y) p(x|y) p(x|y) p(y) a*(x) = argmax y∈Y p(y|x) = argmax y∈Y p(x|y)p(y) p(x|y) 54 Напоминание
  41. Напоминание Методы оценки плотности: 1. Непараметрический — смотрим, какой процент

    точек из обучающей выборки лежит в окрестности оцениваемого значения. 2. Параметрический — предполагаем, что наше распределение из параметрического семейства. Настраиваем параметры распределения по обучающей выборке. 3. Восстановление из смеси распределений — предполагаем, что наше распределение смесь параметрических распределений. Почему нельзя для смеси восстановить непараметрически или параметрически? 55
  42. Напоминание Непараметрически можно. Параметрически не получится. Потому что смесь распределений

    не лежит в экспоненциальном классе. Нужно вводить скрытые переменные. Источник: chrisjmccormick.files.wordpress.com/ 2014/08/1d_example.png 56
  43. Многомерное нормальное распределение Оцениваем параметры с помощью ММП: , где

    Покажите дома, что L(θ) = p(X|θ) = N ∏ i=1 p(xi |θ) p(xi |θ) = 1 (2π)n/2 |Σ|1/2 e− 1 2 (xi −μ)TΣ−1(xi −μ) μ = 1 N N ∑ i=1 xi , Σ = 1 N N ∑ i=1 (xi − μ)T(xi − μ) 59
  44. Смесь распределений где - число компонент смеси, - распределение компоненты,

    - априорная вероятность компоненты. Мы будем говорить про смесь многомерных нормальный распределений. Источник: angusturner.github.io/generative_models/2017/11/03/pytorch-gaussian- mixture-model.html p(x) = K ∑ k=1 πk pk (x), K ∑ k=1 πk = 1,πk ≥ 0, K pk (x) k πk k 60
  45. Правдоподобие Параметризуем . Неполное правдоподобие выглядит плохо: Полное правдоподобие: Введем

    скрытую переменную, которая будет отвечать за выбор компоненты. - -мерный вектор, у которого одна компонента равна 1 , а остальные 0. Вот так уже намного приятнее! pk (x) = ϕ(x|Θk ) log P(X|Θ) = log N ∏ i=1 p(xi |Θ) = N ∑ i=1 log K ∑ k=1 πk ϕ(xi |Θk ) log P(X, Z|Θ) = log N ∏ i=1 p(xi , Z|Θ) z k p(xi , Z|Θ) = K ∏ k=1 [πk ϕ(xi |Θk )]zi,k log P(X, Z|Θ) = N ∑ i=1 K ∑ k=1 zi,k (log πk + log ϕ(xi |Θk )) 62
  46. Переход к нормальному распределению Неполное правдоподобие: Полное правдоподобие: Где Такую

    модель называют Gaussian Mixture Models(GMM) log P(X|Θ) = log N ∏ i=1 p(xi |Θ) = N ∑ i=1 log K ∑ k=1 πk N(xi |μk , Σk ) log P(X, Z|μk , Σk ) = N ∑ i=1 K ∑ k=1 zi,k (log πk + log N(xi |μk , Σk )) N(x|μk , Σk ) = 1 (2π)n/2 |Σk |1/2 e− 1 2 (x−μk )TΣ−1 k (x−μk ) 63
  47. EM для смеси нормальных распределений E шаг: считаем апостериорное распределение

    на скрытые переменные Поэтому разделение смеси называют мягкой кластеризацией. M шаг: максимизируем мат. ожидание логарифма полного правдоподобия при условии Как найти точку максимума? p(zi,k = 1|xi , Θold) = p(zi,k = 1)p(xi |zi,k = 1,Θold) p(xi |Θold) = πold k N(xi |μold k , Σold k ) K ∑ j=1 πold j N(xi |μold j , Σold j ) = gi,k Ez log P(X, Z|μk , Σk ) = Ez N ∑ i=1 K ∑ k=1 zi,k (log πk + log N(xi |μk , Σk )) = = N ∑ i=1 K ∑ k=1 gi,k (log πk + log N(xi |μk , Σk )) → max μk ,Σk ,πk K ∑ k=1 πk = 1 64
  48. EM для смеси нормальных распределений Построив функцию Лагранжа и приравняв

    ее градиент к нулю. Тогда получим: ММП для нормального распределения давало вот что: То есть по сути такие же формулы, только взвешены с помощью (насколько объект подходит под компоненту) πk = 1 N N ∑ i gi,k μk = ∑N i gi,k xi ∑N i gi,k Σk = ∑N i gi,k (xi − μk )(xi − μk )T ∑N i gi,k μ = 1 N N ∑ i=1 xi , Σ = 1 N N ∑ i=1 (xi − μ)T(xi − μ) gi,k 65
  49. EM для смеси нормальных распределений Алгоритм разделения смеси нормальных распределений

    1. Выбрали начальные параметры 2. Оценили для каждого объекта его принадлежность к каждой гауссиане 3. Обновили параметры по формулам 4. Повторять 2 3 до сходимости Зачем это может понадобиться, кроме как для восстановления плотности? πk , μk , Σk gi,k πk , μk , Σk 66
  50. EM для смеси нормальных распределений Это обучение без учителя, мягкая

    кластеризация. Вы можете применять ее на огромных массивах неразменных данных, находя такие мягкие кластера. Дальше можно их использовать как признаки в задаче обучения с учителем. GMM это генеративная модель? 67
  51. Байесовский классификатор как генеративная модель Байесовский классификатор: Вы моделируете ,

    а не просто . С его помощью тоже можно генерировать новые объекты. a*(x) = argmax y∈Y p(y|x) = argmax y∈Y p(x|y)p(y) p(x|y) p(y|x) 69
  52. Предельный случай Разделяем смесь нормальных распределений. Пусть , единичная матрица,

    стремится к нулю, априорные вероятности кластеров равны. Если стремится к нулю, то для самой близкой к объекту гауссианы и для всех остальных. Дальше пересчитали единственный параметр: Ничего не напоминает? Σ = σ2I σ2 p(zi,k = 1|xi , Θold) = πold k N(xi |μold k , Σold k ) K ∑ j=1 πold j N(xi |μold j , Σold j ) = exp(− 1 2σ2 ||xi − μk ||2 ) ∑K j=1 exp(− 1 2σ2 ||xi − μj ||2 ) = gi,k σ2 gi,k = 1 i gi,k = 0 μk = ∑N i gi,k xi ∑N i gi,k 70
  53. K-means Это и есть k-means! При устремлении гауссиан к дельта

    функциям мы переходим от мягкой кластеризации к жесткой. 1. Выбрали начальные центры кластеров 2. Каждый объект отнесли к ближайшему кластера 3. Обновили центры кластеров по формулам 4. Повторять 2 3 до сходимости 71
  54. Резюме третьей части • Вспомнили, что такое задача восстановления плотности

    • Познакомились с многомерным нормальным распределением • С помощью EM алгоритма нашли параметры GMM • Вспомнили, что такое генеративные модели • Узнали связь k-means с GMM 73