Что такое машинное обучение? Мой ответ на этот вопрос со временем менялся.
Цель этого поста — показать, как инженеры по машинному обучению решают проблемы, пройдя через тематическое исследование. Если вы тесно сотрудничаете с инженерами по машинному обучению или сами стремитесь стать инженером по машинному обучению, продолжайте читать.
Модели машинного обучения в их наиболее распространенной форме сопоставляют входные данные с выходными. Это эквивалентно функции в программировании или функции в математике.
Мы используем машинное обучение, когда сопоставление входных данных с выходными не является простым. Рассмотрите возможность автоматической системы обмена сообщениями при звонке в банк. Вас приветствует голосовая подсказка.
Спасибо за звонок в банк! Чтобы подать заявку на кредитную карту, нажмите 1. Чтобы проверить баланс, нажмите 2…
ввод — это кнопка, которую нажимает вызывающий абонент. Вывод — это предпринятое действие. Есть конечные кнопки и конечные действия, и каждая кнопка имеет сопоставление 1-к-1 с действием. В этой ситуации автоматизированная система может хорошо функционировать по определенным правилам. Нет необходимости в машинном обучении. Что, если вместо кнопочного ввода система использует голосовой ввод?
Спасибо за звонок в банк! Могу я чем-нибудь помочь?
ввод — это голосовая подсказка. Эта голосовая подсказка может быть разной высоты, акцента, диалекта и включать в себя сложности языка. Существует бесконечно большое количество входных данных, которые необходимо сопоставить с действием output. Это сопоставление ввода и вывода не очевидно. Следовательно, здесь может быть полезна система машинного обучения. Более формально мы обсудим, как решить, следует ли двигаться вперед с системой машинного обучения, в следующем разделе.
Фреймворк для решения проблем
- Определите проблему с четкой целью. Преобразуйте расплывчатую проблему в утверждение «Учитывая входные данные, определяйте выходные данные».
- Количество входных и выходных данных: определите входные данные, которые мы можем использовать для потенциального прогнозирования выходных данных. Это вход и выход потенциальной модели.
- Принятие решений.Нужен ли нам подход к машинному обучению или достаточно системы, основанной на правилах? Есть ли у нас адекватные данные для обучения модели с приемлемой производительностью?
- Построить модель. Обучите и оцените модель по показателю производительности.
- Проверьте отраслевые предположения. Улучшает ли модель показатели, которые важны для отрасли?
В оставшейся части этого поста мы рассмотрим эти 5 шагов на примере.
Практический пример: оценка доставки с помощью Doordash
Doordash — служба доставки еды. Когда клиент размещает заказ, ему назначается доставщик, который забирает товар(ы) из ресторана и доставляет товар(ы) в порог клиента. За корпоративными стенами менеджер по продукту приходит к инженеру по машинному обучению с неясной проблемой
В то время, когда кто-то размещает заказ, нам нужно определить время, которое потребуется для доставки заказа, чтобы обеспечить удобство для пользователей.
Используя структуру, представленную выше, инженер по машинному обучению обдумает эту проблему с помощью 5 шагов.
Шаг 1: Определите проблему с четкой целью
Давайте перефразируем расплывчатое утверждение, чтобы сделать входные и выходные данные более ясными. Один из способов сформулировать эту проблему: «учитываяинформацию о заказе, определить время доставки».
Входными данными для нашей концептуальной модели является информация о заказе. Результатом будет расчетное время прибытия. Входные данные все еще расплывчаты, но общая система определена более четко, чем наша первоначальная проблема. Обратите внимание, что эта модель по-прежнему является концептуальной, поскольку ее (пока) не существует.
Шаг 2. Количественная оценка входных и выходных данных
Мы связываем информацию о заказе с факторами, которые можно запросить и измерить. И с помощью анализа мы проверяем, влияют ли эти факторы на время доставки.
Шаг 3: Принятие решений
Нужен ли нам подход к машинному обучению или достаточно системы, основанной на правилах?
Допустим, мы выполнили регрессионный анализ на шаге 2 и поняли, что местонахождение покупателя является одним из наиболее важных факторов, определяющих время доставки, но могут быть и другие факторы, от которых оно зависит. Построение системы, основанной на правилах, для определения времени доставки приводит к произвольным решениям.
Например, рассмотрим частичную логику потенциальной системы, основанной на правилах, справа. Ожидаемое время доставки увеличивается на 20%, если доставка осуществляется в часы пик с 11:00 до 15:00. Но выбор 20%, а точнее 17%, произволен. В идеале в таком сложном взаимодействии мы хотели бы определить факторы, которые могут повлиять на время доставки, и позволить наблюдаемым данным и статистической модели определять важность каждого фактора. Это именно то, что может сделать система, основанная на модели.
Есть ли у нас достаточные данные для обучения модели с приемлемой производительностью?
Adequate может иметь несколько значений:
- Качество данных. Данные имеют узнаваемые шаблоны, но не слишком неустойчивы.
- Количество данных: данных много; достаточно для распознавания образов.
Без качества и количества данных у нас не было бы адекватных данных для обучения модели машинного обучения.
Шаг 4: Построение модели
Давайте предположим, что на шаге 3 существуют сложные взаимодействия между различными факторами и временем до покупки, что требует системы, основанной на модели. И мы предполагаем, что существует достаточно качественных и количественных данных для обучения системы, основанной на модели. Следующим шагом является фактическое построение этой системы на основе модели. Статистические модели строятся в два основных этапа: этап обучения и этап оценки.
На этапе обучения данные обучения используются для обучения модели распознаванию шаблонов. на этапе оценки данные оценки используются для понимания того, насколько хорошо модель научилась. В этом случае модель можно было бы обучить, используя заказы до 1 месяца назад, и ее можно оценить, используя заказы, которые произошли после этого в прошлом месяце. Некоторые из показателей, которые стоит отслеживать, включают Насколько ошибочна модель в прогнозировании времени доставки? Примером метрики, количественно определяющей эту ошибку, является средняя абсолютная ошибка.
Шаг 5. Проверка отраслевых предположений
Улучшает ли модель важные для отрасли показатели?
Иногда метрики, которые оптимизирует модель, не совсем соответствуют требованиям отрасли. Показатель, который оптимизирует модель, обеспечивает точность прогнозируемого времени доставки. В то время как отраслевая метрика может требовать, чтобы прогнозируемое время доставки не превышало фактическое время доставки. Эти показатели не совсем совпадают. Например, модель будет рассматривать 5-минутную ошибку в любом направлении как одинаковую. Но для индустрии прогноз на 5 минут раньше должен наказываться сильнее. На самом деле, если бы мы знали об этом отраслевом метрическом требовании, это потенциально могло бы изменить реализацию решения с обычного регрессионного анализа, например, на квантильную регрессию.
Чтобы узнать больше о квантильной регрессии, вот сопутствующее видео о квантильной регрессии, которое проведет вас через код. Суть в том, чтобы показать, что важно ориентироваться на то, что отрасль хочет оптимизировать, и гарантировать, что модель выполняет то же самое.
Это будет сделано для тематического исследования и 5 шагов.
Заключение
В этом посте мы представили машинное обучение как инструмент для решения проблем. Позже мы подошли к проблеме так, как это сделал бы инженер по машинному обучению. Надеюсь, это даст вам новый взгляд на подход к любым проблемам, над которыми вы, возможно, работаете и думаете с помощью машинного обучения.
Спасибо, что дочитали до конца! Пожалуйста, следите за дальнейшими техническими сообщениями в ближайшее время. Кроме того, чтобы получить технические ресурсы по всем темам, связанным с машинным обучением и наукой о данных, зайдите на Канал Code Emporium Youtube и подпишитесь!