28
Ансамбли И. Куралёнок, Н. Поваров Яндекс СПб, 2016 И. Кураленок, Н. Поваров, Яндекс Санкт-Петербург, 2016 Стр. 1 из 22

Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Embed Size (px)

Citation preview

Page 1: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Ансамбли

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

Яндекс

СПб, 2016

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

Page 2: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

ПримерBagginng

Дмитрий и Владимир выбирают страну, куда поехатьна отдых. Их рассуждения:“Ничего мы не знаем про эту заграницу, давайпоспрашиваем у знакомых”И опросили много народу: Петровича, Славу, Дмитрия,Людвига, Сергея и т.п.

Надо понять как теперь быть с результатами опроса, икуда же все-таки ехать.

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

Page 3: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Bayes Optimal ClassifierПускай у нас есть несколько способов узнать правду(H), тогда лучше всего правда получается так:

argmaxc

∑t

p(c |ht)p(ht |X ) = argmaxc

∑t

p(c |ht)p(X |ht)p(ht)

по большому счету это просто байесово решение впространстве гипотез. Но есть несколько проблем:

если семейство бесконечно, то мы замучаемся егоперебирать;

не всегда классификатор предоставляет p(c |ht);

как определить prior традиционно не ясно;

получить несмещенный p(X |ht) нетривиальная задача.

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

Page 4: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Пути построения BOC

Раз идеальное решение построить не дают, будемсэмплировать (BMA):

1 Для каждого сампла:1 вычислим prior, точность предсказания (p(1|h,X ))2 из точности предсказания можно получить log

likelihood (logp(X |h)):

|X | (p(1|h,X ) log p(1|h,X ) + (1− p(1|h,X )) log (1− p(1|h,X )))

3 примем за вес гипотезы w(h) = p(h)e log p(X |h)

2 посчитаем результаты с использованием весов.

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

Page 5: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Сложности BMA

“Для каждого сампла” — надо бы конкретезировать датак, чтобы:

чтобы можно было найти p(c |ht);работать только там, где высокий p(ht |X );иметь дело с однородными гипотезами, чтобы не мучатьсяс prior;не концентрироваться вокруг одной точки.

А это невозможно без понимания того как устроеносемейство решающих функций.

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

Page 6: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Какие свойства решающей функцииважны?

Простой способ подбораВысокая вариативностьСравнимые результаты

Мы знаем такое семейство — это ж деревья!

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

Page 7: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Нужные свойства на деревьях

Простой способ подбора: все просто и быстро параллелитсяпо листьямВысокая вариативность:

менять данные для обучения (например bootstrapping’ом);

разрешать использовать не все факторы, а тольконекоторые.

Сравнимые результаты: мы всегда можем говорить в однихтерминах (сколько примеров в листе, куда попала точка, какиепараметры распределения etc.)

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

Page 8: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Random Forest (bagging)без фигни

Bagging = bootstrap aggregating1 Сделаем выборку данных X ′ из X по правилам

bootstrap2 Построим оптимальное дерево на множестве X ′

3 Результат получим равновесным голосованиемдеревьев

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

Page 9: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Random Forest как BMA

Способ обхода решений: “будем обходить оптимальныедеревья”.Обход решений мы полагаем эквивалентным обходувыборок из генеральной совокупности одинаковогоразмера.А выборки уже обходим стандартно (за неимениемдоступа к генеральной совокупности).

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

Page 10: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Видимые проблемы

Большинство деревьев будут очень похожи близко откорня, что уменьшает вариативность.⇒ Давайте пожертвуем точностью увеличиввариативность!

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

Page 11: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Random Forest (bagging)оригинальный by Leo Breiman

Bagging = bootstrap aggregating1 Сделаем выборку данных X ′ из X по правилам

bootstrap2 Построим оптимальное дерево на этом множестве,

используя при разбиении ограниченный наборфакторов

3 Результат получим равновесным голосованиемдеревьев

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

Page 12: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Random Forest свойства

Работает!Много места для шаманства (веса, обрезание,количество, способ голосования, выборпараметров)На практике легко оверфитнуть на validate, таккак результаты сильно зависят от seedНевозможно оверфитнуть черезувеличение количества деревьев!

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

Page 13: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

ПримерBoosting

Дмитрий и Владимир выбирают страну, куда поехать на отдых.Их рассуждения:“Ничего мы не знаем про эту заграницу, давай поспрашиваем узнакомых”И спросили они Петровича, а он и говорит: “надо ехать в Европу”!Пошли товарищи к Славе, который был в Болгарии, а он и говорит: “вБолгарии не очень, но вот на Черном море в целом – классно”,И пошли они к Людвигу, который отдыхал в Турции, а он и говорит: ...

Надо понять как теперь быть с результатами опроса, и куда жевсе-таки ехать.

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

Page 14: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

В переводе на русский

Парни хотят использовать результаты опроса для того, чтобыприближаться к истине с каждым шагом, углубляясь в детали.Было (Bayes Optimal Classifier):

argmaxc

∑t

p(c |ht)p(X |ht)p(ht)

Хотим ввести состояние St , которое отражает наше текущеепонимание предмета:

argmaxc

∑t

p(c |ht)p(X |ht , St)p(ht |St)

В качестве состояния, например, может выступать текущийответ по каждой точке St+1 = {p(x |Ht)}x∈X

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

Page 15: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Почему это может работать?

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

HT (x) = e∑T

t=1 αtht(x)

При этом будем ее строить итеративно:

ht+1 = argmaxh p(h|X ,Ht)αt+1 = argmaxα p(Ht+1|X , ht+1,Ht)

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

Page 16: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Adaptive boostingAdaBoost by Y. Freund, R. Schapire

1 Введем состояние S0 = { 1m}

m1

2 Найдем классификатор ht+1:

ht+1 = arg minh

m∑i=1

sti I{yi 6= h(xi)}

3 Если минимум et ≥ 12 , то останавливаемся

4 αt+1 =12 log

1−etet

5 Обновляем состояние

st+1i =stie

−αt+1yiht+1(xi )

Zt+1

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

Page 17: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Свойства AdaBoosting

Прям совсем работаетЧорная магияМожно переобучить при определенном количествеитерацийУмеет обучаться после того как все угадал

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

Page 18: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Weak vs. Strong learners

Как можно видеть из формул, ошибка h большогозначения не имеет, важно уметь делать чуть-чутьлучший чем рандом классификатор.Boosting — это способ сделать из множества слабыхклассификаторов один сильный.

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

Page 19: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBagging

Bagging — это стрельба по мишени.

Особо точный лучник порвет мишень!

⇒ пускайстреляет на звук!Будет смещен в сторону сильных факторов ⇒выдадим ему плохой лук!

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

Page 20: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBagging

Bagging — это стрельба по мишени.

Особо точный лучник порвет мишень! ⇒ пускайстреляет на звук!

Будет смещен в сторону сильных факторов ⇒выдадим ему плохой лук!

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

Page 21: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBagging

Bagging — это стрельба по мишени.

Особо точный лучник порвет мишень! ⇒ пускайстреляет на звук!Будет смещен в сторону сильных факторов

⇒выдадим ему плохой лук!

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

Page 22: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBagging

Bagging — это стрельба по мишени.

Особо точный лучник порвет мишень! ⇒ пускайстреляет на звук!Будет смещен в сторону сильных факторов ⇒выдадим ему плохой лук!

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

Page 23: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBoosting

Boosting — это игра в гольф, когда не важно сколькораз ударил.

Если бить слишком точно, то ансамбль будет слишкомкороткий.

⇒ сломаем руки

.

Получится однообразный ⇒ сломаем клюшки

.

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

Page 24: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBoosting

Boosting — это игра в гольф, когда не важно сколькораз ударил.

Если бить слишком точно, то ансамбль будет слишкомкороткий. ⇒ сломаем руки.

Получится однообразный ⇒ сломаем клюшки

.

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

Page 25: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBoosting

Boosting — это игра в гольф, когда не важно сколькораз ударил.

Если бить слишком точно, то ансамбль будет слишкомкороткий. ⇒ сломаем руки.Получится однообразный

⇒ сломаем клюшки

.

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

Page 26: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного аналогийBoosting

Boosting — это игра в гольф, когда не важно сколькораз ударил.

Если бить слишком точно, то ансамбль будет слишкомкороткий. ⇒ сломаем руки.Получится однообразный ⇒ сломаем клюшки.

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

Page 27: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Что мы сегодня узнали

Если есть много классификаторов, то их можнокомбинироватьМожно это делать по науке, но железа на всех нехватитДелая близко к науке (bagging) можно достичьхороших результатовЕсли использовать чОрную магию (boosting), томожно получить еще лучшеУзнали что такое weak и strong learner

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

Page 28: Машинное обучение 2, весна 2016: Ансамбли деревьев решений

Немного о ансамблях

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

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