SlideShare a Scribd company logo
Лекция 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
bi ai (x), bi ∈ R
Mixture of Experts
h(x) =
1
T
T
i=1
bi (x)ai (x), bi (x) : X → R
3 / 40
Идея бустинга
Снова выбираем ноутбук
Вместо того, чтобы спрашивать у всех экспертов, какой ноутбук
выбрать, будем после каждого очередного мнения менять наш
вопрос.
Более реалистичная модель
Уточняем наш вопрос в зависимости от ответов предыдущих
экспертов
4 / 40
Boosting vs Bagging
Стрельба в тире Игра в гольф
5 / 40
Бустинг для задачи бинарной классификации
Пусть
Y = −1, +1, ai : X → {−1, 0, +1}, i = 1 . . . T
Будем строить модель взвешенного голосования:
h(x) = sign
T
i=1
bi ai (x) , bi ∈ R
Функция потерь
err(h) =
1
N
N
j=1
I(yj = h(xj ))
6 / 40
Ключевые идеи бустинга
Используем “слабые” модели ai
Последовательно применяем слабые модели к “слегка”
изменяемым версиям оригинальных данных
При добавлении очередной модели ai , предыдущие i − 1
моделей не меняются
Аппроксимируем функцию потерь гладкой функцией
7 / 40
Аппроксимация пороговой функции экспонентой
Очевидно, что верно соотношение
I(y = a(x)) = I(y · a(x) ≤ 0) ≤ e−y·a(x)
Тогда ошибку композиции h(x) можно оценить сверху
0 ≤ err(h) =
1
N
N
j=1
I(yj = h(xj )) ≤
≤
1
N
N
j=1
exp −yj
T−1
i=1
bi ai (x) · exp(−yj bT aT (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 =
N
j=1 wj I(yj = ai (xj ))
N
j=1 wj
(c) Вычислить
bi = log
1 − erri
erri
(d) Присвоить wj → wj · exp[bi · I(yj = ai (xj ))], j = 1, . . . , N.
3. h(x) = sign
T
i=1 bi ai (x)
9 / 40
AdaBoost. Пример
10 / 40
AdaBoost. Пример
11 / 40
AdaBoost. Пример
12 / 40
AdaBoost. Пример
13 / 40
Почему именно аппроксимация экспонентой?
14 / 40
Какие базовые модели выбрать?
Теорема:
Если на каждой итерации метод обучения позволяет построить
базовую модель, такую что число верных классификаций больше,
чем число неверных. Тогда метод обучения сходится за конечное
число шагов.
Базовые модели должны обладать достаточной сложностью,
чтобы обеспечить это требование.
Вопрос:
Можно ли использовать в качестве базовых моделей линейную
регрессию для алгоритма AdaBoost?
15 / 40
Boosting decision stumps
16 / 40
Удивительные факты о бустинге
не переобучается с увеличением числа итераций
17 / 40
Bias & variance
Оценка ожидания ошибки на некоторой точки x0
Err(x0) = Bias2
+ Variance + Noise(Irreducible Error)
Бэггинг уменьшает Variance
Бустинг уменьшает и Variance и Bias. Причем начальные
модели отвечают за уменьшение именно Bias, а остальные за
уменьшение Variance.
18 / 40
Применение AdaBoost
Viola–Jones object detection framework
ai (xj ) =
αi если fi (xj ) > θi
βi иначе
19 / 40
AdaBoost. Итоги
 Алгоритм прост
 Накладные расходы бустинга минимальны. Время построения
определяется временем построения базовых моделей
 Показывает хорошую обобщающую способность
 Имеет возможность идентификации шумовых объектов
 Жадное добавление алгоритмов приводит к неоптимальности
композиции
 Склонен к переобучению при наличии шума в данных (опять же
из-за экспоненциальной функции потерь)
 Переобучается при “малом” количестве данных
20 / 40
Градиентный бустинг
Модель взвешенного голосования
h(x) =
T
i=1
bi ai (x), x ∈ X, bi ∈ R
Ошибка композиции на обучающей выборке
err(h) =
N
j=1
L(yj ,
T−1
i=1
bi ai (xj ) + b · a(xj )) → min
b,a
Применяем жадную стратегию добавления моделей
Как и раньше оставляем построенные алгоритмы с весами
неизменными
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 = arg min
β,a
N
j=1
(gi,j − βa(xj ))2
(c) Определить вес bi
bi = arg min
b
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
Необходимо подбирать число деревьев на валидационной
выборке
24 / 40
Shrinkage
Идея:
Будем делать шаг каждым алгоритмом с некоторым дисконтом
hi (x) = hi−1(x) + µ · bi · ai (x)
Дадим гольфисту тяжелую клюшку, чтоб он не мог ударить
сильно
25 / 40
Stohastic gradient boosting
Stohastic gradient boosting = Gradient Boosting + Bagging
Идея:
Для построения очередного алгоритма используются случайная
подвыборка, полученная алгоритмом выбора без возвращения
Выдадим гольфисту шары разной формы
Преимущества
Уменьшается время обучения
Лучше сходится (эквивалентно методу стохастического
градиентного спуска)
Имеет более высокую обобщающую способность
26 / 40
Shrinkage  Subsampling
27 / 40
Regularization in leafs
Идея:
Не все листы имеют одинаковый вклад
“Важность” листа зависит от числа объектов в нем
Дадим гольфисту палку вместо клюшки
Варианты решения:
Ограничить минимальное число примеров в листьях
Домножить значения в листьях на некоторую фукцию,
зависящую от количества примеров
28 / 40
OOB  Feature Importance
29 / 40
Gradient boosting algorithm complexity
Вычисление градиента O(g(N))
Построение модели (дерева) O(ND)
Вычисление предсказания O(N)
Построение дерева может быть эффективно распараллелено по
фичам. Поэтому в целом быстро.
30 / 40
Gradient boosting. Итоги
Gradient boosting - общий алгоритм бустинга. Позволяет
работать с произвольными функциями потерь и пространствами
ответов.
Чаще всего применяется с деревьями решений.
Показывает наилучшее качество для задач классификации,
регресии и ранжирования.
Применять надо с регуляризацией, иначе результаты могут
получиться удручающими.
Вопрос:
А что делать если функция не дифференцируема?
31 / 40
Стохастические алгоритмы и бустинг. Итоги
 Бустинг лучше работает для больших обучающих выборок в
ситуациях когда в данных имеются сложные зависимости.
 Стохастические методы лучше работают для коротких
обучающих выборок
 Стохастические алгоритмы можно эффективно распараллелить.
Бустинг предполагает последовательное построение композиции.
 RSM наиболее эффективен в пространствах большой
размерности
 Для бустинга лучше строить длинные композиции из слабых
моделей, чем короткие из сильных
Вопрос:
А всегда ли стоит использовать деревянные модели bagging 
boosting?
32 / 40
BagBoo  BooBag
Идея:
Объединим стратегии бустинга и бэггинга
Если объединять бустинг бэггингом то BagBoo
Если объединять бэггинг бустингом то BooBag
33 / 40
Итоги
Бустингом бэггинг не испортишь! (и наоборот)
При таком подходе реальное качество почти неограничено... все
упирается в число деревьев
К сожалению, не получается применять в больших
высоконагруженных системах
Если есть много машин, то можно оценить верхнюю границу
качества системы машинного обучения
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 следует использовать тестовые
датасеты:
https://archive.ics.uci.edu/ml/datasets/Housing
https://archive.ics.uci.edu/ml/datasets/Auto+MPG
https:
//archive.ics.uci.edu/ml/datasets/Computer+Hardware
Для вариантов 3, 5, 7, 9, 11 следует использовать тестовые
датасеты:
https://archive.ics.uci.edu/ml/datasets/Wine
https://archive.ics.uci.edu/ml/datasets/Iris
https:
//archive.ics.uci.edu/ml/datasets/Liver+Disorders
39 / 40
Вопросы

More Related Content

What's hot (20)

PDF
Лекция №6 "Линейные модели для классификации и регрессии"
Technosphere1
 
PDF
L11: Метод ансамблей
Technosphere1
 
PDF
Лекция №3 "Различные алгоритмы кластеризации"
Technosphere1
 
PDF
L6: Метод опорных векторов
Technosphere1
 
PDF
L5: Л5 Байесовские алгоритмы
Technosphere1
 
PDF
L3: Линейная и логистическая регрессия
Technosphere1
 
PDF
L7:Задача кластеризации. Метрики качества
Technosphere1
 
PDF
Лекция №1 "Задачи Data Mining"
Technosphere1
 
PDF
L10: Алгоритмы кластеризации
Technosphere1
 
PDF
Решение краевых задач методом конечных элементов
Theoretical mechanics department
 
PDF
Многочлены наилучших среднеквадратичных приближений
Theoretical mechanics department
 
PDF
Метод конечных разностей
Theoretical mechanics department
 
PDF
Основы MATLAB. Численные методы
Theoretical mechanics department
 
PDF
Лекция №11 "Основы нейронных сетей"
Technosphere1
 
PDF
Структурное обучение и S-SVM
romovpa
 
PDF
Лекция №13 "Глубокие нейронные сети"
Technosphere1
 
PDF
20110925 circuit complexity_seminar_lecture01_kulikov
Computer Science Club
 
PDF
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Mikhail Kurnosov
 
PDF
Лекция 11. Методы разработки алгоритмов
Mikhail Kurnosov
 
PDF
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Nikolay Grebenshikov
 
Лекция №6 "Линейные модели для классификации и регрессии"
Technosphere1
 
L11: Метод ансамблей
Technosphere1
 
Лекция №3 "Различные алгоритмы кластеризации"
Technosphere1
 
L6: Метод опорных векторов
Technosphere1
 
L5: Л5 Байесовские алгоритмы
Technosphere1
 
L3: Линейная и логистическая регрессия
Technosphere1
 
L7:Задача кластеризации. Метрики качества
Technosphere1
 
Лекция №1 "Задачи Data Mining"
Technosphere1
 
L10: Алгоритмы кластеризации
Technosphere1
 
Решение краевых задач методом конечных элементов
Theoretical mechanics department
 
Многочлены наилучших среднеквадратичных приближений
Theoretical mechanics department
 
Метод конечных разностей
Theoretical mechanics department
 
Основы MATLAB. Численные методы
Theoretical mechanics department
 
Лекция №11 "Основы нейронных сетей"
Technosphere1
 
Структурное обучение и S-SVM
romovpa
 
Лекция №13 "Глубокие нейронные сети"
Technosphere1
 
20110925 circuit complexity_seminar_lecture01_kulikov
Computer Science Club
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Mikhail Kurnosov
 
Лекция 11. Методы разработки алгоритмов
Mikhail Kurnosov
 
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Nikolay Grebenshikov
 

Viewers also liked (17)

PDF
Перечитывая Лео Бреймана
Serge Terekhov
 
PPTX
Нейрокомпьютеры и нейросети
refasw
 
PPT
Нейрокомпьютеры
TemniFV
 
PPT
FaceDetection+GenderRecognition_review
Khryashchev
 
PPT
Marta_Egorova
Khryashchev
 
ODP
JetPoint meeting @JetBrains on bioinformatics
olegshpynov
 
PDF
20120415 videorecognition konushin_lecture05
Computer Science Club
 
PDF
Реализация метода автоматического разрешения лексической многозначности
Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ
 
PDF
Mail.ru on Big Data Russia
rusbase.vc
 
PDF
L13: Заключительная
Technosphere1
 
PDF
Supervised ML in Practice: Tips & Tricks
Dzianis Pirshtuk
 
PPTX
Локализация лиц с помощью детектора Виолы-Джонс
Artyom Shklovets
 
PPTX
Интегрировать сторонний продукт или пилить самим? К вопросу о выборе системы ...
WG_ Events
 
PPT
Петрова Ксения - Data mining на практике - dmlabs.org
WG_ Events
 
PDF
Webdev7 (2)
Technosphere1
 
PPTX
Оценка потенциала игрового продукта по косвенным признакам / Борис Cиницкий д...
WG_ Events
 
Перечитывая Лео Бреймана
Serge Terekhov
 
Нейрокомпьютеры и нейросети
refasw
 
Нейрокомпьютеры
TemniFV
 
FaceDetection+GenderRecognition_review
Khryashchev
 
Marta_Egorova
Khryashchev
 
JetPoint meeting @JetBrains on bioinformatics
olegshpynov
 
20120415 videorecognition konushin_lecture05
Computer Science Club
 
Реализация метода автоматического разрешения лексической многозначности
Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ
 
Mail.ru on Big Data Russia
rusbase.vc
 
L13: Заключительная
Technosphere1
 
Supervised ML in Practice: Tips & Tricks
Dzianis Pirshtuk
 
Локализация лиц с помощью детектора Виолы-Джонс
Artyom Shklovets
 
Интегрировать сторонний продукт или пилить самим? К вопросу о выборе системы ...
WG_ Events
 
Петрова Ксения - Data mining на практике - dmlabs.org
WG_ Events
 
Webdev7 (2)
Technosphere1
 
Оценка потенциала игрового продукта по косвенным признакам / Борис Cиницкий д...
WG_ Events
 
Ad

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

PPT
чернякова г.в.
sharikdp
 
PDF
ITMO RecSys course. Autumn 2014. Lecture 3
Andrey Danilchenko
 
PDF
20071111 efficientalgorithms kulikov_lecture06
Computer Science Club
 
PDF
Лекция 11: Методы разработки алгоритмов
Mikhail Kurnosov
 
PDF
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
 
PPT
Лекция 12 Теоретико-числовые алгоритмы Часть 1
simple_people
 
PDF
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Mikhail Kurnosov
 
PDF
Haskell Type System with Dzmitry Ivashnev.
Sergey Tihon
 
PPT
Лекция 11 Приближенные алгоритмы
simple_people
 
PDF
lab1 math computational
dinhtruonglam1
 
PPT
Разложение на множители
School 242
 
PDF
ИТМО Machine Learning. Рекомендательные системы — часть 2
Andrey Danilchenko
 
PDF
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
Mail.ru Group
 
PPT
презентация к уроку 3
Елена Маленкова
 
PDF
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Nikolay Grebenshikov
 
PPT
19 pascal urok_3
Ann Eres
 
PPT
лекция 8
student_kai
 
PDF
Лекция 12. Быстрее, Python, ещё быстрее.
Roman Brovko
 
PDF
Основы SciPy
Theoretical mechanics department
 
PDF
20100930 proof complexity_hirsch_lecture03
Computer Science Club
 
чернякова г.в.
sharikdp
 
ITMO RecSys course. Autumn 2014. Lecture 3
Andrey Danilchenko
 
20071111 efficientalgorithms kulikov_lecture06
Computer Science Club
 
Лекция 11: Методы разработки алгоритмов
Mikhail Kurnosov
 
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
simple_people
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Mikhail Kurnosov
 
Haskell Type System with Dzmitry Ivashnev.
Sergey Tihon
 
Лекция 11 Приближенные алгоритмы
simple_people
 
lab1 math computational
dinhtruonglam1
 
Разложение на множители
School 242
 
ИТМО Machine Learning. Рекомендательные системы — часть 2
Andrey Danilchenko
 
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
Mail.ru Group
 
презентация к уроку 3
Елена Маленкова
 
Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Nikolay Grebenshikov
 
19 pascal urok_3
Ann Eres
 
лекция 8
student_kai
 
Лекция 12. Быстрее, Python, ещё быстрее.
Roman Brovko
 
20100930 proof complexity_hirsch_lecture03
Computer Science Club
 
Ad

More from Technosphere1 (9)

PDF
Л9: Взаимодействие веб-приложений
Technosphere1
 
PDF
Л8 Django. Дополнительные темы
Technosphere1
 
PDF
Мастер-класс: Особенности создания продукта для мобильного веб
Technosphere1
 
PDF
Web лекция 1
Technosphere1
 
PDF
Мастер-класс: "Интеграция в промышленную разработку"
Technosphere1
 
PDF
Webdev7: Обработка HTTP запросов. Django Views
Technosphere1
 
PDF
L8: Л7 Em-алгоритм
Technosphere1
 
PDF
L4: Решающие деревья
Technosphere1
 
PDF
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
Technosphere1
 
Л9: Взаимодействие веб-приложений
Technosphere1
 
Л8 Django. Дополнительные темы
Technosphere1
 
Мастер-класс: Особенности создания продукта для мобильного веб
Technosphere1
 
Web лекция 1
Technosphere1
 
Мастер-класс: "Интеграция в промышленную разработку"
Technosphere1
 
Webdev7: Обработка HTTP запросов. Django Views
Technosphere1
 
L8: Л7 Em-алгоритм
Technosphere1
 
L4: Решающие деревья
Technosphere1
 
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
Technosphere1
 

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

  • 1. Лекция 10 Алгоритмические композиции Кульминация и развязка Владимир Гулин 26 ноября 2014 г.
  • 3. Задача обучения с учителем Постановка задачи Пусть дан набор объектов 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
  • 4. Алгоритмические композиции Simple Voting h(x) = 1 T T i=1 ai (x) Weighted Voting h(x) = 1 T T i=1 bi ai (x), bi ∈ R Mixture of Experts h(x) = 1 T T i=1 bi (x)ai (x), bi (x) : X → R 3 / 40
  • 5. Идея бустинга Снова выбираем ноутбук Вместо того, чтобы спрашивать у всех экспертов, какой ноутбук выбрать, будем после каждого очередного мнения менять наш вопрос. Более реалистичная модель Уточняем наш вопрос в зависимости от ответов предыдущих экспертов 4 / 40
  • 6. Boosting vs Bagging Стрельба в тире Игра в гольф 5 / 40
  • 7. Бустинг для задачи бинарной классификации Пусть Y = −1, +1, ai : X → {−1, 0, +1}, i = 1 . . . T Будем строить модель взвешенного голосования: h(x) = sign T i=1 bi ai (x) , bi ∈ R Функция потерь err(h) = 1 N N j=1 I(yj = h(xj )) 6 / 40
  • 8. Ключевые идеи бустинга Используем “слабые” модели ai Последовательно применяем слабые модели к “слегка” изменяемым версиям оригинальных данных При добавлении очередной модели ai , предыдущие i − 1 моделей не меняются Аппроксимируем функцию потерь гладкой функцией 7 / 40
  • 9. Аппроксимация пороговой функции экспонентой Очевидно, что верно соотношение I(y = a(x)) = I(y · a(x) ≤ 0) ≤ e−y·a(x) Тогда ошибку композиции h(x) можно оценить сверху 0 ≤ err(h) = 1 N N j=1 I(yj = h(xj )) ≤ ≤ 1 N N j=1 exp −yj T−1 i=1 bi ai (x) · exp(−yj bT aT (x)) → 0 8 / 40
  • 10. AdaBoost(Freund & Shapire 1995) 1. Инициализировать веса объектов wj = 1/N, j = 1, 2, . . . , N. 2. Для всех i от 1 до T: (a) Построить классификатор ai (x), используя веса wj (b) Вычислить erri = N j=1 wj I(yj = ai (xj )) N j=1 wj (c) Вычислить bi = log 1 − erri erri (d) Присвоить wj → wj · exp[bi · I(yj = ai (xj ))], j = 1, . . . , N. 3. h(x) = sign T i=1 bi ai (x) 9 / 40
  • 15. Почему именно аппроксимация экспонентой? 14 / 40
  • 16. Какие базовые модели выбрать? Теорема: Если на каждой итерации метод обучения позволяет построить базовую модель, такую что число верных классификаций больше, чем число неверных. Тогда метод обучения сходится за конечное число шагов. Базовые модели должны обладать достаточной сложностью, чтобы обеспечить это требование. Вопрос: Можно ли использовать в качестве базовых моделей линейную регрессию для алгоритма AdaBoost? 15 / 40
  • 18. Удивительные факты о бустинге не переобучается с увеличением числа итераций 17 / 40
  • 19. Bias & variance Оценка ожидания ошибки на некоторой точки x0 Err(x0) = Bias2 + Variance + Noise(Irreducible Error) Бэггинг уменьшает Variance Бустинг уменьшает и Variance и Bias. Причем начальные модели отвечают за уменьшение именно Bias, а остальные за уменьшение Variance. 18 / 40
  • 20. Применение AdaBoost Viola–Jones object detection framework ai (xj ) = αi если fi (xj ) > θi βi иначе 19 / 40
  • 21. AdaBoost. Итоги Алгоритм прост Накладные расходы бустинга минимальны. Время построения определяется временем построения базовых моделей Показывает хорошую обобщающую способность Имеет возможность идентификации шумовых объектов Жадное добавление алгоритмов приводит к неоптимальности композиции Склонен к переобучению при наличии шума в данных (опять же из-за экспоненциальной функции потерь) Переобучается при “малом” количестве данных 20 / 40
  • 22. Градиентный бустинг Модель взвешенного голосования h(x) = T i=1 bi ai (x), x ∈ X, bi ∈ R Ошибка композиции на обучающей выборке err(h) = N j=1 L(yj , T−1 i=1 bi ai (xj ) + b · a(xj )) → min b,a Применяем жадную стратегию добавления моделей Как и раньше оставляем построенные алгоритмы с весами неизменными 21 / 40
  • 23. Градиентный бустинг Применим метод минимизации (метод наискорейшего спуска) err(h): Тогда hi,j = hi−1,j − η · err (hi−1,j ), j = 1, . . . , N η - шаг спуска Основная идея: На каждом шаге алгоритма будем искать модель ai , которая аппроксимировала бы вектор антиградиента. 22 / 40
  • 24. 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 = arg min β,a N j=1 (gi,j − βa(xj ))2 (c) Определить вес bi bi = arg min b 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
  • 25. Gradient boosting overfitting Необходимо подбирать число деревьев на валидационной выборке 24 / 40
  • 26. Shrinkage Идея: Будем делать шаг каждым алгоритмом с некоторым дисконтом hi (x) = hi−1(x) + µ · bi · ai (x) Дадим гольфисту тяжелую клюшку, чтоб он не мог ударить сильно 25 / 40
  • 27. Stohastic gradient boosting Stohastic gradient boosting = Gradient Boosting + Bagging Идея: Для построения очередного алгоритма используются случайная подвыборка, полученная алгоритмом выбора без возвращения Выдадим гольфисту шары разной формы Преимущества Уменьшается время обучения Лучше сходится (эквивалентно методу стохастического градиентного спуска) Имеет более высокую обобщающую способность 26 / 40
  • 29. Regularization in leafs Идея: Не все листы имеют одинаковый вклад “Важность” листа зависит от числа объектов в нем Дадим гольфисту палку вместо клюшки Варианты решения: Ограничить минимальное число примеров в листьях Домножить значения в листьях на некоторую фукцию, зависящую от количества примеров 28 / 40
  • 30. OOB Feature Importance 29 / 40
  • 31. Gradient boosting algorithm complexity Вычисление градиента O(g(N)) Построение модели (дерева) O(ND) Вычисление предсказания O(N) Построение дерева может быть эффективно распараллелено по фичам. Поэтому в целом быстро. 30 / 40
  • 32. Gradient boosting. Итоги Gradient boosting - общий алгоритм бустинга. Позволяет работать с произвольными функциями потерь и пространствами ответов. Чаще всего применяется с деревьями решений. Показывает наилучшее качество для задач классификации, регресии и ранжирования. Применять надо с регуляризацией, иначе результаты могут получиться удручающими. Вопрос: А что делать если функция не дифференцируема? 31 / 40
  • 33. Стохастические алгоритмы и бустинг. Итоги Бустинг лучше работает для больших обучающих выборок в ситуациях когда в данных имеются сложные зависимости. Стохастические методы лучше работают для коротких обучающих выборок Стохастические алгоритмы можно эффективно распараллелить. Бустинг предполагает последовательное построение композиции. RSM наиболее эффективен в пространствах большой размерности Для бустинга лучше строить длинные композиции из слабых моделей, чем короткие из сильных Вопрос: А всегда ли стоит использовать деревянные модели bagging boosting? 32 / 40
  • 34. BagBoo BooBag Идея: Объединим стратегии бустинга и бэггинга Если объединять бустинг бэггингом то BagBoo Если объединять бэггинг бустингом то BooBag 33 / 40
  • 35. Итоги Бустингом бэггинг не испортишь! (и наоборот) При таком подходе реальное качество почти неограничено... все упирается в число деревьев К сожалению, не получается применять в больших высоконагруженных системах Если есть много машин, то можно оценить верхнюю границу качества системы машинного обучения 34 / 40
  • 36. Задача Дано: Имеется набор данных из системы поискового антиспама. Требуется: Требуется сравнить классификаторы, основанные на алгоритмических композициях, с методом опорных векторов. Пошаговая инструкция 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
  • 37. Дз по алгоритмическим композициям: Задание: Реализовать один из алгоритмов машинного обучения, являющегося композицией алгоритмов и применить свою реализацию на данных из репозитория UCI. Имеется 12 вариантов задания: Для того, чтобы узнать свой вариант необходимо выполнить функцию: def ComputeMyTaskNumber(your_name): return 1 + hash(your_name) % 12 где your_name - это ваши фамилия и имя латиницей (например ’Pupkin Vasiliy’) 36 / 40
  • 38. Варианты: 1. Реализация модельного дерева решений с линейной регрессией в листьях 2. Реализация алгоритма Random Forest (базовый алгоритм CART) 3. Реализация алгоритма AdaBoost (базовый алгоритм CART) 4. Реализация алгоритма градиентного бустинга с квадратичной функцией потерь. В качестве базового алгоритма использовать алгоритм CART. 5. Реализация алгоритма градиентного бустинга с логистической футкцией потерь. В качестве базового алгоритма использовать алгоритм CART. 6. Реализация алгоритма градиентного бустинга с квадратичной функцией потерь. В качестве базового алгоритма использовать алгоритм CART с RSM. 37 / 40
  • 39. Варианты: 7. Реализация алгоритма градиентного бустинга с логистической футкцией потерь. В качестве базового алгоритма использовать алгоритм CART c RSM. 8. Реализация алгоритма стохастического градиентного бустинга с квадратичной функцией потерь. В качестве базового алгоритма использовать алгоритм CART. 9. Реализация алгоритма стохастического градиентного бустинга с логистической футкцией потерь. В качестве базового алгоритма использовать алгоритм CART. 10. Реализация алгоритма стохастического градиентного бустинга с квадратичной функцией потерь. В качестве базового алгоритма использовать алгоритм CART с RSM. 11. Реализация алгоритма стохастического градиентного бустинга с логистической футкцией потерь. В качестве базового алгоритма использовать алгоритм CART c RSM. 12. Реализация алгоритма BagBoo. В качестве базового алгоритма использовать алгоритм градиентного бустинга с функцией потерь (регрессия). 38 / 40
  • 40. Данные UCI: Для вариантов 1, 2, 4, 6, 8, 10, 12 следует использовать тестовые датасеты: https://archive.ics.uci.edu/ml/datasets/Housing https://archive.ics.uci.edu/ml/datasets/Auto+MPG https: //archive.ics.uci.edu/ml/datasets/Computer+Hardware Для вариантов 3, 5, 7, 9, 11 следует использовать тестовые датасеты: https://archive.ics.uci.edu/ml/datasets/Wine https://archive.ics.uci.edu/ml/datasets/Iris https: //archive.ics.uci.edu/ml/datasets/Liver+Disorders 39 / 40