TRAINING DATA JORNAL  
Переводы

7 способов получить качественные размеченные данные для машинного обучения

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

Любой data scientist знает, что необученная ML модель бесполезна. Без высококачественных размеченных данных для обучения контролируемое, обучение разваливается; при этом невозможно гарантировать, что модели смогут прогнозировать, классифицировать или каким-то иным образом анализировать интересующее нас явление с хоть какой-нибудь точностью.


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

Однако разметка — это неблагодарная работа, которой большинство data scientists-ов занимается только в случае абсолютной необходимости. В рейтинге задач data science разметка данных для обучения по престижности находится где-то в самом низу. В экосистеме data science разметка получила (вероятно, несправедливо) репутацию низкоквалифицированной работы для «синих воротничков». Или, как показано в этом забавном эпизоде последнего сезона сериала HBO «Кремниевая долина», разметка данных для обучения — это рутина, которой бессовестный data scientist может заставить бесплатно заниматься ничего не подозревающих юных студентов колледжа.

Из-за всего этого складывается ошибочное впечатление, что data scientist не может получить приемлемых данных для обучения, если не передаст задачу разметки на аутсорс какой-нибудь «фабрике» низкоквалифицированного труда от мира высоких технологий. Это очень неправильное впечатление, потому что, как я говорил в колонке Pattern Curators of the Cognitive Era, наряду с рутинной оценкой, которую сможет выполнить любой из нас (например, «хот-дог перед нами или не хот-дог»), для разметки могут понадобиться мнения очень квалифицированных в соответствующей области специалистов (например, онкологов, решающих, говорят ли результаты биопсии о наличии злокачественных тканей).

Как сказано в этом посте на Medium, монотонная работа — не единственный способ получения и разметки данных для обучения. Его автор Расмус Рот замечает, что есть и другие подходы для создания размеченных обучающих данных, цена которых вполне будет приемлема для вашего бюджета data science. Ниже я вкратце расскажу об этих способах:

  1. Перепрофилирование уже имеющихся данных для обучения и разметки: наверно, это самый дешёвый, простой и быстрый подход для обучения, если считать, что область новой задачи обучения значительно схожа с областью исходной задачи. При выборе такого подхода инструменты и методики трансферного обучения (transfer learning) могут помочь вам в определении того, какие элементы исходного набора данных можно перепрофилировать под новую область моделирования.
  2. Сбор собственных данных для обучения и разметки из бесплатных ресурсов: веб, социальные сети и другие онлайн-источники переполнены данными, которые можно собирать при наличии нужных инструментов. Как я подчеркнул в колонке для Dataversity, в нашу эру когнитивных вычислений из различных источников можно получать потоки текстов на естественном языке, общественных мнений и других данных для обучения. Если у вас есть краулер данных, то это может быть хорошим вариантом для получения наборов обучающих данных вместе с соответствующей разметкой из исходного контента и метаданных. Однако в процессе оценки пригодности собранных данных для обучения модели вам придётся справляться с различными проблемами, связанными с владением данными, их качеством, семантикой, выборками и так далее.
  3. Изучение уже размеченных публичных наборов данных: сообщества open-source и даже различные коммерческие поставщики предоставляют множество бесплатных данных. Data scientist-ам следует проверять, подойдут ли какие-то из этих данных по крайней мере для первоначального обучения моделей. В идеале этот бесплатный набор данных должен быть уже размечен таким образом, чтобы пригодиться в вашей задаче обучения. Если он не имеет разметки, то вам придётся найти наиболее экономный способ её создания.
  4. Многократное обучение моделей на всё более качественных наборах данных с разметкой: ваших собственных объёмов данных может быть недостаточно для обучения моделей. Для начала обучения можно предварительно обучаться на свободных публичных данных, которые хотя бы приблизительно близки к вашей области. Ещё лучше, если в этих бесплатных наборах данных есть приемлемая разметка. Затем можно будет повторно обучить модель на размеченном наборе данных меньшего объёма, но большего качества, непосредственно связанного с задачей, которую вы стремитесь решить. В процессе многократного обучения модели на всё более качественных наборах данных результаты могут позволить вам более точно настраивать конструирование признаков, классы и гиперпараметры модели. Этот повторяющийся процесс может дать вам понимание того, что стоит приобрести другие, более качественные наборы данных или обеспечить более качественную разметку для последующих этапов обучения, чтобы дальше совершенствовать модель. Однако стоит учитывать, что для такого итеративного совершенствования могут требоваться всё более дорогие наборы обучающих данных и сервисы разметки.
  5. Использование краудсорсинговых сервисов разметки: возможно, у вас недостаточно персонала для разметки своих данных для обучения. Или он слишком занят/его время дорого для того, чтобы использовать его в разметке. Или ваших работников недостаточно для достаточно быстрой разметки большого объёма данных для обучения. В такой ситуации, если позволяет бюджет, можно отдать задачи разметки на краудсорсинг в коммерческие сервисы наподобие Amazon Mechanical Turk или CrowdFlower. Передача разметки на аутсорс может быть гораздо более масштабируемой задачей, чем выполнение её внутри компании, однако взамен вы частично потеряете контроль над качеством и целостностью получившейся разметки. С другой стороны, эти сервисы обычно используют высококачественные инструменты разметки, упрощающие разметку, повышающие её качество и эффективность по сравнению с обработкой внутри компании.
  6. Внедрение задач разметки в онлайн-приложения: когнитивные способности человека — безграничный ресурс, который можно использовать для задач разметки. Например, популярным решением для обучения моделей распознавания изображений и текста стало встраивание данных для обучения в CAPTCHA, которые часто применяются при двухфакторной аутентификации. Схожим образом можно внедрять данные для обучения в геймифицированные приложения, мотивирующие пользователей распознавать, классифицировать и иным образом комментировать изображения, текст, объекты и другие элементы.
  7. Использовать сторонние модели, предварительно обученные на размеченных данных: многие задачи обучения уже решались достаточно хорошими моделями, уже обученными на достаточно хороших наборах данных, которые, предположительно, были адекватно размечены перед обучением соответствующих моделей. Существует множество возможных источников заранее обученных моделей, в том числе учёные-исследователи, коммерческие поставщики и сообщества data science с данными в open-source. Помните, что полезность таких моделей будет снижаться, если область задачи обучения, набор признаков или сама задача со временем отдаляются от исходных.

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

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