Второй шаг к стандартизации ваших экспериментов
У вас есть четко сформулированная постановка задачи. Он ограничен, ваша задача и метрики оценки прекрасно определены. Я знаю, о чем ты думаешь…
Выдумки да, любители данных, давайте сделаем это!
Однако подождите всего одну секунду. Я знаю, как вы испытываете искушение начать забрасывать все данные всеми алгоритмами. Но я хочу предупредить вас, как и Эндрю Нг предупредил меня…
Это рецепт бесконечных страданий.
Да все верно. Бесконечные, ужасные страдания.
На предприятии почти всегда проблема, над которой вы работаете, уникальна для вашего варианта использования, ваших данных и вашего определения хорошей производительности. Если не существует компании, у которой есть точно такая же бизнес-модель, клиенты, продукты и т. д., что и у вас, то не может быть универсального определения того, как выглядит хорошая модель или что хорошая производительность определяется.
Как я должен узнать, насколько хороша моя модель и является ли машинное обучение правильным подходом к решению этой конкретной проблемы?
Ваши знания и опыт в предметной области, несомненно, дают вам достаточную интуицию, чтобы сформулировать некоторую гипотезу о том, какого типа производительность вы могли бы достичь, но если вы не работаете с набором тестовых данных, вы не будете знать, является ли эта производительность чем-то. вы можете на самом деле достичь или просто некоторые фантазии.
Полезно предполагать, что производительность модели является относительной. Насколько хорошо работает модель, имеет смысл только с точки зрения ее производительности по сравнению с другой моделью, обученной на тех же данных. Вот почему полезно иметь значимую точку отсчета для сравнения.
И эта контрольная точка называется базовым уровнем.
Базовая модель — это самая простая модель, которую вы можете построить для создания прогнозов для вашего варианта использования.
Базовая модель обеспечивает точку сравнения с любыми продвинутыми (или совершенно другими) методами, с которыми мы можем поэкспериментировать.
Как много раз подчеркивал легендарный Джейсон Браунли в своем блоге Мастерство машинного обучения, базовая модель такова:
Простой: метод, который практически не требует обучения или интеллекта.
Быстрый: метод, который быстро реализуется и не требует вычислений для прогнозирования.
Повторяемый: метод, который является детерминированным, что означает, что он дает ожидаемый результат при одних и тех же входных данных.
Легко забыть, что модель машинного обучения — это небольшая часть гораздо большей системы.
Это маленькая деталь, которая играет невероятно важную роль, подобно системе GPS в вашем автомобиле, в том смысле, что она помогает вам добраться туда, куда вам нужно.
Если вы точно не знаете, куда направляетесь, без этого вы заблудитесь.
Ваша модель построена на строительных лесах.
Леса, которые позволяют быстро проверять ваши гипотезы, выявлять слепые зоны в ваших критериях успеха, проводить эксперименты, чтобы вы могли найти разумные точки сравнения для будущих моделей. Это каркас, позволяющий эффективно отслеживать и проводить эксперименты.
И построение базовой модели является важнейшим компонентом этой основы.
Какие типы базовых моделей следует попробовать?
Если вы хотите играть с забавными игрушками, начните со сложной модели. Если вы хотите решать проблемы и создавать продукты, начните с глупого. — Эммануэль Амайзен
Найти базовый уровень так же сложно, как вы себе это позволяете.
Вы можете начать с простого. Например, вы можете построить модель, использующую бизнес-логику или бюрократическую эвристику для прогнозирования. Вы можете построить тривиальную модель, которая предсказывает случайный результат, наиболее распространенное значение или среднее значение.
Это вполне разумные базовые показатели для не слишком систем.
В зависимости от типа проблемы, над которой вы работаете, простая модель не может служить осмысленной или полезной основой.
Для таких ситуаций у нас есть как минимум четыре других способа установить базовый уровень. В своем курсе Введение в машинное обучение в производстве Эндрю Нг предлагает использовать в качестве основы один из следующих вариантов:
- Производительность на уровне человека (оракул — то есть запрос человека, который может дать ответы).
- Литература, современное состояние или открытый исходный код.
- Быстрые и грязные реализации.
- Производительность старой системы.
Суть, которую подчеркивает Эндрю: базовые показатели дают вам представление о том, что возможно, о нижней границе неустранимой ошибки.
«Другими словами, на что лучше всего можно надеяться с точки зрения производительности в этой задаче» — Эндрю Нг.
Хотите узнать больше об исходных условиях и стандартизации эксперимента? Присоединяйтесь к нам в рабочее время!
Вы задаетесь вопросом, когда имеет смысл использовать оракул — он же производительность на уровне человека (HLP) — в качестве основы?
Было бы полезно иметь некоторые передовые методы, которые помогут нам определить, когда использовать производительность на уровне человека в качестве базового уровня. В своем курсе Эндрю Нг упоминает, что лучшие методы различаются в зависимости от структуры данных. В машинном обучении у нас обычно есть два типа данных: (полу)структурированные и неструктурированные. Оказывается, человеческая производительность является более полезной основой для неструктурированных данных, которые, как правило, представляют собой изображения, аудио, язык и вообще вещи с которыми мы обычно сталкиваемся в реальном мире.
Люди — с нашими глазами, ушами, ртом и мозгом — эволюционировали, чтобы хорошо интерпретировать эти типы данных, поэтому при работе с неструктурированными данными используйте HLP в качестве основы.
При работе со структурированными данными все обстоит иначе.
Трудно получить целостное представление о ваших данных, просто взглянув на таблицу данных, поэтому мы часто полагаемся на визуализацию данных, чтобы понять, что содержится в табличных данных. Это потому, что люди не развивались вместе с электронными таблицами, базами данных SQL или большими двоичными объектами JSON. А поскольку мы не научились делать прогнозы с помощью электронных таблиц, HLP обычно менее полезен для структурированных данных.
Со структурированными данными используйте простые алгоритмы (константы, средние значения, линейные модели и т. д.) в качестве основы.
Давайте проведем мысленный эксперимент
Предположим, вы хотите развернуть модель, которая будет классифицировать отдел, в который должно автоматически направляться электронное письмо, когда клиент отправляет электронное письмо в вашу службу поддержки.
Вы хотите провести эксперимент, чтобы узнать, полезно ли решение машинного обучения для решения вашей проблемы. Первое, что нужно сделать, — это сформулировать гипотезу, например, «оптимизация показателя производительности X положительно влияет на ключевые показатели эффективности, которые нам важны».
Затем вы проводите эксперимент, развертывая две модели: подход, основанный на эвристике (т. е. сканирование электронной почты по определенным ключевым словам) и оракул на производственных данных (т. в теневом режиме предсказания фактически не используются).
Цель этого упражнения — помочь вам понять, как прогнозы вашей модели влияют на интересующий вас KPI.
Некоторые вопросы, которые следует рассмотреть на этом этапе:
- Что такое метрика «производительности модели» при использовании эвристики?
- Насколько близко эвристика приближает нас к нашей цели KPI?
- Является ли разрыв достаточно большим, чтобы мы могли оправдать использование машинного обучения, чтобы компенсировать разницу?
- Насколько близко должна быть производительность нашей модели к производительности оракула, чтобы положительно повлиять на наш KPI?
- В случаях, когда оракул может предоставить ответ золотого стандарта, если оракул не может повлиять на наш KPI, нужно ли нам менять наш подход?
- Нужно ли нам переосмысливать целевую переменную, которую мы пытаемся предсказать?
- Нужно ли нам изменить то, как наша модель взаимодействует с остальной частью системы или с нашими пользователями?
Подумав над этими вопросами и проведя эксперимент, предположим, что наша простая бизнес-эвристика предсказывает с точностью 65%, что означает увеличение нашего KPI на 2%. А поскольку наш человеческий оракул знает свое дело, он может предсказывать со 100% точностью, что мы можем перевести на 10% увеличение нашего KPI.
Хороший. У нас есть основания полагать, что повышение точности модели положительно влияет на наш KPI. Мы установили предварительный базовый результат.
Это также отличная возможность отслеживать тип данных, которые вы ожидаете от своей модели. Понимание того, как эти данные меняются со временем, даст представление о том, как часто эту модель придется переобучать. Как подчеркивает Эммануэль Амайзен в своем классическом посте о базовых показателях, базовый уровень помогает вам выявить следующие проблемы с вашими данными:
Какие классы труднее разделить. Для большинства задач классификации просмотр матрицы путаницы будет очень информативным для определения того, какие классы создают проблемы для вашей модели. Всякий раз, когда производительность особенно плоха для набора классов, стоит изучить данные, чтобы понять, почему.
Какой тип сигнала улавливает ваша модель. Большинство базовых показателей позволят вам извлечь важность функций, выявив, какие аспекты входных данных являются наиболее предсказуемыми. Анализ важности функций — отличный способ понять, как ваша модель принимает решения и чего ей может не хватать.
Какой сигнал отсутствует в вашей модели. Если есть определенный аспект данных, который интуитивно кажется важным, но который игнорируется вашей моделью, хорошим следующим шагом будет разработка функции или выбор другой модели, которая могла бы лучше использовать этот конкретный аспект ваших данных.
Обратите внимание, что это нормально, если ваши попытки установить базовый уровень приводят к паршивой метрике оценки.
Это просто означает, что у вас есть трудная проблема на ваших руках. Что оставляет много места для экспериментов и улучшений. Что имеет значение, так это невозможность добиться большего, чем исходный уровень.
Если вы не можете превзойти базовый уровень, у вас может возникнуть неразрешимая проблема, вам может понадобиться больше данных или другие данные вместе.
В приведенном выше примере нашей задачей становится найти модель, которая является точной более чем в 65 % случаев и обеспечивает не менее ›2 % положительного влияния на наш KPI.
Здесь вы проведете несколько экспериментов.
Вы можете добавлять или изменять функции, вы можете тестировать различные алгоритмы — начиная от простых и переходя к более сложным — вы можете экспериментировать с параметрами алгоритмов.
Экспериментируйте столько, сколько вам нужно. Просто обязательно отслеживайте каждый эксперимент вместе с выбранной вами оценочной метрикой, алгоритмом, его гиперпараметрами и архитектурой модели, потому что это итеративный процесс, и у вас есть свобода исследовать широкий спектр гипотез.
Этот процесс поможет вам определить, приближают ли ваши усилия вас к более эффективной модели.
Эта экспериментальная часть машинного обучения, на мой взгляд, самый интересный и творческий аспект.
Попытка найти наилучшую модель для данной постановки задачи может оказаться непростой задачей. Это может быстро превратиться в беспорядочный процесс проверки множества различных алгоритмов. Потеря следа процесса. И не помнить, какие функции, архитектуры или встраивания работали лучше всего.
Именно здесь такой инструмент, как Comet, становится бесценным, потому что он помогает вам отслеживать все эксперименты, которые вы проводите, чтобы вы могли сосредоточиться на создании лучшей модели для вашего варианта использования.
Я хотел бы услышать, что вы думаете об этом — комментарий ниже! И не стесняйтесь присоединиться к нашему бесплатному открытому сообществу Slack, чтобы делиться своими мыслями, задавать вопросы или получать отзывы о своих проектах!
Также обязательно ознакомьтесь с полной версией базового сеанса рабочего времени на нашем канале YouTube.
Примечание редактора. Heartbeat — это интернет-издание и сообщество, созданное участниками и посвященное предоставлению лучших образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Независимая от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по данным и командам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим нашим авторам и не продаем рекламу.
Если вы хотите внести свой вклад, перейдите к нашему призыву к участию. Вы также можете подписаться на получение наших еженедельных информационных бюллетеней (Еженедельник глубокого обучения и Информационный бюллетень Comet), присоединиться к нам в Slack и следить за Comet в Twitter и LinkedIn, чтобы получать ресурсы, события и многое другое, что поможет вам быстрее создавать лучшие модели машинного обучения.