55
Машинное обучение Наш опыт и наши «грабли» Алексей Сибирцев НГС.ТЕХНОЛОГИИ 20 ноября 2016 г.

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

Embed Size (px)

Citation preview

Машинное обучениеНаш опыт и наши «грабли»

Алексей Сибирцев

НГС.ТЕХНОЛОГИИ

20 ноября 2016 г.

Обо всём Обо мне

Обо всёмОбо мне

Алексей Сибирцев

Web-разработка — 2003 г. – . . .В компании НГС — 2007 г. – . . .Машинное обучение — 2016 г. – . . .Сделал докладов на конференциях — 0

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 2 / 55

Обо всём Обо мне

Обо всёмОбо мне

НГС.ТЕХНОЛОГИИ1 — разработчик продуктов, решений и технологий федеральной сетиHearst Shkulev Digital Regional Network.

1http://techno.ngs.ru/Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 3 / 55

Обо всём N1.RU

Обо всёмN1.RU

N1.RU2 — федеральный портал для поиска и выбора жилья в регионах России. Проектбыл создан как современная платформа, объединившая разделы «Недвижимость» болеечем 42 сайтов, входящих в сеть Hearst Shkulev Digital Network3.

2http://n1.ru/3http://www.hearst-shkulev-media.ru/projects/rn/

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 4 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

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

ru.wikipedia.org

В машинном обучении алгоритм, ответственный за принятие решения,создаёт машина на основе данных, а не программист на основе ТЗ.

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 5 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

Области применения:Компьютерное зрениеРаспознавание речиКомпьютерная лингвистика и обработка естественных языковМедицинская диагностикаБиоинформатикаФинансовые приложенияРубрикация, аннотирование и упрощение текстовИнформационный поиск. . .

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 6 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

Аппарат:Линейная алгебраТеория вероятностей и математическая статистикаМетоды оптимизацииЧисленные методыМатематический анализДискретная математика. . .

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 7 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

Виды машинного обучения:ДедуктивноеИндуктивноеКомбинированное

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 8 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

Индуктивное обучение:Обучение с учителем:

классификациявосстановление регрессииструктурное обучение (structured learning). . .

Обучение без учителя:кластеризациявизуализация данныхпонижение размерности. . .

Обучение с подкреплением (reinforcement learning). . .

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 9 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

Обучение по прецедентам

Множество X - примеры, объектыМножество Y - ответы, откликЕсть зависимость (вероятностная или детерминированная), позволяющая по x ∈ Xпредсказать (оценить вероятность появления) y ∈ Y

Если зависимость детерминированная, то существует функция f : X → Y

ЗадачаВосстановить зависимость, другими словами, научиться по новым объектам x ∈ Xпредсказать ответы y ∈ Y

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 10 / 55

Обо всём О машинном обучении

Обо всёмО машинном обучении

Самое сложное в машинном обучении — это грамотно извлечь, сгенерироватьи отобрать признаки

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 11 / 55

Обо всём Наши задачи

Наши «грабли»

Цены на недвижимостьФотографии объектов недвижимости

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 12 / 55

Динамика цен

Динамика цен

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 13 / 55

Динамика цен Задача

Динамика ценЗадача

ЗадачаРазработать систему, которая в реальном времени может показывать динамику цен наквартиры (продажа/аренда) в разных срезах

РешениеНас спасут OLAPa кубы

ahttps://en.wikipedia.org/wiki/Online_analytical_processing

Вот только есть «но» — большая вариативность, сроки и необходимость поднятьисторические данные

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 14 / 55

Динамика цен Первая версия

Динамика ценПервая версия

Поднимаем дампы за прошлые годаВсегда делайте дампы

Выгружаем данные в нужном форматеПишем сборщика активных данныхПоверх базы пишем RESTДелаем запрос с нужными параметрами, фильтруем полученные данные и считаемнужные нам статистикиProfit

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 15 / 55

Динамика цен Первая версия

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 16 / 55

Динамика цен Сколько стоит квартира

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 17 / 55

Динамика цен Сколько стоит квартира

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 18 / 55

Динамика цен Сколько стоит квартира

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 19 / 55

Динамика цен Мы знаем не всё

Динамика ценМы знаем не всё

Мы знаем не всё и не про все квартирыОбъектов недвижимости больше, чем объявленийНе все квартиры и не во всех домах когда-либо продавались на сайтеНе все квартиры и не во всех домах продаются в данный момент

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 20 / 55

Динамика цен Мы знаем не всё

Динамика ценМы знаем не всё

Что мы знаем?Дома в большинстве своём «типовые»Большая часть известных нам квартир находится в «типовых» домахМы знаем параметры квартир

ОзарениеМы можем обучить модель для предсказания цены!

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 21 / 55

Динамика цен Признаки

Динамика ценПризнаки

Данные от пользователяИсторические данныеГенерируем признаки

Возраст дома: age = yearcurrent − yearbuildНовые бинарные признаки: exists_balcony = I [|balconies|+ |loggias| > 0]Средняя площадь: area =

arealiving|rooms|

Удалённость от узловых точек (эксперимент). . .

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 22 / 55

Динамика цен Признаки

0 1     

0

1000000

2000000

3000000

4000000

5000000

6000000price

Boxplot grouped by exists_balcony

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 23 / 55

Динамика цен Признаки

0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2price 1e7

0

1

2

3

4

5

6

7

 

1e 7

∆mean = 538829.03526∆med = 365000.0

Mann­Whitneyu pval = 1.67751018511e­138t­test pval = 3.42063127298e­103

permutation test pval = 0.0001

 price   exists_balcony

exists_balcony=1exists_balcony=0

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 24 / 55

Динамика цен Линейная регрессия

Динамика ценЛинейная регрессия

^pricei =D∑︁j=1

(wjxij) + w0

arg minw

⎧⎨⎩N∑︁i=1

⎛⎝ D∑︁j=1

(wjxij) + w0 − pricei

⎞⎠2

+ 𝜆

D∑︁j=1

w2j

⎫⎬⎭

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 25 / 55

Динамика цен Линейная регрессия

Динамика ценЛинейная регрессия

ПлюсыПростота алгоритмаИнтерпритируемость результата

Минусы«Сложная» предобратобка«Ручной» отбор признаков и их взаимодействий

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 26 / 55

Динамика цен Деревья решают

Динамика ценДеревья решают

Решающие деревья4

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

4Интересная визуализация http://www.r2d3.us/Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 27 / 55

Динамика цен Деревья решают

Динамика ценДеревья решают

area

price = 1000000<50

floor

exists_balcony

price = 25000001

price = 20000000

>3

price = 1500000<3

>50

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 28 / 55

Динамика цен Деревья решают

Динамика ценДеревья решают

Используем XGBoost5, чтобы найтизависимость цены от «остальных» параметровПредварительно делим выборку по городам и комнатности

5https://github.com/dmlc/xgboostАлексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 29 / 55

Динамика цен Деревья решают

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 30 / 55

Динамика цен Деревья решают

0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2

  1e7

0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

 

1e7

R 2 = 0.988801410879

 

0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2

  1e7

0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

 

1e7

R 2 = 0.885078686709

 

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 31 / 55

Динамика цен Деревья решают

0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2

  1e7

0.2

0.0

0.2

0.4

0.6

0.8

1.0

1.2

 

1e7

R 2 = 0.95526564356

 

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 32 / 55

Динамика цен Деревья решают

Динамика ценДеревья решают

Теперь мы знаем «почти» всёЗнать всё невозможно — остаток никогда не будет равен 0Есть куда совершенствоваться

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 33 / 55

Динамика цен Интересные факты

Динамика ценИнтересные факты

Самый большой «вклад» в цену вносятплощадиместоположение (широта и долгота)удалённость от узловых точек

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

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 34 / 55

Фотографии

Фотографии

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 35 / 55

Фотографии Не все фото одинаковы полезны

ФотографииНе все фото одинаковы полезны

ЗадачаНужно различать фотографии фасадов от фотографий сан.узлов

РешениеЕсли речь заходит об изображениях,на ум сразу приходит «Свёрточная нейронная сеть»a

Caffeb

ahttps://en.wikipedia.org/wiki/Convolutional_neural_networkbhttp://caffe.berkeleyvision.org/

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 36 / 55

Фотографии Учат в школе, учат в школе, учат в школе

ФотографииУчат в школе, учат в школе, учат в школе

ПроблемаГотовых моделей, способных отличить фасад здания от кухни. нет

Создать обучающую выборку простоЯндекс Толока6

Amazon Mechanical Turk7

Наши модераторы лучше знают, как отделять мух от котлет

6https://toloka.yandex.ru/7https://www.mturk.com/mturk/welcome

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 37 / 55

Фотографии Учат в школе, учат в школе, учат в школе

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 38 / 55

Фотографии Учат в школе, учат в школе, учат в школе

ФотографииУчат в школе, учат в школе, учат в школе

class Имя классаroom Комната 3452bathroom Ванная 1415kitchen Кухня 1250facade Фасад здания 1048view Вид из окна 555plan Планировка 456entrance Подъезд 260

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 39 / 55

Фотографии Учат в школе, учат в школе, учат в школе

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 40 / 55

Фотографии Учат в школе, учат в школе, учат в школе

Было ∼8k, стало ∼100kОбучение (Fine-tuning8)Взяли модель, обученную на ImageNet«Выкусили» full-connected слой с 1000 выходов и заменили на свой с 7 классами«Дообучили» сеть

8http://caffe.berkeleyvision.org/gathered/examples/finetune_flickr_style.htmlАлексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 41 / 55

Фотографии Учат в школе, учат в школе, учат в школе

ФотографииУчат в школе, учат в школе, учат в школе

NVIDIA QuadroM400024 часа до точности 0,9964 часа до точности 0,92

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 42 / 55

Фотографии Результат

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 43 / 55

Фотографии Результат

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 44 / 55

Фотографии Результат

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 45 / 55

Фотографии Результат

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 46 / 55

Фотографии Результат

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 47 / 55

Фотографии Результат

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 48 / 55

Фотографии Итог

ФотографииИтог

Классов больше, чем 7Нужна предварительная классификация (фото вообще про недвижимость)Нужно дообучать

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 49 / 55

Фотографии Итог

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 50 / 55

Ближайшие планы

Ближайшие планы

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 51 / 55

Ближайшие планы Модерирование объявлений

Ближайшие планыМодерирование объявлений

Дано200k+ активных объявленийa

70k+ объявлений добавляется или обновляется ежедневноКаждое объявление – это более 20 параметров, текст и фотографииДанных слишком много, чтобы их мог проверить человек

aРассматриваем только квартиры (продажа/аренда)

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 52 / 55

Ближайшие планы Смешать, но не взбалтывать

Ближайшие планыСмешать, но не взбалтывать

Нужно объединить полученные нами результатыПроверять цену и площади мы уже можемКлассифицировать фотографии мы почти можем

Нужно только избавиться от «котиков»Искать дубликаты мы тоже умеем

Если интересно как, расскажу в кулуарах

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 53 / 55

Итого

Итого

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

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 54 / 55

Итого Контакты

ИтогоКонтакты

Спасибо!

Вопросы?

Алексей Сибирцев[email protected]://www.facebook.com/alexey.sibirtsevhttps://ru.linkedin.com/in/alexeysibirtsev

Алексей Сибирцев (НГС) Машинное обучение 20 ноября 2016 г. 55 / 55