В предыдущем посте мы обсудили основы машинного обучения. В этом посте мы поговорим о том, что на самом деле происходит в проекте машинного обучения.

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

В этом посте мы познакомим вас с основами работы типичной среды машинного обучения.

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

Давайте углубимся в каждый из этих этапов проекта машинного обучения, используя тот же пример, с которого мы начали в нашем первом сообщении в блоге, чтобы узнать, сколько стоит мой дом?

Этап 1: обработка данных

Обработка данных состоит из трех частей:

Получить данные

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

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

Чистые данные

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

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

Преобразовать данные

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

На заключительном этапе обработки данных о ценах на жилье вы конвертируете такие данные, как цены в миллионах в доллары, адреса в координаты геолокации, количество ванных комнат вдвое, как 2,5 или 3,5 вместо «2 и a. половина". После этих преобразований данные будут доступны для чтения нашим алгоритмам.

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

Этап 2: экспериментирование

После того, как данные готовы в удобоваримом формате, начинается самое сердце проекта машинного обучения - обучение и оценка моделей. Кстати, что такое модель?

Модель - это результат этапа обучения, который фиксирует шаблоны, которые используются для ответа на ваш вопрос.

Модель поезда

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

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

Оценить модель

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

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

Этап 3: развертывание

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

Интегрировать

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

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

Мониторинг и обновление

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

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

Заключение

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

В наших будущих публикациях мы познакомим вас с фактической реализацией этих шагов и примеров с использованием таких фреймворков, как tensorflow, MXNet, Caffe и torch.