Я провел 7 месяцев в качестве стажера в craft ai, API машинного обучения, ориентированном на изучение привычек. Мой основной проект был о прогнозировании времени прибытия мусоровозов на улицы Парижа. Если вам интересно, я написал сообщение в блоге, объясняющее, как работает все решение.

Оглядываясь назад, я хочу резюмировать 9 основных элементов, которые я усвоил. Во-первых, 3 технических урока о реалиях машинного обучения, которые следует иметь в виду. Во-вторых, 3 основных навыка, которыми должен обладать каждый специалист по данным. И, наконец, я хочу рассказать о 3 способах изучения науки о данных в наши дни, которые мне помогли.

Три урока машинного обучения

Не существует «лучшей модели». Да, некоторые модели лучше справляются с некоторыми проблемами. Например, нейронные сети показали свое превосходство в компьютерном зрении и обработке естественного языка. Но в целом никто не может утверждать, что одна модель всегда будет работать лучше других. Метрики производительности модели - единственный способ узнать правду. Вот почему у нас не должно быть таких влияний, как «нейронные сети великолепны в сложных задачах, таких как компьютерное зрение, тогда давайте использовать их для наших прогнозов продаж». Это плохой образ мышления. Чтобы найти лучший алгоритм обучения, легко провести первую фазу обучения с набором различных алгоритмов на меньшем подмножестве данных. Затем сделайте быстрое обучение и перекрестную проверку, прежде чем сравнивать результаты. Повторите этот процесс на другом подмножестве и определите в среднем лучший алгоритм обучения для использования на всем наборе данных.

Этап обучения - это ничего. Предварительная обработка данных - это все. Обычно мы не тратим много времени на внедрение алгоритмов обучения. Множество фреймворков и библиотек уже сделали эту работу. Они хорошо оптимизированы с достаточной производительностью времени и памяти для нашего случая использования. Единственной задачей на этапе обучения будет игра с гиперпараметрами и вычисление перекрестной проверки для измерения улучшений. Что ж, это не самая энергоемкая часть. Но предварительная обработка данных есть. Под предварительной обработкой данных я подразумеваю добавление дополнительных функций из внешних наборов данных, их очистку (удаление «плохих» строк), извлечение новых функций из других (комбинация функций или декомпозиция), выбор лучших (выбор функций или уменьшение размерности) и т. Д. способ получить представление о проделанной работе по предварительной обработке - это, опять же, измерить улучшения с помощью перекрестной проверки или сравнения кривой обучения. Преобразование входных данных с последующим вычислением показателей валидации (и повторением снова и снова) - это реальное рабочее время, которое мы тратим на нашу задачу машинного обучения.

Модели не хватает. Меры предосторожности являются обязательными. Модель машинного обучения нацелена на предоставление наилучших прогнозов по сравнению с тем, что она видела на этапе обучения. Прогнозы не всегда будут точными, и тому есть несколько причин. Таким образом, приложение, доставляющее предсказания своим пользователям, не должно полагаться исключительно на стоящую за ним модель. Например, в моем личном опыте стажировки вначале моя модель предсказывала, что грузовик с переработанными отходами будет проезжать по улицам каждый день недели. Прогнозируемое время было стабильным, но на самом деле мусоровозы из переработанных отходов появляются только три раза в неделю, а не каждый день. Последний факт я назвал бизнес-правилом, другими словами, правилом, зависящим от решаемой проблемы. Непосредственно реализовать это правило в основном алгоритме обучения не так-то просто. Таким образом, неизбежно потребовался дополнительный уровень, фильтрующий предсказания с записанными правилами. Меры предосторожности должны быть реализованы поверх прогнозов, проверяющих их достоверность. В противном случае это может привести к глупым или опасным ситуациям.

Три навыка специалиста по данным

Математика и статистика. На мой взгляд, машинное обучение можно освоить без продвинутых математических или статистических знаний в этой области. Имея навыки программирования мыслей, фреймворки и базовое понимание принципов машинного обучения, многое еще можно достичь. Но специалисту по анализу данных желательно иметь глубокое понимание своей модели. Например, он должен быть в состоянии ответить «почему модель сделала этот выход Y при входном X», главным образом потому, что пользователи могут положительно стремиться узнать, почему решение было принято службой. Кроме того, повышение точности модели обычно достигается за счет настройки гиперпараметров, и они фактически участвуют в математических расчетах модели. Для этого необходимо очень хорошее знание математики или статистики за кулисами. Вот почему, на мой взгляд, специалисты по анализу данных должны продолжать его изучать.

Информатика и программирование. Да, наука о данных требует совместимости с навыками информатики. В основном для манипулирования данными (файлами, базами данных) и работы с ними (программирование или использование высокоуровневого программного обеспечения). На этапе анализа сценарии полезны для обработки данных и визуализации перед обучением. Но позже в проекте, когда дело доходит до создания приложения с полным спектром услуг, требуются навыки разработки программного обеспечения. В то время как инженер по машинному обучению сосредоточится на фазе обучения, специалист по анализу данных должен работать над всем конвейером от обработки данных до доставки прогнозов в приложение, которое их использует.

Общение. Передача результатов и открытий в рамках данных является основной задачей для специалиста по данным. Они должны помочь людям понять, что скрывается в данных и что может быть полезно для их компании. Это может быть устная речь, письменный отчет или, еще лучше, визуальный отчет с методами визуализации данных. При работе с людьми, которые не работают в этой области, для облегчения их понимания следует использовать терминологию, имеющую отношение к бизнесу, или бизнес-метрики, а не простые статистические метрики более низкого уровня, менее значимые с их точки зрения.

Три способа изучить науку о данных

Интернет-ресурсы. Очевидно, что первая отправная точка, по крайней мере, для машинного обучения, - это Coursera. Классы машинное обучение и глубокое обучение считаются лучшими способами начать его изучение. В целом, веб-сайт онлайн-классов может быть отличным способом изучить сложные теории, на изучение которых требуется много времени. Кроме того, документация по фреймворкам вроде Scikit-learn похожа на библию. Они не только предоставляют фрагменты кода для использования алгоритмов, но также предоставляют их теоретическую (математику, статьи) их сторону и эталонный тест, описывающий, когда они работают хорошо или нет. Наконец, многие специализированные веб-сайты производят контент очень хорошего качества для специалистов по данным, таких как Kdnuggets, Siraj Youtube Channel, Open Data Science.

Kaggle. Это место, где нужно работать специалисту по данным. На этой онлайн-платформе размещено множество наборов данных, в которых специалисты по данным соревнуются за создание лучшей модели прогнозирования. Доступно множество данных, с которыми можно поиграть. Кроме того, многие примеры кода с большей частью пояснениями дают представление о том, как использовать некоторые языки, фреймворки, библиотеки и т. Д. С его помощью можно получить много знаний в области науки о данных, соревнуясь с экспериментальными специалистами по данным. У команды Kaggle также есть блог, где они регулярно транскрибируют интервью с конкурентами, а также другие технические статьи.

Встречи. Париж известен своей экосистемой искусственного интеллекта с множеством компаний и экспертов. Они часто участвуют в митапах в Париже в качестве спикеров. Большая часть культуры искусственного интеллекта, которую я приобрел во время стажировки, связана с моим участием на некоторых встречах, связанных с наукой о данных.

Самым известным из них, очевидно, является Парижское машинное обучение с самой большой сетью, насчитывающей более 6000 участников. Спикеры, как правило, являются опытными экспертами и выступают с высококачественными докладами о прикладном или теоретическом машинном обучении. В рамках той же тенденции, Deep Learning Paris - это больше о современных теориях, но я видел потрясающих ораторов, которые хорошо объясняют даже самые сложные вещи. Точно так же Paris Intelligence Artificielle и ParisAI очень хороши с той особенностью, которая, судя по тому, что я видел, больше сосредоточена на проектах и ​​проблемах высокого уровня.

Kaggle Paris Meetup - также отличное место, чтобы получить объяснения о новейших алгоритмах обучения и о том, как они работают. Спикеры обычно углубляются, чтобы понять, какую роль играют гиперпараметры. Цель этой группы Meetup - рассказать, как добиться максимальной точности и участвовать в соревнованиях Kaggle. Там вы можете встретиться с ведущими конкурентами, которые поделятся своими секретами разработки функций и конфигурации модели.

Заключение

Это основные моменты, которые я усвоил. Но этот контент может быстро устареть из-за новых передовых методов, новых требований к профессиональным навыкам, новых способов изучения науки о данных. Тем не менее, самым важным после 7 месяцев работы в качестве стажера были личные размышления о себе. Это был очень открытый опыт, который сделал меня определенно другим и даже большим энтузиастом в области науки о данных и особенно в области машинного обучения.

Я хочу поблагодарить команду craft ai за радушный прием. Они не только наделили меня обширными знаниями в области информатики и машинного обучения, но и сразу же возложили на меня полезные обязанности.