41
Лекция 10 Алгоритмические композиции Кульминация и развязка Владимир Гулин 26 ноября 2014 г.

Лекция №10 "Алгоритмические композиции. Завершение"

Embed Size (px)

Citation preview

Page 1: Лекция №10 "Алгоритмические композиции. Завершение"

Лекция 10Алгоритмические композиции

Кульминация и развязка

Владимир Гулин

26 ноября 2014 г.

Page 2: Лекция №10 "Алгоритмические композиции. Завершение"

План лекции

Напоминание

Бустинг

Градиентный бустинг

Мета-алгоритмы

1 / 40

Page 3: Лекция №10 "Алгоритмические композиции. Завершение"

Задача обучения с учителем

Постановка задачи

Пусть дан набор объектов D = {(xi , yi )}, xi ∈ X , yi ∈ Y, i ∈ 1, . . . ,N,полученный из неизвестной закономерности y = f (x). Необходимопостроить такую h(x), которая наиболее точно аппроксимирует f (x).

Будем искать неизвестную

h(x) = C (a1(x), . . . , aT (x))

ai (x) : X → R, ∀i ∈ {1, . . . ,T} - базовые моделиC : R → Y - решающее правило

2 / 40

Page 4: Лекция №10 "Алгоритмические композиции. Завершение"

Алгоритмические композицииSimple Voting

h(x) =1

T

T∑i=1

ai (x)

Weighted Voting

h(x) =1

T

T∑i=1

biai (x), bi ∈ R

Mixture of Experts

h(x) =1

T

T∑i=1

bi (x)ai (x), bi (x) : X → R

3 / 40

Page 5: Лекция №10 "Алгоритмические композиции. Завершение"

Идея бустинга

Снова выбираем ноутбук

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

I Более реалистичная модельI Уточняем наш вопрос в зависимости от ответов предыдущих

экспертов

4 / 40

Page 6: Лекция №10 "Алгоритмические композиции. Завершение"

Boosting vs Bagging

Стрельба в тире Игра в гольф

5 / 40

Page 7: Лекция №10 "Алгоритмические композиции. Завершение"

Бустинг для задачи бинарной классификации

ПустьY = −1,+1, ai : X → {−1, 0,+1}, i = 1 . . .T

Будем строить модель взвешенного голосования:

h(x) = sign

(T∑i=1

biai (x)

), bi ∈ R

Функция потерь

err(h) =1

N

N∑j=1

I (yj 6= h(xj))

6 / 40

Page 8: Лекция №10 "Алгоритмические композиции. Завершение"

Ключевые идеи бустинга

I Используем “слабые” модели aiI Последовательно применяем слабые модели к “слегка”

изменяемым версиям оригинальных данныхI При добавлении очередной модели ai , предыдущие i − 1

моделей не меняютсяI Аппроксимируем функцию потерь гладкой функцией

7 / 40

Page 9: Лекция №10 "Алгоритмические композиции. Завершение"

Аппроксимация пороговой функции экспонентой

Очевидно, что верно соотношение

I (y 6= a(x)) = I (y · a(x) ≤ 0) ≤ e−y ·a(x)

Тогда ошибку композиции h(x) можно оценить сверху

0 ≤ err(h) =1

N

N∑j=1

I (yj 6= h(xj)) ≤

≤ 1

N

N∑j=1

exp

(−yj

T−1∑i=1

biai (x)

)· exp(−yjbTaT (x))→ 0

8 / 40

Page 10: Лекция №10 "Алгоритмические композиции. Завершение"

AdaBoost(Freund & Shapire 1995)

1. Инициализировать веса объектов wj = 1/N, j = 1, 2, . . . ,N.2. Для всех i от 1 до T :

(a) Построить классификатор ai (x), используя веса wj

(b) Вычислить

erri =

∑Nj=1 wj I (yj 6= ai (xj))∑N

j=1 wj

(c) Вычислить

bi = log1− errierri

(d) Присвоить wj → wj · exp[bi · I (yj 6= ai (xj))], j = 1, . . . ,N.

3. h(x) = sign[∑T

i=1 biai (x)]

9 / 40

Page 11: Лекция №10 "Алгоритмические композиции. Завершение"

AdaBoost. Пример

10 / 40

Page 12: Лекция №10 "Алгоритмические композиции. Завершение"

AdaBoost. Пример

11 / 40

Page 13: Лекция №10 "Алгоритмические композиции. Завершение"

AdaBoost. Пример

12 / 40

Page 14: Лекция №10 "Алгоритмические композиции. Завершение"

AdaBoost. Пример

13 / 40

Page 15: Лекция №10 "Алгоритмические композиции. Завершение"

Почему именно аппроксимация экспонентой?

14 / 40

Page 16: Лекция №10 "Алгоритмические композиции. Завершение"

Какие базовые модели выбрать?

Теорема:

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

I Базовые модели должны обладать достаточной сложностью,чтобы обеспечить это требование.

Вопрос:

I Можно ли использовать в качестве базовых моделей линейнуюрегрессию для алгоритма AdaBoost?

15 / 40

Page 17: Лекция №10 "Алгоритмические композиции. Завершение"

Boosting decision stumps

16 / 40

Page 18: Лекция №10 "Алгоритмические композиции. Завершение"

Удивительные факты о бустинге

I не переобучается с увеличением числа итераций

17 / 40

Page 19: Лекция №10 "Алгоритмические композиции. Завершение"

Bias & variance

Оценка ожидания ошибки на некоторой точки x0

Err(x0) = Bias2 + Variance + Noise(Irreducible Error)

I Бэггинг уменьшает Variance

I Бустинг уменьшает и Variance и Bias. Причем начальныемодели отвечают за уменьшение именно Bias, а остальные зауменьшение Variance.

18 / 40

Page 20: Лекция №10 "Алгоритмические композиции. Завершение"

Применение AdaBoost

Viola–Jones object detection framework

ai (xj) =

[αi если fi (xj) > θi

βi иначе

19 / 40

Page 21: Лекция №10 "Алгоритмические композиции. Завершение"

AdaBoost. Итоги

4 Алгоритм прост4 Накладные расходы бустинга минимальны. Время построения

определяется временем построения базовых моделей4 Показывает хорошую обобщающую способность4 Имеет возможность идентификации шумовых объектов6 Жадное добавление алгоритмов приводит к неоптимальности

композиции6 Склонен к переобучению при наличии шума в данных (опять же

из-за экспоненциальной функции потерь)6 Переобучается при “малом” количестве данных

20 / 40

Page 22: Лекция №10 "Алгоритмические композиции. Завершение"

Градиентный бустинг

Модель взвешенного голосования

h(x) =T∑i=1

biai (x), x ∈ X , bi ∈ R

Ошибка композиции на обучающей выборке

err(h) =N∑j=1

L(yj ,T−1∑i=1

biai (xj) + b · a(xj))→ minb,a

I Применяем жадную стратегию добавления моделейI Как и раньше оставляем построенные алгоритмы с весами

неизменными

21 / 40

Page 23: Лекция №10 "Алгоритмические композиции. Завершение"

Градиентный бустинг

Применим метод минимизации (метод наискорейшего спуска) err(h):

Тогдаhi,j = hi−1,j − η · err ′(hi−1,j), j = 1, . . . ,N

η - шаг спуска

Основная идея:

На каждом шаге алгоритма будем искать модель ai , котораяаппроксимировала бы вектор антиградиента.

22 / 40

Page 24: Лекция №10 "Алгоритмические композиции. Завершение"

Gradient boosting algorithm

1. Инициализировать h0(x) = argminγN∑j=1

L(yj , γ)

2. Для всех i от 1 до T :(a) Для всех j = 1, 2, . . . ,N вычислить

gi,j = −[∂L(yj , h(xj))

∂h(xj)

]h=hi−1

(b) Построить базовую модель ai на ответах gi,j

ai = argminβ,a

N∑j=1

(gi,j − βa(xj))2

(c) Определить вес bi

bi = argminb

N∑j=1

L(yj , hi−1(x) + b · ai (xj))

(d) Присвоить hi (x) = hi−1(x) + bi · ai (x)3. Вернуть h(x) = hT (x)

23 / 40

Page 25: Лекция №10 "Алгоритмические композиции. Завершение"

Gradient boosting & overfitting

I Необходимо подбирать число деревьев на валидационнойвыборке

24 / 40

Page 26: Лекция №10 "Алгоритмические композиции. Завершение"

ShrinkageИдея:

I Будем делать шаг каждым алгоритмом с некоторым дисконтом

hi (x) = hi−1(x) + µ · bi · ai (x)

I Дадим гольфисту тяжелую клюшку, чтоб он не мог ударитьсильно

25 / 40

Page 27: Лекция №10 "Алгоритмические композиции. Завершение"

Stohastic gradient boosting

Stohastic gradient boosting = Gradient Boosting + Bagging

Идея:

I Для построения очередного алгоритма используются случайнаяподвыборка, полученная алгоритмом выбора без возвращения

I Выдадим гольфисту шары разной формы

Преимущества

I Уменьшается время обученияI Лучше сходится (эквивалентно методу стохастического

градиентного спуска)I Имеет более высокую обобщающую способность

26 / 40

Page 28: Лекция №10 "Алгоритмические композиции. Завершение"

Shrinkage & Subsampling

27 / 40

Page 29: Лекция №10 "Алгоритмические композиции. Завершение"

Regularization in leafsИдея:

I Не все листы имеют одинаковый вкладI “Важность” листа зависит от числа объектов в немI Дадим гольфисту палку вместо клюшки

Варианты решения:

I Ограничить минимальное число примеров в листьяхI Домножить значения в листьях на некоторую фукцию,

зависящую от количества примеров28 / 40

Page 30: Лекция №10 "Алгоритмические композиции. Завершение"

OOB & Feature Importance

29 / 40

Page 31: Лекция №10 "Алгоритмические композиции. Завершение"

Gradient boosting algorithm complexity

I Вычисление градиента O(g(N))

I Построение модели (дерева) O(ND)

I Вычисление предсказания O(N)

Построение дерева может быть эффективно распараллелено пофичам. Поэтому в целом быстро.

30 / 40

Page 32: Лекция №10 "Алгоритмические композиции. Завершение"

Gradient boosting. Итоги

I Gradient boosting - общий алгоритм бустинга. Позволяетработать с произвольными функциями потерь и пространствамиответов.

I Чаще всего применяется с деревьями решений.I Показывает наилучшее качество для задач классификации,

регресии и ранжирования.I Применять надо с регуляризацией, иначе результаты могут

получиться удручающими.

Вопрос:

I А что делать если функция не дифференцируема?

31 / 40

Page 33: Лекция №10 "Алгоритмические композиции. Завершение"

Стохастические алгоритмы и бустинг. Итоги

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

4 Стохастические методы лучше работают для короткихобучающих выборок

4 Стохастические алгоритмы можно эффективно распараллелить.Бустинг предполагает последовательное построение композиции.

4 RSM наиболее эффективен в пространствах большойразмерности

4 Для бустинга лучше строить длинные композиции из слабыхмоделей, чем короткие из сильных

Вопрос:

I А всегда ли стоит использовать деревянные модели bagging &boosting?

32 / 40

Page 34: Лекция №10 "Алгоритмические композиции. Завершение"

BagBoo & BooBag

Идея:

I Объединим стратегии бустинга и бэггинга

I Если объединять бустинг бэггингом то BagBooI Если объединять бэггинг бустингом то BooBag

33 / 40

Page 35: Лекция №10 "Алгоритмические композиции. Завершение"

Итоги

I Бустингом бэггинг не испортишь! (и наоборот)I При таком подходе реальное качество почти неограничено... все

упирается в число деревьевI К сожалению, не получается применять в больших

высоконагруженных системахI Если есть много машин, то можно оценить верхнюю границу

качества системы машинного обучения

34 / 40

Page 36: Лекция №10 "Алгоритмические композиции. Завершение"

Задача

Дано: Имеется набор данных из системы поискового антиспама.Требуется: Требуется сравнить классификаторы, основанные наалгоритмических композициях, с методом опорных векторов.

Пошаговая инструкция1. Скачать данные и запустить шаблон кода на python

http://goo.gl/ASDF7U

$ python compos.py -h$ python compos.py -tr spam.train.txt -te spam.test.txt

2. Подобрать параметры 3х алгоритмических композиций, чтобыони превосходили по качеству SVM.

3. Построить графики качества классификации, в зависимости отчисла базовых моделей.

35 / 40

Page 37: Лекция №10 "Алгоритмические композиции. Завершение"

Дз по алгоритмическим композициям:

Задание:

Реализовать один из алгоритмов машинного обучения, являющегосякомпозицией алгоритмов и применить свою реализацию на данныхиз репозитория UCI.

Имеется 12 вариантов задания:Для того, чтобы узнать свой вариант необходимо выполнитьфункцию:

def ComputeMyTaskNumber(your_name):return 1 + hash(your_name) % 12

где your_name - это ваши фамилия и имя латиницей (например’Pupkin Vasiliy’)

36 / 40

Page 38: Лекция №10 "Алгоритмические композиции. Завершение"

Варианты:

1. Реализация модельного дерева решений с линейной регрессиейв листьях

2. Реализация алгоритма Random Forest (базовый алгоритм CART)3. Реализация алгоритма AdaBoost (базовый алгоритм CART)4. Реализация алгоритма градиентного бустинга с квадратичной

функцией потерь. В качестве базового алгоритма использоватьалгоритм CART.

5. Реализация алгоритма градиентного бустинга с логистическойфуткцией потерь. В качестве базового алгоритма использоватьалгоритм CART.

6. Реализация алгоритма градиентного бустинга с квадратичнойфункцией потерь. В качестве базового алгоритма использоватьалгоритм CART с RSM.

37 / 40

Page 39: Лекция №10 "Алгоритмические композиции. Завершение"

Варианты:7. Реализация алгоритма градиентного бустинга с логистической

футкцией потерь. В качестве базового алгоритма использоватьалгоритм CART c RSM.

8. Реализация алгоритма стохастического градиентного бустинга сквадратичной функцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART.

9. Реализация алгоритма стохастического градиентного бустинга слогистической футкцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART.

10. Реализация алгоритма стохастического градиентного бустинга сквадратичной функцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART с RSM.

11. Реализация алгоритма стохастического градиентного бустинга слогистической футкцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART c RSM.

12. Реализация алгоритма BagBoo. В качестве базового алгоритмаиспользовать алгоритм градиентного бустинга с функциейпотерь (регрессия).

38 / 40

Page 40: Лекция №10 "Алгоритмические композиции. Завершение"

Данные UCI:

Для вариантов 1, 2, 4, 6, 8, 10, 12 следует использовать тестовыедатасеты:

I https://archive.ics.uci.edu/ml/datasets/HousingI https://archive.ics.uci.edu/ml/datasets/Auto+MPGI https:

//archive.ics.uci.edu/ml/datasets/Computer+Hardware

Для вариантов 3, 5, 7, 9, 11 следует использовать тестовыедатасеты:

I https://archive.ics.uci.edu/ml/datasets/WineI https://archive.ics.uci.edu/ml/datasets/IrisI https:

//archive.ics.uci.edu/ml/datasets/Liver+Disorders

39 / 40

Page 41: Лекция №10 "Алгоритмические композиции. Завершение"

Вопросы