Upload
technosphere1
View
124
Download
4
Embed Size (px)
Citation preview
Лекция 10Алгоритмические композиции
Кульминация и развязка
Владимир Гулин
26 ноября 2014 г.
План лекции
Напоминание
Бустинг
Градиентный бустинг
Мета-алгоритмы
1 / 40
Задача обучения с учителем
Постановка задачи
Пусть дан набор объектов 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
Алгоритмические композиции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
Идея бустинга
Снова выбираем ноутбук
Вместо того, чтобы спрашивать у всех экспертов, какой ноутбуквыбрать, будем после каждого очередного мнения менять нашвопрос.
I Более реалистичная модельI Уточняем наш вопрос в зависимости от ответов предыдущих
экспертов
4 / 40
Boosting vs Bagging
Стрельба в тире Игра в гольф
5 / 40
Бустинг для задачи бинарной классификации
Пусть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
Ключевые идеи бустинга
I Используем “слабые” модели aiI Последовательно применяем слабые модели к “слегка”
изменяемым версиям оригинальных данныхI При добавлении очередной модели ai , предыдущие i − 1
моделей не меняютсяI Аппроксимируем функцию потерь гладкой функцией
7 / 40
Аппроксимация пороговой функции экспонентой
Очевидно, что верно соотношение
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
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
AdaBoost. Пример
10 / 40
AdaBoost. Пример
11 / 40
AdaBoost. Пример
12 / 40
AdaBoost. Пример
13 / 40
Почему именно аппроксимация экспонентой?
14 / 40
Какие базовые модели выбрать?
Теорема:
Если на каждой итерации метод обучения позволяет построитьбазовую модель, такую что число верных классификаций больше,чем число неверных. Тогда метод обучения сходится за конечноечисло шагов.
I Базовые модели должны обладать достаточной сложностью,чтобы обеспечить это требование.
Вопрос:
I Можно ли использовать в качестве базовых моделей линейнуюрегрессию для алгоритма AdaBoost?
15 / 40
Boosting decision stumps
16 / 40
Удивительные факты о бустинге
I не переобучается с увеличением числа итераций
17 / 40
Bias & variance
Оценка ожидания ошибки на некоторой точки x0
Err(x0) = Bias2 + Variance + Noise(Irreducible Error)
I Бэггинг уменьшает Variance
I Бустинг уменьшает и Variance и Bias. Причем начальныемодели отвечают за уменьшение именно Bias, а остальные зауменьшение Variance.
18 / 40
Применение AdaBoost
Viola–Jones object detection framework
ai (xj) =
[αi если fi (xj) > θi
βi иначе
19 / 40
AdaBoost. Итоги
4 Алгоритм прост4 Накладные расходы бустинга минимальны. Время построения
определяется временем построения базовых моделей4 Показывает хорошую обобщающую способность4 Имеет возможность идентификации шумовых объектов6 Жадное добавление алгоритмов приводит к неоптимальности
композиции6 Склонен к переобучению при наличии шума в данных (опять же
из-за экспоненциальной функции потерь)6 Переобучается при “малом” количестве данных
20 / 40
Градиентный бустинг
Модель взвешенного голосования
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
Градиентный бустинг
Применим метод минимизации (метод наискорейшего спуска) err(h):
Тогдаhi,j = hi−1,j − η · err ′(hi−1,j), j = 1, . . . ,N
η - шаг спуска
Основная идея:
На каждом шаге алгоритма будем искать модель ai , котораяаппроксимировала бы вектор антиградиента.
22 / 40
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
Gradient boosting & overfitting
I Необходимо подбирать число деревьев на валидационнойвыборке
24 / 40
ShrinkageИдея:
I Будем делать шаг каждым алгоритмом с некоторым дисконтом
hi (x) = hi−1(x) + µ · bi · ai (x)
I Дадим гольфисту тяжелую клюшку, чтоб он не мог ударитьсильно
25 / 40
Stohastic gradient boosting
Stohastic gradient boosting = Gradient Boosting + Bagging
Идея:
I Для построения очередного алгоритма используются случайнаяподвыборка, полученная алгоритмом выбора без возвращения
I Выдадим гольфисту шары разной формы
Преимущества
I Уменьшается время обученияI Лучше сходится (эквивалентно методу стохастического
градиентного спуска)I Имеет более высокую обобщающую способность
26 / 40
Shrinkage & Subsampling
27 / 40
Regularization in leafsИдея:
I Не все листы имеют одинаковый вкладI “Важность” листа зависит от числа объектов в немI Дадим гольфисту палку вместо клюшки
Варианты решения:
I Ограничить минимальное число примеров в листьяхI Домножить значения в листьях на некоторую фукцию,
зависящую от количества примеров28 / 40
OOB & Feature Importance
29 / 40
Gradient boosting algorithm complexity
I Вычисление градиента O(g(N))
I Построение модели (дерева) O(ND)
I Вычисление предсказания O(N)
Построение дерева может быть эффективно распараллелено пофичам. Поэтому в целом быстро.
30 / 40
Gradient boosting. Итоги
I Gradient boosting - общий алгоритм бустинга. Позволяетработать с произвольными функциями потерь и пространствамиответов.
I Чаще всего применяется с деревьями решений.I Показывает наилучшее качество для задач классификации,
регресии и ранжирования.I Применять надо с регуляризацией, иначе результаты могут
получиться удручающими.
Вопрос:
I А что делать если функция не дифференцируема?
31 / 40
Стохастические алгоритмы и бустинг. Итоги
4 Бустинг лучше работает для больших обучающих выборок вситуациях когда в данных имеются сложные зависимости.
4 Стохастические методы лучше работают для короткихобучающих выборок
4 Стохастические алгоритмы можно эффективно распараллелить.Бустинг предполагает последовательное построение композиции.
4 RSM наиболее эффективен в пространствах большойразмерности
4 Для бустинга лучше строить длинные композиции из слабыхмоделей, чем короткие из сильных
Вопрос:
I А всегда ли стоит использовать деревянные модели bagging &boosting?
32 / 40
BagBoo & BooBag
Идея:
I Объединим стратегии бустинга и бэггинга
I Если объединять бустинг бэггингом то BagBooI Если объединять бэггинг бустингом то BooBag
33 / 40
Итоги
I Бустингом бэггинг не испортишь! (и наоборот)I При таком подходе реальное качество почти неограничено... все
упирается в число деревьевI К сожалению, не получается применять в больших
высоконагруженных системахI Если есть много машин, то можно оценить верхнюю границу
качества системы машинного обучения
34 / 40
Задача
Дано: Имеется набор данных из системы поискового антиспама.Требуется: Требуется сравнить классификаторы, основанные наалгоритмических композициях, с методом опорных векторов.
Пошаговая инструкция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
Дз по алгоритмическим композициям:
Задание:
Реализовать один из алгоритмов машинного обучения, являющегосякомпозицией алгоритмов и применить свою реализацию на данныхиз репозитория UCI.
Имеется 12 вариантов задания:Для того, чтобы узнать свой вариант необходимо выполнитьфункцию:
def ComputeMyTaskNumber(your_name):return 1 + hash(your_name) % 12
где your_name - это ваши фамилия и имя латиницей (например’Pupkin Vasiliy’)
36 / 40
Варианты:
1. Реализация модельного дерева решений с линейной регрессиейв листьях
2. Реализация алгоритма Random Forest (базовый алгоритм CART)3. Реализация алгоритма AdaBoost (базовый алгоритм CART)4. Реализация алгоритма градиентного бустинга с квадратичной
функцией потерь. В качестве базового алгоритма использоватьалгоритм CART.
5. Реализация алгоритма градиентного бустинга с логистическойфуткцией потерь. В качестве базового алгоритма использоватьалгоритм CART.
6. Реализация алгоритма градиентного бустинга с квадратичнойфункцией потерь. В качестве базового алгоритма использоватьалгоритм CART с RSM.
37 / 40
Варианты:7. Реализация алгоритма градиентного бустинга с логистической
футкцией потерь. В качестве базового алгоритма использоватьалгоритм CART c RSM.
8. Реализация алгоритма стохастического градиентного бустинга сквадратичной функцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART.
9. Реализация алгоритма стохастического градиентного бустинга слогистической футкцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART.
10. Реализация алгоритма стохастического градиентного бустинга сквадратичной функцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART с RSM.
11. Реализация алгоритма стохастического градиентного бустинга слогистической футкцией потерь. В качестве базового алгоритмаиспользовать алгоритм CART c RSM.
12. Реализация алгоритма BagBoo. В качестве базового алгоритмаиспользовать алгоритм градиентного бустинга с функциейпотерь (регрессия).
38 / 40
Данные 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
Вопросы