Лекция №9 "Алгоритмические композиции. Начало"

36
Лекция 9 Алгоритмические композиции Начало Владимир Гулин 19 ноября 2014 г.

Upload: technosphere1

Post on 18-Jul-2015

101 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Лекция №9 "Алгоритмические композиции. Начало"

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

Начало

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

19 ноября 2014 г.

Page 2: Лекция №9 "Алгоритмические композиции. Начало"

План лекции

Мотивация

Обзор методов построения алгоритмических композиций

Стохастические методы построения алгоритмических композиций

Random Forest

1 / 35

Page 3: Лекция №9 "Алгоритмические композиции. Начало"

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

Параметры ноутбукаI КаменьI ПамятьI ВидеокартаI Диагональ монитораI и т.д

Воспользуемся экспертным мнениемI Консультант в магазинеI Сосед “программист”I ДрузьяI Форумы

2 / 35

Page 4: Лекция №9 "Алгоритмические композиции. Начало"

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

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

Пусть дан набор объектов 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 - решающее правило

3 / 35

Page 5: Лекция №9 "Алгоритмические композиции. Начало"

Простое голосование

Simple Voting

h(x) =1

T

T∑i=1

ai (x)

4 / 35

Page 6: Лекция №9 "Алгоритмические композиции. Начало"

Взвешенное голосование

Weighted Voting

h(x) =1

T

T∑i=1

biai (x), bi ∈ R

5 / 35

Page 7: Лекция №9 "Алгоритмические композиции. Начало"

Смесь экспертовMixture of Experts

h(x) =1

T

T∑i=1

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

6 / 35

Page 8: Лекция №9 "Алгоритмические композиции. Начало"

Топологические композиции

Модельные деревья решений (Model decision trees)

I Поместим в листья деревьев какие-нибудь алгоритмы вместоконстант

7 / 35

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

Нейронные сети

Neural networks

h(x) = g(wTx) - композиция линейных моделей

8 / 35

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

Текущее положение дел

Decision Trees Compositions vs Neural Nets

9 / 35

Page 11: Лекция №9 "Алгоритмические композиции. Начало"

Neural nets

Где нейронные сети побеждают?I Computer Vision (ImageNet)I Speech recognition

10 / 35

Page 12: Лекция №9 "Алгоритмические композиции. Начало"

Decision trees compositions

Где побеждают ансамбли деревьев решений?I Learning to rank (Yahoo Learning to rank challenge 2010)I Text categorization (NIPS 2006)I Везде

11 / 35

Page 13: Лекция №9 "Алгоритмические композиции. Начало"

Взгляд с точки зрения функционального анализа

Гладкие функции

h(x) =∑

σ(. . .∑

σ(wTx))

Кусочно-постоянныефункции

h(x) =∑d

cd I{x ∈ Rd}

12 / 35

Page 14: Лекция №9 "Алгоритмические композиции. Начало"

Методы построения алгоритмических композиций

Стохастические методы

Бустинг

Мета алгоритмы. Stacking

13 / 35

Page 15: Лекция №9 "Алгоритмические композиции. Начало"

Stacking

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

14 / 35

Page 16: Лекция №9 "Алгоритмические композиции. Начало"

Netflix Challenge

I Задача предсказания оценки фильмуI ПФ - 1000000$I Победил Stacking на “зоопарке” алгоритмов

15 / 35

Page 17: Лекция №9 "Алгоритмические композиции. Начало"

Немного теории

Недообучение - сложность модели недостаточна. Данные имеютболее сложную природу.Переобучение - сложность модели избыточна. Модель слишкомнастроена на выборку. Обобщающая способность алгоритма низка.

16 / 35

Page 18: Лекция №9 "Алгоритмические композиции. Начало"

The bias-variance Decomposition

I Задача регресииI y = f (x) + ε

I ε ∼ N (0, σε)

I Ищем h(x) аппроксимирующую f (x) Таким образом, мы можемоценить ожидание среднеквадратичной ошибки для некоторойточки x0

Err(x0) = E [(y − h(x0))2]

Это можно переписать в виде

Err(x0) = (E [h(x0)]− f (x0))2 + E [h(x0)− E (h(x0))]

2 + σ2ε

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

17 / 35

Page 19: Лекция №9 "Алгоритмические композиции. Начало"

Bias and variance tradeoff

18 / 35

Page 20: Лекция №9 "Алгоритмические композиции. Начало"

Bias and variance tradeoff

19 / 35

Page 21: Лекция №9 "Алгоритмические композиции. Начало"

Стохастические методы

Стратегии

I Bagging = Bootstrap aggregation. Обучаем алгоритмы послучайным подвыборкам размера N, полученным с помощьювыбора с возвращением.

I RSM = Random Subspace Method. Метод случайныхподпространств. Обучаем алгоритмы по случайнымподмножествам признаков.

Благодаря описанным стратегиям добиваемся максимальногоразличия между базовыми алгоритмами.

20 / 35

Page 22: Лекция №9 "Алгоритмические композиции. Начало"

Bagging & RSM

1 function BaggingRSM(X, F, poi, pof, T):2 # X - point from dataset3 # F - original set of features4 # poi - percent of items5 # pof - percent of features6 # T - number of algorithms7 for j in 1..T:8 fsubset = sample_features(F, pof)9 xsubset = sample_items(X, poi)10 a_j = build_base_model(xsubset, fsubset)1112 return a_1 ... a_T

21 / 35

Page 23: Лекция №9 "Алгоритмические композиции. Начало"

Bagging & RSM

Геометрическая интерпрeтация

22 / 35

Page 24: Лекция №9 "Алгоритмические композиции. Начало"

Bias-Variance for Bagging & RSMМодель простого голосования

h(x) =1

T

T∑i=1

a(x)

Смещение и разброс

Bias2 = (E [h(x0)]− f (x0))2 = (E [a(x0)]− f (x0))

2

Variance = E [h(x0)− E (h(x0))]2 =

=1

T

T∑i=1

E [ai (x0)− E [ai (x0)]]2+

+1

T

∑i 6=j

E [(ai (x0)− E [ai (x0)])(aj(x0)− E [aj(x0)])] =

=1

T

T∑i=1

E [ai (x0)− E [ai (x0)]]2 +

1

T

∑i 6=j

cov(ai (x0), aj(x0))

23 / 35

Page 25: Лекция №9 "Алгоритмические композиции. Начало"

Random Forest

Случайный лес (random forest) - bagging & rsm над решающимидеревьями.

24 / 35

Page 26: Лекция №9 "Алгоритмические композиции. Начало"

“Неустойчивость” деревьев решений

I Незначительные изменения в данных приводят к значительнымизменениям в топологии дерева

25 / 35

Page 27: Лекция №9 "Алгоритмические композиции. Начало"

Random Forest. Пример

(a) Original data (b) RF (50 Trees) (c) RF (2000 Trees)26 / 35

Page 28: Лекция №9 "Алгоритмические композиции. Начало"

Out of bag samples

27 / 35

Page 29: Лекция №9 "Алгоритмические композиции. Начало"

Random Forest & overfitting

I Не переобучается с ростом числа алгоритмов

28 / 35

Page 30: Лекция №9 "Алгоритмические композиции. Начало"

Feature impotance

29 / 35

Page 31: Лекция №9 "Алгоритмические композиции. Начало"

Random Forest Clustering

Концепция

I В один кластер попадают те примеры, которые чаще всеговместе попадали в листья деревьев

30 / 35

Page 32: Лекция №9 "Алгоритмические композиции. Начало"

Random Forest. Итоги

4 Алгоритм прост4 Не пререобучается4 Хорошо параллелится4 Не требует сложной настройки параметров4 Не требует нормализации данных (деревья решений)6 Модели получаются большие и неинтерпретируемые6 Плохо работает с полиномиальными зависимостями.6 “Медленно” работает для большого объема данных.

31 / 35

Page 33: Лекция №9 "Алгоритмические композиции. Начало"

Extremely Randomized Trees

I Проверяем только один предикат на фичуI Используем все фичи для каждого дереваI Работает в разы быстрее

32 / 35

Page 34: Лекция №9 "Алгоритмические композиции. Начало"

Kaggle.com about Random Forest

I https://www.kaggle.com/wiki/RandomForests

33 / 35

Page 35: Лекция №9 "Алгоритмические композиции. Начало"

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

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

http://goo.gl/gCQ7Y3

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

2. Сравнинить RF c другими известными алгоритмамиклассификации.

3. Написать функцию подбирающую параметры числа деревьев ипроцента признаков в деревьях. Построить график.

4. Ответить на вопрос: Почему качество классификации длякласса spam выше чем для класса notspam?

34 / 35

Page 36: Лекция №9 "Алгоритмические композиции. Начало"

Вопросы