87
Машинное обучение и анализ данных Малый ШАД 2013 Сборка презентации от 30.11.2013 Саша Фонарев

машинное обучение и анализ данных

  • Upload
    yandex

  • View
    5.046

  • Download
    13

Embed Size (px)

Citation preview

Page 1: машинное обучение и анализ данных

Машинное  обучение  и  анализ  данных  

Малый  ШАД  2013  Сборка  презентации  от  30.11.2013  

Саша  Фонарев  

Page 2: машинное обучение и анализ данных

Контрольные  вопросы  

•  Какой  метод  больше  склонен  к  переобучению  –  метод  одного  ближайшего  соседа  или  метод  ста  ближайших  соседей?  Почему?  

Page 3: машинное обучение и анализ данных

Что  такое  машинное  обучение?  

Page 4: машинное обучение и анализ данных

Автомобиль  или  стул?  

Page 5: машинное обучение и анализ данных

Автомобиль  или  стул?  

 Нужен  жизненный  опыт  

(модель  представления  о  мире)  

Page 6: машинное обучение и анализ данных

Идея  машинного  обучения  

Обучающаяся  программа  

Примеры  данных  с  закономерностями  

Модель  закономерности  

Поиск  закономерностей  в  

новых  данных  

Page 7: машинное обучение и анализ данных

Метод  ближайшего  соседа  

Page 8: машинное обучение и анализ данных

Сначала  решим  простую  задачу  

Синий  или  красный  новый  объект?  

0 50 100 150 200 250 3000

50

100

150

200

250

?  

Page 9: машинное обучение и анализ данных

Ближайший  сосед  

•  Пусть  новый  объект  принадлежит  к  тому  же  классу,  что  и  его  ближайший  сосед  

0 50 100 150 200 250 3000

50

100

150

200

250

Page 10: машинное обучение и анализ данных

Граница  разделения  классов  

Возможно,  шумовые  объекты  

Page 11: машинное обучение и анализ данных

Несколько  ближайших  соседей  •  Новый  объект  принадлежит  тому  же  классу,  что  и  большинство  из  k  его  соседей  

0 50 100 150 200 250 3000

50

100

150

200

250

Page 12: машинное обучение и анализ данных

Граница  разделения  классов  для  k=5  

Оказывается,  алгоритм  дает  ошибку  на  обучающей  выборке!  А  это  и  не  плохо.  

Page 13: машинное обучение и анализ данных

А  если  объектов  больше?  

K=1   K=15  

Page 14: машинное обучение и анализ данных

Степень  принадлежности  Полутона  означают,  что  примерно  половина  соседей  одного  класса  и  половина  другого  

Page 15: машинное обучение и анализ данных

Многомерное  пространство  

00.5

1

0

0.5

10

0.2

0.4

0.6

0.8

xy

z

Page 16: машинное обучение и анализ данных

Двумерные  проекции  трехмерных  данных  

z   y   x  

z  

y  

x  

Page 17: машинное обучение и анализ данных

Качество  и  параметры  алгоритмов  

Page 18: машинное обучение и анализ данных

Как  лучше  выбрать  границу?  

Page 19: машинное обучение и анализ данных

Недообученная  (слабая)  модель  

Page 20: машинное обучение и анализ данных

Переобученная  модель  

Page 21: машинное обучение и анализ данных

Оптимальная  модель  

Page 22: машинное обучение и анализ данных

Переобучение  

Page 23: машинное обучение и анализ данных

Сложность  модели  и  ее  параметры  

•  Обычно  если  модель  склонна  переобучаться,  то  у  нее  много  параметров  

•  Наоборот,  если  у  модели  мало  параметров,  то  и  вряд  ли  она  переобучается  

Page 24: машинное обучение и анализ данных

Строгая  постановка  задачи  классификации  

признаки  

обучаю

щая  

выбо

рка  

класс  

?

новы

е  об

ъекты  

признаковое  описание  

признаки  

Page 25: машинное обучение и анализ данных

Какой  алгоритм  выбрать?  

Page 26: машинное обучение и анализ данных

Разбиение  на  контроль  •  Используем  имеющиеся  данные  из  обучающей  выборки.  Разобъем  обучение  на  две  части.  

•  На  одной  мы  будем  обучаться,  а  на  второй  проверять,  сколько  ошибок  выдал  алгоритм  

 новая  

обучающая  выборка  

!контрольная  выборка  

обучающая  выборка  

Page 27: машинное обучение и анализ данных

Качество  обучения  в  зависимости  от  k  

86  

88  

90  

92  

94  

96  

98  

1   3   5   7   9   11  13  15  17  19  21  23  25  27  29  31  33  35  37  39  41  43  45  47  49   k  

%  

Page 28: машинное обучение и анализ данных

Как  точнее  узнавать  оптимальное  значение  параметра  k?  

•  Видно  что  график  скачет,  почему?  •  Точно  узнать  k  тяжело  •  Можно  проводить  разбиение  на  тест  и  контроль  много  раз,  а  затем  усреднять  результаты  

Page 29: машинное обучение и анализ данных

Итак,  что  мы  имеем  

•  Сложность:  O(NM),  N  –  количество  объектов  в  обучении,  M  –  количество  новых  объектов,  O(1)  –  подсчет  одного  расстояния  

•  Структуры  данных  для  ускорения:  kd-­‐tree,  R-­‐tree,  Ball-­‐tree  

•  Есть  один  оптимизируемый  параметр  –  число  соседей  k  (а  всего  параметров  больше,  почему?)  

•  Нужно  уметь  считать  расстояние  между  объектами  

Page 30: машинное обучение и анализ данных

Про  выбор  расстояния  •  Расстояние  на  плоскости  между  точками                                    и    

•  Расстояние  в  многомерном  случае  считается  аналогично  

•  Можно  добавить  признакам  веса  

•  Можно  считать  вообще  по-­‐другому  

•  Можно  делать  отбор  признаков  

Page 31: машинное обучение и анализ данных

Выбор  расстояния  

Понять  какую  меру  сходства  между  объектами  надо  использовать  –  очень  

сложная  задача  

Page 32: машинное обучение и анализ данных

Параметры  модели  

•  Количество  настраиваемых  параметров  у  алгоритма  бывает  куда  больше  

•  Не  всегда  удается  «тупо»  перебрать  все  значения  параметров  у  модели  

•  Придумываются  разные  быстрые  методы  нахождения  параметров,  близких  к  оптимальным  (раздел  математики  –  методы  оптимизации)  

Page 33: машинное обучение и анализ данных

Цикл  решения  задачи  Выбор  метода  и  параметров  

Предобработка  данных  

Обучение  

Оценка  качества  

Окончательный  классификатор  

Page 34: машинное обучение и анализ данных

Терминология  

•  Распознавание,  предсказание,  прогнозирование  

•  Обучающая  выборка,  тренировочный  набор  объектов,  наблюдение  

•  Тестовая  выборка,  контрольная  выборка,  валидационная  выборка,  скрытая  выборка  

•  Классы,  метки  классов  

Page 35: машинное обучение и анализ данных

Примеры  задач  

Page 36: машинное обучение и анализ данных

Болен  ли  пациент?  

признаки  

Известные  

паци

енты

 Болен  или  нет?  

?

Неизвестны

е  паци

енты

 

признаковое  описание  

Описание  пациента    

Page 37: машинное обучение и анализ данных

Есть  золото?  

признаки  

Известные  

терр

итор

ии  

Есть  или  нет?  

?

Новы

е  терр

итор

ии  

признаковое  описание  

Описание  территории  

Очень  несбалансированные  данные!  

Page 38: машинное обучение и анализ данных

Поднимется  или  упадет  цена  акций?  

признаки  

Истор

ия  

Цена  в  следующий  момент  

?

Будущее  

признаковое  описание  

Цены  акций  в  предыдущие  моменты  времени  

Page 39: машинное обучение и анализ данных

Кого  выберут  на  выборах?  

признаки  

Канд

идаты  

с  пр

ошлы

х  вы

боро

в  Выбран  или  нет?  

?

Новы

е  канд

идаты  

признаковое  описание  

Описание  кандидата  

Нужны  дополнительные  ограничения  на  вид  данных!  

Page 40: машинное обучение и анализ данных

Есть  ли  котик  на  изображении?  

признаки  

Разм

ечен

ные  

фотограф

ии  

Есть  котик  или  нет?  

?

Неизвестны

е  фо

тограф

ии  

признаковое  описание  

Описание  изображений    

Page 41: машинное обучение и анализ данных

Что  такое  изображение?  •  Матрица  пикселей  •  Каждый  пиксель  имеет  свой  цвет  (число)  

Число,  кодирующее  цвет  

Page 42: машинное обучение и анализ данных

Как  описать  изображение?  Развернуть  матрицу  пикселей  в  одну  строчку  и  использовать  это  как  набор  признаков  

 

Page 43: машинное обучение и анализ данных

Получится  плохо.  Нужны  границы!  Человеческий  мозг  в  основном  анализирует  именно  её  

Page 44: машинное обучение и анализ данных

Рекомендательная  система  

признаки  

Известные  

пользователи

 Понравится  новый  фильм  или  нет?  

?

Новы

е  по

льзователи

 

признаковое  описание  

Просмотренные  фильмы  

Не  учитывается  большое  количество  взаимосвязей!  

Page 45: машинное обучение и анализ данных

Рекомендательная  система  

•  Большое  количество  пропусков  в  данных  •  Можно  использовать  категориальные  признаки!  

Page 46: машинное обучение и анализ данных

Коллаборативная  фильтрация  

признаки  

Известные  

оцен

ки  

Оценка  за  фильм  

?

Неизвестны

е  оц

енки  Пользователь  

Категориальные  признаки  могут  принимать  много  неупорядоченных  значений  

Фильм  

Page 47: машинное обучение и анализ данных

Ранжирование  

признаки  

Известные  

оцен

ки  

Релевантность  

?

Неизвестны

е  оц

енки  Документ   Запрос  

Page 48: машинное обучение и анализ данных

Персональное  ранжирование  

признаки  

Известные  

оцен

ки  

Релевантность  

?

Неизвестны

е  оц

енки  

Документ   Запрос   User  

Page 49: машинное обучение и анализ данных

Линейная  классификация  и  ее  производные  

Page 50: машинное обучение и анализ данных

Пусть  граница  –  прямая  

Мало  параметров  

Page 51: машинное обучение и анализ данных

Иногда  прямая  плохо  помогает  

Мало  параметров  –  вряд  ли  переобучится  

Page 52: машинное обучение и анализ данных

Гиперплоскости  в  многомерных  пространствах  

•  В  двумерном  случае  –  прямая  •  В  трехмерном  –  плоскость  •  Дальше  –  гиперплоскость  

Делит  пространство  на  две  части  

Title

Author

Today

a1x1 + a2x2 + ...+ an�1xn�1 + anxn + a0 = 0

1

Page 53: машинное обучение и анализ данных

Есть  много  способов  провести  прямую  

Какая  прямая  лучше?  Нужно  сравнивать  качество!  

Page 54: машинное обучение и анализ данных

Возможны  обобщения  на  сложные  границы  

Page 55: машинное обучение и анализ данных

Представим  в  виде  схемы  

Граница  –  прямая  

Page 56: машинное обучение и анализ данных

Аналогично  для  n  входов  

Граница  –  n-­‐мерная  гиперплоскость  

Page 57: машинное обучение и анализ данных

Получится  нейронная  сеть  

Можно  как  угодно  соединять  

Page 58: машинное обучение и анализ данных

Глубинная  нейронная  сеть  

Стараемся  восстановить  исходные  объекты  

   

Page 59: машинное обучение и анализ данных

l  Могут  подстроиться  под  любые  данные  l  Любят  переобучаться  l  На  самом  деле  не  похожи  на  мозг  человека  :)  l  Имеют  огромное  количество  преимуществ  и  недостатков  

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

Page 60: машинное обучение и анализ данных

Решающие  деревья  и  композиции  над  ними  

Page 61: машинное обучение и анализ данных

Экспертные  системы,  составленные  вручную  

Решающее  дерево  для  предсказания  эффективности  введения  лекарства  

Page 62: машинное обучение и анализ данных

В  чем  проблемы?  •  Правила  составлялись  вручную  экспертами  •  Мнения  экспертов  расходятся  •  Эскперты  могут  ошибаться  •  Эксперт  не  в  состоянии  проанализировать  все  данные  

Page 63: машинное обучение и анализ данных

Построим  дерево  автоматически  

условие  1  

условие  2  

TRUE  FALSE  

FALSE  TRUE  

Page 64: машинное обучение и анализ данных

Какие  условия  будут  в  дереве?  

Попробуем  использовать  пороговые  условия  перехода  в  виде  пороговых  правил:  x>c  

Page 65: машинное обучение и анализ данных

Начнем  строить  дерево  

нет  

•  Будем  действовать  жадно  •  Каждый  раз  берем  наиболее  «информативное»  разделение  всей  области  

Page 66: машинное обучение и анализ данных

Строим  дерево  

нет   да  

нет   да  

Каждый  раз  берем  наиболее  «информативное»  разделение  текущей  области  

Page 67: машинное обучение и анализ данных

Преимущества  деревьев  перед  алгоритмами  на  метриках  

•  Придумать  правильную  меру  сходства  –  значит  почти  решить  задачу,  это  сложно.  А  решающие  деревья  не  используют  метрики  

•  Единственное  что  используют  деревья  –    

точка  В  ближе  к  А,  чем  С  по  данному  признаку  •  Устойчивы  к  монотонным  преобразованиям  признаков  

       А                                              В                                                            С  

Page 68: машинное обучение и анализ данных

Недостатки  решающего  дерева  

•  В  реальных  задачах  сильно  переобучаются,  мельчат  вокруг  одной  области  пространства  (содержат  в  себе  много  параметров)  

•  Очень  неустойчивы  относительно  данных  

Page 69: машинное обучение и анализ данных

Решение:  подрезания  деревьев  

•  Если  информативность  условия  меньше  порога,  то  прекращаем  строить  дерево  

•  Количество  объектов  в  листе  меньше  некоторого  числа,  то  прекращаем  строить  

•  И  т.п.  

Page 70: машинное обучение и анализ данных

Будем  возвращать  вещественную  степень  принадлежности  классу  

от    -­‐1  до  +1  

условие  1  

условие  2  

TRUE  FALSE  

FALSE  TRUE  

Page 71: машинное обучение и анализ данных

Композиции  алгоритмов  

•  Пусть  есть  какой-­‐то  набор  из  T  алгоритмов:    

•  Финальный  алгоритм:  

Page 72: машинное обучение и анализ данных

Лес  деревьев  

Построим  композицию  из  решающих  деревьев  

……  Дерево1 ДеревоT

Как  сделать  деревья  существенно  разными?  

Page 73: машинное обучение и анализ данных

Будем  обучаться  на  случайных  подвыборках  

объе

кты  

класс  признаки  

Случайная  подвыборка  

Page 74: машинное обучение и анализ данных

Как  работает  случайный  лес?  Сгенерируем  данные:  

Page 75: машинное обучение и анализ данных

Как  работает  случайный  лес?  

Реальная  оптимальная  границы  

Результат  работы  Random  Forest  (50  деревьев)  

Результат  работы  Random  Forest  (2000  деревьев)  

Page 76: машинное обучение и анализ данных

Случайный  лес  •  Работает  с  признаками  разной  природы  •  Не  надо  думать  над  метрикой  •  Устойчив  к  изменениям  признаков  •  Хорошо  распараллеливается  •  Тяжело  интерпретируется  человеком  •  Плохо  приближает  линейные  зависимости  •  Долго  строится  •  Не  переобучается  при  увеличении  количества  деревьев    

“This  ease  of  use  also  makes  Random  Forests  an  ideal  tool  for  people  without  a  background  in  sta:s:cs,  allowing  lay  people  to  produce  fairly  strong  predic:ons  free  from  many  common  mistakes,  with  only  a  small  amount  of  research  and  programming”.  

Kaggle.com  

Page 77: машинное обучение и анализ данных

Последовательное  наращивание  композиции  алгоритмов  (бустинг)  

•  Строим  композицию  из  слабых  алгоритмов  –  подрезанных  решающих  деревьев  

•  Каждое  новое  дерево  компенсирует  ошибки  суммы  предыдущих  

•  Получается  очень  сильная  композиция  •  Склонна  к  переобучению,  несмотря  на  многие  обратные  заявления  :)  

Page 78: машинное обучение и анализ данных

Качество  при  разном  числе  деревьев  

   

Page 79: машинное обучение и анализ данных

Основная  идея  бустинга  

•  Набор  ответов,  предсказанный  после  шага  T  

•  Предсказанный  ответ  отличается  от  истинного  на  разность  

•  Будем  обучать  следующее  дерево  на  эту  разность  

Page 80: машинное обучение и анализ данных

Что  такое  бустинг  на  самом  деле?  

•  Рассматривается  не  разность,  а  градиент  ответов,  на  который  настраивается  очередное  дерево  

•  Перед  деревьями  ставятся  маленькие  коэффициенты  (порядка  0.02)  во  избежание  переобучения  

•  На  каждом  шаге  используется  произвольная  часть  объектов  (стохастичность)  

Yandex  MatrixNet  –  стохастический  градиентный  бустинг  над  решающими  деревьями  (а  еще  его  используют  Yahoo,  CERN  и  другие)  

Page 81: машинное обучение и анализ данных

Алгоритм  Виолы-­‐Джонса  

Page 82: машинное обучение и анализ данных

Заключение  

Page 83: машинное обучение и анализ данных

Про  терминологию  

•  Интеллектуальный  анализ  данных  (Data  Mining)  

•  Машинное  обучение  (Machine  Learning,  Sta�s�cal  Learning)  

•  Прикладная  статистика  (Applied  Sta�s�cs)  •  Факторный  анализ  (Factor  Analysis)  •  Теория  оптимизации  (Op�miza�on  Theory)  •  Искусственный  Интеллект  (Ar�ffi�al  Intellengence)  

Page 84: машинное обучение и анализ данных

Соревнования  по  анализу  данных  

•  Сайты  – Kaggle.com  – и  другие  

•  Кем  проводятся  – Компаниями  – Работодателями  – Университетами  

Page 85: машинное обучение и анализ данных

Отличия  от  олимпиадного  программирования  

•  Дается  одна  задача,  а  не  несколько  •  Решаются  значительно  дольше  (недели,  месяцы,  годы)  

•  Не  существует  точного  и  правильного  решения  •  Идет  борьба  за  сущие  проценты  качества  •  Не  важен  язык,  скорость  работы  и  ресурсы;  важен  только  результат  

•  В  одиночку  или  командами  

Page 86: машинное обучение и анализ данных

На  чем  пишут  алгоритмы  обучения?  •  Готовые  наборы  методов  машинного  обучения  (для  общего  понимания,  какой  метод  лучше)  – Weka  –  RapidMiner  –  Orange  

•  Интерпретируемые  языки  (для  экспериментов  и  выбора  алгоритма)  – Matlab  (Octave  –  бесплатная  версия)  –  Python  (+  библиотеки  на  основе  scipy)  –  R  

•  Более  низкоуровневые  языки  (для  скорости  работы,  когда  уже  ясно,  какой  алгоритм  будет  использоваться)  –  C  –  C++  

Page 87: машинное обучение и анализ данных

Вопросы?