Организуем разметку данных для машинного обучения: методики и инструменты

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Если бы у data science существовал собственный зал славы, отдельная часть его нужно было бы посвятить разметке. Памятник ответственным за разметку выглядел бы как атлант, держащий огромный камень, символизирующий их трудоёмкий, имеющий множество тонкостей труд. Собственной стелы заслужила бы и база данных изображений ImageNet. За девять лет её контрибьюторы вручную разметили более 14 миллионов изображений. Даже представлять этот труд утомительно.

Хотя разметка и не является особо интеллектуальным трудом, она всё равно остаётся серьёзным бизнесом. Разметка — неотъемлемый этап предварительной обработки данных контролируемого обучения. Для этого стиля обучения моделей используются исторические данных с заранее заданными целевыми атрибутами (значениями). Алгоритм может находить целевые атрибуты только если их указал человек.

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

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

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

Методологии разметки


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

ТАБЛИЦА

Разметка внутри компании


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

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

Для построения адекватной модели необходимо собрать и разметить как минимум 90 тысяч отзывов. Если считать, что для разметки одного комментария сотруднику понадобится 30 секунд, при средней 8-часовой дневной смене ему понадобится потратить 750 часов или почти 94 смены, иными словами, три месяца. Учитывая, что медианная ставка за час работы для data scientist-а в США составляет 36,27 доллара, разметка будет стоить вам 27202,5 доллара.

Можно упростить разметку, автоматизировав её полуконтролируемым обучением. Для этого стиля обучения используются и размеченные, и неразмеченные данные. Часть набора данных (допустим, 2000 отзывов) можно разметить для обучения модели классификации classification model. Затем эта многоклассовая модель обучается на оставшейся части неразмеченных данных для поиска целевых значений — положительной, отрицательной и нейтральной тональности.

Для реализации проектов в различных отраслях, например, в финансовой, космической, медицинской или энергетической, обычно требуется оценка данных специалистами. Команды data science консультируются со специалистами отрасли о принципах разметки. В некоторых случаях специалисты размечают наборы данных самостоятельно.

Для нидерландского стартапа Sleep.ai компания Altexsoft разработала приложение DoIGrind, предназначенное для диагностики и мониторинга бруксизма. Бруксизм — это самопроизвольное скрежетание зубами или сжимание челюстей во время сна или бодрствования. Приложение основано на алгоритме классификации шума, обученного на наборе данных, состоящем из более 6 тысяч аудиосэмплов. Для поиска записей, связанных со звуками скрежетания зубами, клиент сам прослушал сэмплы и сопоставил их с атрибутами. Распознавание этих специфических звуков необходимо для извлечения атрибутов.

Преимущества

Предсказуемо хорошие результаты и контроль за процессом. Если вы доверяете своим сотрудникам, то не будете покупать кота в мешке. Data scientist-ы и другие специалисты компании заинтересованы в максимально качественном результате, потому что именно они будут работать с размеченным набором данных. Также вы можете контролировать производительность команды, чтобы убедиться, что она укладывается в график проекта.

Недостатки

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

Краудсорсинг


Зачем тратить лишнее время на найм людей, если можно сразу взяться за дело при помощи краудсорсинговой платформы?

Amazon Mechanical Turk (MTurk) — одна из ведущих платформ, предоставляющих услуги рабочей силы на заказ. Клиенты регистрируются на ней как заказчики, создают свои проекты как один или несколько HIT (Human Intelligence Task) на веб-сайте Mechanical Turk Requester. Сайт предоставляет пользователям простой интерфейс для создания задач разметки. Представители MTurk заявляют, что благодаря обширному сообществу работников сервиса разметка тысяч изображений вместо дней или недель занимает всего несколько часов.

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

Преимущества

Быстрые результаты. Краудсорсинг — разумный выбор для проектов с плотным графиком и крупными простыми наборами данных, требующими использования мощных инструментов разметки. Например, задачи категоризации изображений легковых автомобилей для проектов компьютерного зрения, не потребуют много времени и могут выполняться работниками с обычным уровнем знаний. Скорости также можно добиться, разбив проект на микрозадачи, чтобы фрилансеры могли работать над ними одновременно. Именно так организует рабочий процесс Clickworker. Клиенты MTurk сами должны разбивать проекты на этапы.

Доступность по цене. Заказ выполнения задач разметки на этих платформах не будет стоить вам целого состояния. Например, Amazon Mechanical Turk позволяет задавать награду за каждую задачу, что даёт заказчикам свободу выбора. Например, при награде в 0,05 доллара за каждый HIT и одном документе на каждый элемент вы сможете разметить 2000 изображений за 100 долларов. Учитывая комиссию в 20% за HIT, состоящие из девяти или менее задач, окончательная сумма за малый набор данных будет равна 120 долларам.

Недостатки

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

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

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

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


Понятная иллюстрация того, как надо и не надо выполнять разметку изображений

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

Аутсорсинг конкретным людям


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

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

Если вы хотите публиковать объявления о работе в социальных сетях, то первым делом в голову приходит сайт LinkedIn с его 500 миллионами ползователей. Рекламу работы можно публиковать на странице компании или в соответствующих группах. Благодаря репостам, лайкам и комментариям вашу вакансию увидит больше заинтересованных пользователей.

Посты в Facebook, Instagram и Twitter тоже могут помочь быстрее найти команду специалистов.

Преимущества

Вы знаете, кого нанимаете. Чтобы убедиться, что претенденты сделают работу правильно, можно проверить их навыки при помощи тестов. Учитывая, что при аутсорсинге вы нанимаете команду малого или среднего размера, у вас будет возможность контролировать её работу.

Недостатки

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

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

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

Аутсорсинг компаниям


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

Аутсорсинговые компании наподобие CloudFactory, Mighty AI, LQA и DataPure в основном размечают наборы данных для обучения моделей компьютерного зрения. CrowdFlower и CapeStart также проводят анализ тональности. CrowdFlower позволяет анализировать текстовые, а также графические и видеофайлы. Кроме того, клиенты CrowdFlower могут выбрать использование более сложного способа анализа тональности. Пользователи могут задавать наводящие вопросы, чтобы понять, почему люди реагируют на продукт или сервис определённым образом.

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


CloudFactory позволяет рассчитывать цену услуг в соответствии с количеством рабочих часов

Преимущества

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

Недостатки

Это дороже, чем краудсорсинг. Хотя большинство компаний не указывает стоимость услуг, пример ценообразования CloudFactory даёт нам понять, что их услуги чуть дороже, чем использование платформ краудсорсинга. Например, разметка 90000 отзывов (если цена за каждую задачу составляет 0,05 доллара) на платформе краудсорсинга стоила бы 4500 долларов. Найм профессиональной команды из 7-17, не включая руководителя, может стоить 5165–5200 долларов.

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

Синтетическая разметка


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

Существует три типа генеративных моделей: Generative Adversarial Networks (GAN), Autoregressive models (AR) и Variational Autoencoders (VAE).

Generative Adversarial Networks. Модели GAN используют генеративные и дискриминативные сети во фреймворке игры с нулевой суммой. Этот фреймворк представляет собой соревнование, в котором генеративная сеть создаёт сэмплы данных, а дискриминативная сеть (обученная на реальных данных) пытается определить, реальны они (взяты из распределения настоящих данных) или сгенерированы (взяты из распределения модели). Игра продолжается до тех пор, пока генеративная модель не получит достаточно обратной связи для воссоздания изображений, неотличимых от реальных.

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

Variational Autoencoders. VAE создают новые сэмплы данных из входящих данных при помощи методов кодирования и декодирования.

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

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

Преимущества

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

Использование неконфиденциальных данных. Data scientist-ам не нужно запрашивать разрешение на использование таких данных.

Недостатки

Необходимость высокопроизводительных вычислительных мощностей. Для рендеринга и дальнейшего обучения моделей при такой методике требуются большие вычислительные ресурсы. Одним из вариантов решения проблемы является аренда облачных сервисов Amazon Web Services (AWS), Google Cloud Platform, Microsoft Azure, IBM Cloud, Oracle или других платформ. Можно пойти другим путём и получить дополнительные вычислительные ресурсы на децентрализованных платформах наподобие SONM.

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

Программирование данных


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

Эта методология, называемая программированием данных (data programming) заключается в написании функций разметки — скриптов, программно размечающих данные. Разработчики признают, что получающаяся разметка может быть менее точной, чем при ручном процессе, однако сгенерированный программой «шумный» набор данных можно применять для слабого контроля (weak supervision) высококачественных готовых моделей (например, создаваемых в TensorFlow или в других библиотеках).

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

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

Преимущества

Меньшая потребность в разметке вручную. Использование скриптов и движка анализа данных позволяет автоматизировать разметку.

Недостатки

Меньшая точность разметки. Может страдать качество программно размеченного набора данных.

Инструменты разметки наборов данных


Существует широкий ассортимент готовых браузерных и десктопных инструментов разметки. Если их функциональность соответствует вашим потребностям, то можно не заниматься затратным по времени и финансам процессом разработки ПО, подобрав наиболее подходящее готовое решение.

Some of the tools include both free and paid packages. A free solution usually offers basic annotation instruments, a certain level of customization of labeling interfaces, but limits the number of export formats and images you can process during a fixed period. In a premium package, developers may include additional features like APIs, a higher level of customization, etc.

Image and video labeling


Let’s start with some of the most commonly used tools aimed at the faster, simpler completion of machine vision tasks.


Annotorious. Annotorious is the MIT-licensed free web image annotation and labeling tool. It allows for adding text comments and drawings to images on a website. The tool can be easily integrated with only two lines of additional code. Users can learn about the tool’s features and complete various annotation tasks in the Demos section.


annotorious_basic_example1


Demo where a user can make a rectangular selection by dragging a box and saving it on an image


Just the Basics demo shows its key functionality — image annotation with bounding boxes. OpenLayers Annotation explains how to process maps and high-resolution zoomable images. With the beta OpenSeadragon feature, users can also label such images by using Annotorious with the OpenSeadragon web-based viewer.


Developers are working on the Annotorious Selector Pack plugin. It will include image selection tools like polygon selection (custom shape labels), freehand, point, and Fancy Box selection. The latter tool allows users to darken out the rest image while they drag the box.


Annotorious can be modified and extended through a number of plugins to make it suitable for a project’s needs.


Developers encourage users to evaluate and improve Annotorious, then share their findings with the community.


LabelMe. LabelMe is another open online tool. Software must assist users in building image databases for computer vision research, its developers note.


When we talk about an online tool, we usually mean working with it on a desktop. However, LabelMe developers also aimed to deliver to mobile users and created the same name app. It’s available on the App store and requires registration.


Two galleries — the Labels and the Detectors — represent the tool’s functionality. The former is used for image collection, storage, and labeling. The latter allows for training object detectors able to work in real time.


Users can also download the MATLAB toolbox that is designed for working with images in the LabelMe public dataset. Developers encourage users to contribute to a dataset. Even a small input counts, they say.


LabelMe_desktop


The tool’s desktop version with labeled image from the dataset


Sloth. Sloth is a free tool with a high level of flexibility. It allows users to label image and video files for computer vision research. Face recognition is one of Sloth’s common use cases. So, if you need to develop a software able to track and exactly identify a person from surveillance videos or to define whether he or she has appeared in recordings before, you can do it with Sloth.


Users can add an unlimited number of labels per image or video frame where every label is a set of key-value pairs. The possibility of adding more key-value pairs allows for more detailed file processing. For example, users can add a key “type” that differentiates point labels from the labels for the left or right eye.


Sloth supports various image selection tools, such as points, rectangles, and polygons. Developers consider the software a framework and a set of standard components. It follows that users can customize these components to create a labeling tool that meets their specific needs.


VoTT. Visual Object Tagging Tool (VoTT) by Windows allows for processing images and videos. Labeling is one of the model development stages that VoTT supports. This tool also allows data scientists to train and validate object detection models.


Users set up annotation, for example, make several labels per file (like in Sloth), and choose between square or rectangle bounding boxes. Besides that, the software saves tags each time a video frame or image is changed.


Other tools worth checking out include Labelbox, Alp’s Labeling Tool, Comma Coloring, imglab, Pixorize, VGG Image Annotator (VIA), Demon image annotation plugin, FastAnnotationTool, RectLabel, and ViPER-GT.


Text labeling


These tools will streamline the labeling workflow for NLP-related tasks, such as sentiment analysis, entity linking, text categorization, syntactic parsing and tagging, or parts-of-speech tagging.


Labelbox mentioned above can also be used for text labeling. Besides providing basic labeling options, the tool allows for development, installation, and maintenance of custom labeling interfaces.


Stanford CoreNLP. Data scientists share their developments and knowledge voluntarily and for free in many cases. The Stanford Natural Language Processing Group representatives offer a free integrated NLP toolkit, Stanford CoreNLP, that allows for completing various text data preprocessing and analysis tasks.


Bella. Worth trying out, bella is another open tool aimed at simplifying and speeding up text data labeling. Usually, if a dataset was labeled in a CSV file or Google spreadsheets, specialists need to convert it to an appropriate format before model training. Bella’s features and simple interface make it a good substitution to spreadsheets and CSV files.


A graphical user interface (GUI) and a database backend for managing labeled data are bella’s main features.


A user creates and configures a project for every labeling dataset he or she wants to label. Project settings include item visualization, types of labels (i.e. positive, neutral, and negative) and tags to be supported by the tool (i.e. tweets, Facebook reviews).


Tagtog. Tagtog is a startup that provides the same name web tool for automated text annotation and categorization. Customers can choose three approaches: annotate text manually, hire a team that will label data for them, or use machine learning models for automated annotation.


tagtog_manual_annotation


Editor for manual text annotation with automatically adaptive interface


Both data science beginners and professionals can use Tagtog because it doesn’t require knowledge of coding and data engineering.


Dataturks. Dataturks is also a startup that provides training data preparation tools. Using its products, teams can perform such tasks as parts-of-speech tagging, named-entity recognition tagging, text classification, moderation, and summarization. Dataturks presents “upload data, invite collaborators, and start tagging” workflow and allows clients to forget about working with Google and Excel spreadsheets, as well as CSV files.


Three business plans are available for users. The first package is free but provides limited features. Two others are designed for small and large teams.


Besides text data, tools by Dataturks allow for labeling image, audio, and video data.


Specialists also recommend checking such services and tools as brat and SUTDAnnotator.


Audio labeling


You’ll need effective and easy to use labeling tools to train high-performance neural networks for sound recognition and music classification tasks. Here are some of them.


Praat. Praat is a popular free software for labeling audio files. Using Praat, you can mark timepoints of events in the audio file and annotate these events with text labels in a lightweight and portable TextGrid file. This tool allows for working with both sound and text files at the same time as text annotations are linked up with the audio file. Data scientist Kristine M. Yu notes that a text file can be easily processed with any scripts for efficient batch processing and modified separately from an audio file.


Speechalyzer. This tool’s name, Speechalyzer, speaks for itself. The software is designed for manual processing of large speech datasets. To show an example of its high performance, developers highlight they’ve labeled several thousand audio files in almost real time.


EchoML. EchoML is another tool for audio file annotation. It allows users to visualize their data.


As there are many tools for labeling all types of data available, choosing the one that fits your project best won’t be a simple task. Data science practitioners suggest considering such factors as setup complexity, labeling speed, and accuracy when making a choice.


Conclusion


Obtaining high-quality labeled data is a development barrier that becomes more significant when complex models must be built.


With a variety of annotation tools available online, the main challenge for a data science team is to estimate which software will work best for a specific project in terms of functionality and cost.


In addition to manual labeling approaches, data scientists have found new methods that partly automate the process and reduce the need for human involvement. We believe the development of these approaches will be the main trend in the near future.

Источник: https://habr.com/ru/post/571596/


Интересные статьи

Интересные статьи

12 выпусков позади, значит пора немного поменять формат, но внутри вас всё так же ждут исследования, демонстрации, открытые модели и датасеты. Встречайте новый выпуск подборки материа...
Привет, Хабр! Сегодня будет продолжение темы Кластеризация и классификация больших Текстовых данных с помощью машинного обучения на Java. Данная статья является продолжен...
Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционн...
Несмотря на повсеместное распространение сетей Ethernet, технологии связи на основе DSL не теряют своей актуальности и по сей день. До сих пор DSL можно встретить в сетях последней ми...
Мы продолжаем публиковать самые интересные доклады RAIF, ежегодного форума по искусственному интеллекту, организованному «Инфосистемы Джет». Сегодня хотим поделиться рассказом доктора физико-...