(И нет, «мы все собираем» - это не стратегия)

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

1: Я решил. Я делаю татуировку.
2: Правда? Вы уверены?
1: Да! Почему нет? Они в моде и отлично смотрятся! Я хочу получить дракона на руку или, может быть, тигра на спине.
2: Да, но это то, что у тебя будет навсегда! Они используют несмываемые чернила, которые можно удалить только с помощью лазера. Вдобавок я слышал, что это очень больно!
1: Правда?
2: Конечно! Они используют эту машину с иглой, которая протыкает вашу кожу и вводит чернила.
1: Может, мне просто проколоть язык!

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

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

Начнем с просмотра набора тестов. Что еще более важно, давайте поговорим о распределении тестового набора 2624:

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

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

Видите курс «финансы»? Всего 76 образцов из более чем 2600 (или около 3%). И все же к нашему последнему циклу обучения финансы имели лучшую точность, лучше, чем классы с почти 900 записями, на которых наша модель могла учиться.

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

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

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

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

В реальном случае использования Voyage мы обнаружили, что их модель жадна до данных о пешеходах. Но подумайте, что это означает с точки зрения бизнеса: поскольку модели нужны данные о пешеходах, они могут просто выйти и собрать больше! Это означает, что меньше времени просиживать в пробке на шоссе и больше времени ехать по городу, находя данные, полные людей, идущих вокруг, вместо машин на холостом ходу (хотя даже в этом случае не все пешеходы здесь одинаковы. Один человек в кадре легче изучить и менее информативно, чем кадр с двумя людьми, идущими бок о бок с некоторой окклюзией). Дело в том, что понимание того, что модель информирует, может помочь в сборе данных и позволить им сэкономить массу ресурсов, одновременно улучшая свою модель благодаря этому.

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

Потому что, давайте посмотрим правде в глаза, у многих наших организаций действительно нет отлаженной стратегии сбора данных. Стратегия обычно такова: «мы должны собрать все данные». И, честно говоря, это идеально (и неотъемлемо) для некоторых приложений (например, систем рекомендаций). Но для большинства практиков машинного обучения понимание того, какие данные наиболее полезны для их моделей, означает лучшее понимание процесса обучения этой модели, более быстрое достижение более высокой точности и расстановку приоритетов в сборе и отслеживании того, что наиболее важно. Это означает лучшую производительность за меньшее время и за меньшие деньги. И это никогда не было плохой идеей.