2013 10 11_machine_learning_lecture_05

29
Переборные методы: сэмплирование И. Куралёнок, Н. Поваров Яндекс СПб, 2013 И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 1 из 29

description

 

Transcript of 2013 10 11_machine_learning_lecture_05

Page 1: 2013 10 11_machine_learning_lecture_05

Переборные методы: сэмплирование

И. Куралёнок, Н. Поваров

Яндекс

СПб, 2013

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 1 из 29

Page 2: 2013 10 11_machine_learning_lecture_05

Содержание

1 Понятие сэмплированияПроцесс сэмплированияОсновные методы сэмплирования

2 Переборные методы в MLПолный перебор

3 Hill climbing4 Сэмплирование марковскими цепями

Metropolis-Hastings алгоритмАлгоритм Гиббса

5 Построение вероятностного пространства длямаксимизации

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 2 из 29

Page 3: 2013 10 11_machine_learning_lecture_05

Понятие сэмплирования

Сэмплирование — метод исследования множествапутём анализа его подмножеств.Применяется когда:

множество слишком велико для перебора;каждое дополнительное измерение дорого;предварительный анализ.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 3 из 29

Page 4: 2013 10 11_machine_learning_lecture_05

Алгоритм сэмплирования

1 Понять какое множество мы изучаем2 Осознать что из этого множества мы можем

измерить3 Определить количество измерений4 Разработать план сэмплирования5 Провести сэмплирование

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 4 из 29

Page 5: 2013 10 11_machine_learning_lecture_05

Типы сэмплирования

Вероятностное сэмплирование:

p(x),∀x : p(x) > 0

Например: попробуем посчитать соотношениемужчин/женщинНевероятностное сэмплирование:

p(x),∃x : p(x) = 0

Например: “по результатам опроса superjob.ru,100% россиян пользуются интернетом”Без возвращенийС возвращениями

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 5 из 29

Page 6: 2013 10 11_machine_learning_lecture_05

Виды сэмплирования

Вероятностное сэмплированиеПростое вероятностноеСистематическоеСтратифицированноеПропорциональноеКластерное

Невероятностное сэмплированиеОпрос ближайшихПанельное сэмплирование

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 6 из 29

Page 7: 2013 10 11_machine_learning_lecture_05

Как выбрать нужное?

Надо учитывать:природа и размер возможного сэмпла;наличие дополнительной информации обэлементах;необходимя точность измерений;точность отдельных измерений в сэмплировании;стоимость измерений.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 7 из 29

Page 8: 2013 10 11_machine_learning_lecture_05

Возвращаясь к ML

F0 = arg maxF

p(F |X )

+ если известны вероятности можнопопробовать посэмплировать решения;

— не определено пространство F;— неясно как устроить обход.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 8 из 29

Page 9: 2013 10 11_machine_learning_lecture_05

Иногда все просто

F0 = arg maxF∈{fi}ni=1

p(F |X )

1 введём порядок обхода;2 переберём все возможные решения;3 составим взвешенное решение/выберем лучшее.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 9 из 29

Page 10: 2013 10 11_machine_learning_lecture_05

Но чаще всё непросто

F0 = arg maxF∈{fi}∞i=1

p(F |X )

1 введём порядок обхода;2 применим систематическое сэмплирование;3 составим взвешенное решение/выберем лучшее.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 10 из 29

Page 11: 2013 10 11_machine_learning_lecture_05

Случайное блуждание I

Чтобы построить порядок обхода можновоспользоваться такой схемой:

F = F (x , λ), λ ∈ Rn

Ft = F (x , λt)λt+1 = λt + ξ C (λt+1|{λi}t0)

будем блуждать по пространству параметров;необходимо определить:

1 способ сделать шаг;2 условие принятия этого шага.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 11 из 29

Page 12: 2013 10 11_machine_learning_lecture_05

Случайное блуждание II

На что стоит обратить внимание при построенииблуждания:

размерность λ может быть меньше чем кажется;ограничения на λ существенно осложняютпроцедуру.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 12 из 29

Page 13: 2013 10 11_machine_learning_lecture_05

Некоторые виды случайного блуждания

множество фиксированных шагов ξ ∼ U({ξi}m1 );гауссовское ξt ∼ N(µ, σ2);самозависимое;etc.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 13 из 29

Page 14: 2013 10 11_machine_learning_lecture_05

Simple hill climbing

ξ ∼ U({ξi}2n1 ), ξi i2 = −1i mod 2ω, ξij = 0, j 6= i2 ,

C (λt+1|λt) = p(F (λt+1)|X )p(F (λt)|X ) > 1

Свойства:простой;быстро сходится;зависим от выбора начальной точки.etc.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 14 из 29

Page 15: 2013 10 11_machine_learning_lecture_05

Random-restart (shotgun) hill climbing

Проблемы:

сходится в локальный максимум;

может долго сходиться, если начало далеко от максимума;

аллеи.

⇒ Можно рестартить hill climbing из разных начальных точекИ. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 15 из 29

Page 16: 2013 10 11_machine_learning_lecture_05

Интуиция

Мы бы хотели получить сэмплирование, а для этого:хорошо бы обойти всё пространство;нельзя всегда ходить ”по шерсти”;скорость движения должна меняться взависимости от плотности.

⇒ Markov Chain Monte-Carlo (MCMC)

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 16 из 29

Page 17: 2013 10 11_machine_learning_lecture_05

Metropolis-Hastings алгоритм

Введем p(λ1|λ2), отвечающую за локальность.

α =p(Fλt+1 |X )p(λt+1|λt)p(Fλt |X )p(λt |λt+1)

ψ ∼ U(0, 1)

C (λt+1|λt) =

{1, α ≥ ψ0

Например, p(λt+1|λt) ∼ N(λt , σ2E )

Если p(λ1|λ2) = p(λ2|λ1) — это Metropolis

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 17 из 29

Page 18: 2013 10 11_machine_learning_lecture_05

Свойства

+ Обходит всё пространство

+ Это действительно взвешенное сэмплирование

— Последовательные самплы похожи друг на друга

— На этапе разогрева показывает что-то странное

⇒ Точно придём в максимум!И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 18 из 29

Page 19: 2013 10 11_machine_learning_lecture_05

Свойства

+ Обходит всё пространство

+ Это действительно взвешенное сэмплирование

— Последовательные самплы похожи друг на друга

— На этапе разогрева показывает что-то странное

⇒ Точно придём в максимум!Проблема только с тем, что придём за бесконечное время

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 19 из 29

Page 20: 2013 10 11_machine_learning_lecture_05

Сложности в использовании

Сходимость зависит от выбора p(λt+1|λt)Если хотим использовать разумное распределение,оно многомерное ⇒ его сложно реализовывать

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 20 из 29

Page 21: 2013 10 11_machine_learning_lecture_05

Пример с дартс IВася и Петя повесели на стене мишень и поиграли в дартс. Наследующий день пришел их бригадир Юра и задался вопросомкто из подчиненных будет заделывать дырки в стенах.

Будет честнее, чтобы “косой” платил больше

Дырки все одинаковые

Каждый говорит: “да я токо разок кинул!”

Один признался, что: “ну вот это — моя дырка”

Играли без употребления, так что можно считать, чтокидали ∼ N(mi ,Σi), i ∈ {Вася, Петя} и параметры неменялись во времени

Надо помочь Юре!

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 21 из 29

Page 22: 2013 10 11_machine_learning_lecture_05

Пример с дартс IIПри фиксированных параметрах вероятность увидить дырки{xj}, xj ∈ R2

LL =∑j

log(πN(mA,ΣA)(xj) + (1− π)N(mB ,ΣB)(xj))

где A — Вася, B — Петя, π — доля Васиных бросков, mi —сбитость прицела, Σi — разброс стрелка.Максимизировать такое добро трудновато из-за суммы подлогарифмом. Было бы классно точно знать, что тот или инойбросок точно сделал Вася At ∈ {0, 1}:

LL =∑t

At log(N(mA,ΣA)(xj)) + (1− At) log(N(mB ,ΣB)(xj))

В таком варианте все совсем просто считается (если мы еще незабыли формулу плотности нормального многомерногораспределения :))

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 22 из 29

Page 23: 2013 10 11_machine_learning_lecture_05

Пример с дартс III

Если чуть более формально, то мы ввелискрытую/ненаблюдаемую переменную I (A) (такое называетсяdata augmentation) и хотим:

1 Прикинуть начальные mi ,Σi , π

2 Посчитать ожидание скрытого параметра Aj = µ((mi ,Σi , π)

3 В условиях найденных Aj максимизировать LL

4 Перейти к второму шагу до сходимости

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 23 из 29

Page 24: 2013 10 11_machine_learning_lecture_05

Expectation maximization алгоритмФокус, который мы проделали называется EM-алгоритм. Пускайданные у нас состоят из видимой части L и скрытой Z ,X = (L,Z ). Мы хотим найти оптимальные параметры λ:

LL(p(L|λ)) = LL(p(X |λ))

1 Возьмем какой-то λ0

2 Посчитаем ожидание (expectation step):

E (λ|λt) = µ (LL(λ,X )|Z , λt)

3 Проведем оптимизацию (maximization step):

λt+1 = argmaxλ

E (λ|λt)

4 Перейти к второму шагу до сходимостиИ. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 24 из 29

Page 25: 2013 10 11_machine_learning_lecture_05

Алгоритм Гиббса

В Метрополисе есть проблема: многомерноераспределение p(F |X ) = p(λ|X ). Можно попробоватьрассматривать его по частям.

1 Начнем с какого-то λ2 Сгенерируем λt+1 по правилам

p(λt+1,i |X , λt+1,1, . . . , λt+1,i−1, λt,i+1, . . . , λt,n)

3 Будем бегать по i = 1 . . . n, пока не сойдется4 Полученная λ — следующая точка сэмплирования5 Пока хочется идем в п.2

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 25 из 29

Page 26: 2013 10 11_machine_learning_lecture_05

Пример с дартс IV

На языке товарищей Геман:

1 Прикинуть начальные mi ,Σi , π

2 Для каждого сампла сгенерировать Aj из текущего π

3 В условиях найденных Aj максимизировать LL

4 Перейти к второму шагу до сходимости того момента покараспределение параметров не перестанет меняться

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 26 из 29

Page 27: 2013 10 11_machine_learning_lecture_05

Как можно построить p(F |X ) для RMSE

p(λ|X ) = e−c‖F (λ|X )−Y‖2

Z

Z =∫λ

e−c‖F (λ|X )−Y ‖dλ

Если максимизируем, то надеемся задрать Y так,чтообы Z был определён.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 27 из 29

Page 28: 2013 10 11_machine_learning_lecture_05

Заключение

Сэмплирование очень полезная вещь:собирать данные;брать интегралы;обучаться.

Посмотрите на bayesian inference и библиотеку Гиббсадля него: BUGS.

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 28 из 29

Page 29: 2013 10 11_machine_learning_lecture_05

Задание на дом

Датасет, как обычно, в svnСуть - учимся предсказывать размер аудиториисервисаN(t) = ( 1

1+eat+b )N0

Ищем a, b, N0

Можно прямо hill climbingМожно подумать и воспользоваться алгоритмомГиббса

И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2013 Стр. 29 из 29