Что не так с i.i.d. оценки? Как мы определяем возможности? Как мы создаем тесты? Может ли модель быть обобщена на данные за пределами распределения?

Вдохновленный двумя статьями [1, 2], я в последнее время много читал и много думал о тестировании моделей с машинным обучением. Кажется, растет тенденция к тестированию возможностей модели в дополнение к простому измерению ее средней точности прогноза, что напоминает мне много модульного тестирования и сильно меняет то, как думать об оценке модели.

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

Традиционные оценки точности и их допущения

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

Прежде всего, при оценке моделей мы не проверяем, является ли модель правильной для всех входных данных (обычно у нас даже нет спецификации, чтобы установить, что может означать правильная), а проверяем, является ли она правильной. подходит для информации, полученной от целевой группы, или является ли это полезным для решения проблемы. Помните, что все модели неправильные, но некоторые полезны »- мы пытаемся выделить полезные. Модель с точностью 95% может соответствовать проблеме достаточно хорошо, а 5% ошибок могут быть приемлемыми для полезного решения проблемы, например, обнаружения рака на радиологических изображениях.

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

Ключевое предположение в большей части теории и практики машинного обучения (не всегда явное; мне потребовалось некоторое время, чтобы осознать) заключается в том, что данные для обучения и тестирования независимо взяты из одной и той же целевой группы - независимый и идентично распределенный или iid для краткости. Основная стратегия состоит в том, чтобы собрать единый набор данных из целевой группы, а затем случайным образом разделить его на обучающие и тестовые данные, гарантируя, что они взяты из одного и того же распределения. Любой i.i.d. Стратегия оценки позволит измерить, насколько хорошо модель обобщается в данной совокупности. То есть мы выбираем обучающие данные из целевой группы населения, на которую мы хотим обобщить, например, радиологические изображения в одной больнице, а затем оцениваем их на тестовых данных, взятых из той же группы населения, чтобы измерить, насколько хорошо модель обобщает в этой целевой группе.

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

Обобщение за пределами обучающего распределения

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

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

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

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

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

Обещание возможностей

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

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

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

Вкратце, аргумент, почему это может сработать, заключается в следующем:

  1. Для каждой обучающей задачи мы можем найти много разных моделей, которые имеют одинаковую точность в распределении обучающих и тестовых данных, но изучают очень разные шаблоны. Некоторые из этих моделей лучше обобщают на нераспределение данных, чем другие. Действительно, в статье Google [2], которая привела меня к этой кроличьей норе, есть десятки примеров, демонстрирующих эту закономерность для многих задач обучения.
  2. Некоторые модели изучают закономерности в данных, которые характерны для распределения, используемого для обучения и тестирования, но не обобщают для более крупных проблем. Примеров быстрого обучения для наборов данных предостаточно: Детектор объектов, который обнаруживает коров на траве, но не на пляже, потому что данные обучения никогда не включали коров на пляже [9]; городская легенда о танковом детекторе, которая учится распознавать погоду, но не танки, потому что все тренировочные данные с танками были сняты в солнечные дни, а данные без танков - в дождливые; детектор рака, который узнает, было ли получено изображение на мобильном или стационарном сканере, и определяет на основании мнения человека, был ли пациент достаточно здоров, чтобы его можно было перенести на сканер [10]. Во всех этих случаях модель обнаруживала шаблоны, которые хорошо работали в обучающих и тестовых данных, но только потому, что данные были собраны таким образом, который не был репрезентативным для целевого распределения, в котором в конечном итоге предполагалось использовать модель.
  3. Мы ожидаем, что усвоенные шаблоны, которые, по нашему мнению, важны для решения проблемы, такие как перечисленные выше возможности, лучше обобщаются. Обоснование состоит в том, что возможности представляют собой уже имеющиеся у нас знания предметной области, а не только закономерности, обнаруженные в конкретном наборе данных, которые могут представлять собой ярлыки в этих данных из-за предвзятости в том, как данные были собраны. Например, мы ожидаем, что определение формы коровы должно быть более надежным механизмом в детекторе объектов в целом, чем анализ фона изображения.
  4. Поэтому всякий раз, когда у нас есть выбор между несколькими моделями с одинаковой точностью, мы должны выбрать модель, которая лучше усвоила соответствующие возможности. Мы можем даже захотеть управлять нашим обучением (например, с помощью структуры модели, индуктивных смещений и т. д. или увеличение обучающих данных), чтобы изучить эти возможности. Обратите внимание, что этот подход не направлен на только обоснование с фиксированным списком возможностей, как, может быть, в старые добрые времена символического ИИ. Мы по-прежнему изучаем модели на основе обучающих данных, которые могут находить все виды шаблонов, многие из которых люди, вероятно, никогда не уловят, но мы направляем процесс, чтобы включить шаблоны, которые дают модели некоторые возможности, которые мы считаем важными, и которые сделают модель более надежный.

Возможности тестирования

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

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

Есть несколько разных стратегий:

  • Генераторы, зависящие от предметной области. Очень распространенной стратегией является создание тестовых данных из шаблонов или с помощью определенных стратегий для создания примеров данных, требующих возможности [1, 3, 5, 8]. Например, чтобы проверить, понимает ли модель анализа настроений отрицание, шаблон «Я {ОТРИЦАНИЕ} {POS_VERB} {ВЕЩЬ}.» может быть автоматически заполнен всевозможными отрицаниями, глаголами и т. Д. для создания множества тестовых предложений, таких как «Я не любил еду», которые все включают отрицание и, как ожидается, будут иметь отрицательное мнение, несмотря на положительные слова [1]. В качестве другого примера, генератор может создавать искусственные изображения с формой одного объекта, но заполненные текстурой другого, чтобы проверить способность модели распознавания объектов предпочитать форму текстуре [5]. Обычно требуется написать один или несколько генераторов для каждой возможности.

  • Изменение существующих входных данных: вместо создания тестовых входных данных с нуля часто можно сгенерировать новые тестовые входные данные, изменив существующие [3, 6]. Например, чтобы проверить возможности модели НЛП понимать синонимы, мы можем заменить слова в существующих предложениях с метками синонимами, чтобы создать новые тестовые данные с той же меткой. Что касается возможностей, связанных с шумом и отвлекающими факторами, мы также можем легко изменить входные данные, чтобы добавить нейтральную информацию в предложения (например, добавить а ложь не соответствует действительности [3] или случайные URL-адреса [1]) или автоматически ввести опечатки [3]. Мутации особенно эффективны, если возможности могут быть выражены в виде инвариантов (см. Метаморфическое тестирование), которые описывают, как прогноз модели должен измениться (или не измениться) для определенных видов модификаций.
  • Создание краудсорсинговых тестов: там, где мы не можем автоматически создавать реалистичные тесты, мы можем привлечь людей к выполнению задачи [4, 6]. Например, эту стратегию можно использовать для проверки способности модели анализа настроений понимать сарказм, попросив работников толпы минимально изменить обзор фильма, чтобы перевернуть его мнение путем введения сарказма [6]; в качестве детектора объектов мы могли бы попросить рабочих сфотографировать объект с различным, возможно, неожиданным фоном [4]. В каждом случае нам необходимо создать определенные инструкции для людей, чтобы создать тестовые примеры, которые бросают вызов интересующим нас конкретным возможностям.

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

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

Кроме того: обучение и тестирование. Большинство обсуждений здесь имеют двойное понимание обучения и тестирования. Точно так же, как мы можем курировать тестовые данные, чтобы проверить, научилась ли модель определенной способности, мы обычно можем использовать тот же процесс для генерации дополнительных обучающих данных, чтобы стимулировать обучение, чтобы лучше изучить эту способность. Этот вид увеличения данных является обычным и выходит за рамки предположения i.i.d., как и возможности тестирования, но потенциально с теми же преимуществами. Чтобы не попасть в очередную кроличью нору, я не буду вдаваться в подробности о различных стратегиях увеличения данных и о том, как они могут быть связаны с возможностями, но я ожидаю, что размышление о возможностях может быть путем не только для разработки стратегии тестирования, но и для обучения. И наоборот, документы по увеличению данных [например, 6] могут быть прочитаны с точки зрения выявления возможностей и могут также послужить источником вдохновения для тестирования.

Определение возможностей

Остается последний вопрос: Как определить, какие возможности тестировать? Удивительно, но я не видел, чтобы в каких-либо газетах это прямо обсуждалось. Многие статьи сосредоточены на одной возможности или небольшом количестве возможностей для конкретной проблемы и демонстрируют возможность тестирования и обнаружения лучших моделей, но обычно без какого-либо обоснования того, почему эта возможность была выбрана среди других. Читая между строк, кажется, есть несколько разных идей:

  • Анализ типичных ошибок. Большинство статей, похоже, сосредоточены на конкретных типичных ошибках, которые допускает модель [3, 4, 5, 8], в том числе в основном краткие рассуждения, например, когда модель использует фон изображения для определения объект на переднем плане. Некоторые общие проблемы уже хорошо поняты сообществом и широко изучены, например, модели НЛП, использующие перекрытие слов, а не понимание содержания текста [8], или модели, ориентированные на текстуру вместо формы [5], что делает явных кандидатов на возможности. Более систематично, мы можем тщательно проанализировать репрезентативную выборку ошибок, чтобы выявить типичные проблемы и сопоставить их с возможностями - документ Стресс-тестирование [3] является отличным примером этого: исследователи вручную классифицировали 100 ошибки, допущенные моделью для задачи логического вывода на естественном языке, обнаружение, что, помимо перекрытия слов, неправильные результаты часто связаны с отрицанием и антонимами, числовыми рассуждениями, двусмысленностью и отсутствием реальных знаний. В то время как некоторые проблемы, такие как отсутствие знаний из реального мира, действительно сложны для модели (и человека), другие легче уловить как проверяемые возможности, которыми должна обладать модель.

  • Использование имеющихся знаний о проблеме: хотя мы обычно используем машинное обучение, потому что не полностью понимаем, как решить проблему, для многих проблем мы имеем хотя бы частичное понимание. Например, лингвистика изучалась задолго до появления глубоких нейронных сетей, и мы много знаем, скажем, о структурах предложений, о том, как соотносятся слова и какие части предложения более важны, чем другие. Многие возможности, кажется, напрямую связаны с теориями, которые у нас уже есть о проблеме, включая большинство возможностей моделей НЛП из статьи Контрольный список [1], включая синонимы, анонимы, идентификацию именованных сущностей, маркировку семантических ролей, отрицание , и кореференция.
  • Наблюдайте за людьми: там, где у нас нет знаний в предметной области, мы можем изучить, как люди решают проблему. Интересным примером является статья Узнаем разницу, которая имеет значение [4], в которой наблюдались изменения, которые люди вносят в текст, когда им приказывают минимально изменить предложение, чтобы изменить его тональность (пример показан на рисунке выше ). Таким образом, они определили важные механизмы изменения настроений (часто, но не обязательно сложных для модели), которые можно сопоставить со способностями, такими как сарказм и различение фактов от желаний.
  • Производные из требований. Некоторые возможности соответствуют требованиям для модели или желательным целям, обычно это инварианты, которые должны соблюдаться для окончательной модели. Сюда входят, в частности, требования справедливости, которые могут не соблюдаться или не соблюдаться в исходных обучающих данных. Например, сентиментальный анализ не должен различаться в зависимости от пола участников предложения.
  • Обнаружение причинно-следственных связей на основе данных наблюдений. Подполе сообщества машинного обучения сосредоточено на кодировании и обнаружении причинно-следственных связей, а не только статистических [7]. Если бы мы могли обнаружить и проанализировать причинно-следственные связи, многие из них могли бы хорошо отобразиться на возможностях.

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

Если мы в последний раз посмотрим на пример модели обнаружения рака, мы обнаружим, что можем использовать многие из этих стратегий: мы можем обнаружить, что существующие решения плохо работают, когда яркость не откалибрована на нескольких сканерах (анализ ошибок модели), следовательно, выявить возможность того, что модель должна быть устойчивой к разным уровням яркости, что мы можем хорошо преобразовать в тестовые данные для определения тех моделей, которые обучаются этой возможности. Мы можем спросить рентгенологов, почему они не согласны с моделью, чтобы узнать больше о том, какие возможности используют эксперты, которые могут отсутствовать в модели (наблюдение за людьми). Кроме того, нам, вероятно, также следует изучить литературу, предшествующую глубокому обучению, скажем, стратегии, используемые в более ранних исследованиях медицинской визуализации в 90-х годах, которые обычно использовали конкретное понимание проблемы как часть созданных вручную математических моделей. Кроме того, в литературе по диагностике рака без использования машинного обучения, вероятно, также будут указаны возможности, которые рентгенологи используют при поиске рака в эмпирических исследованиях радиологов или в учебных материалах для радиологов (существующие знания).

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

Чтения

[1] Рибейро, Марко Тулио, Туншуанг Ву, Карлос Гестрин и Самир Сингх. « За гранью точности: поведенческое тестирование моделей НЛП с помощью контрольного списка ». In Proceedings ACL, p. 4902–4912. (2020).

[2] Д'Амур, Александр, Кэтрин Хеллер, Дэн Молдован, Бен Адлам, Бабак Алипанахи, Алекс Бютель, Кристина Чен и другие. Недостаточная спецификация ставит под сомнение надежность современного машинного обучения. Препринт arXiv arXiv: 2011.03395 (2020).

[3] Наик, Ааканкша, Абхилаша Равичандер, Норман Садех, Кэролайн Роуз и Грэм Нойбиг. « Оценка стресс-теста для вывода естественного языка . Труды 27-й Международной конференции по компьютерной лингвистике, с. 2340–2353 (2018).

[4] Барбу, Андрей, Дэвид Мэйо, Джулиан Альверио, Уильям Луо, Кристофер Ван, Дэнни Гутфройнд, Джошуа Тененбаум и Борис Кац. « ObjectNet: крупномасштабный набор данных с контролируемым предубеждением для выхода за рамки моделей распознавания объектов .» В Proc. NeurIPS (2019).

[5] Гейрхос, Роберт, Патрисия Рубиш, Клаудио Михаэлис, Матиас Бетге, Феликс А. Вихманн и Виланд Брендель. CNN, обученные ImageNet, склонны к текстуре; увеличение смещения формы повышает точность и надежность . В Proc. Международная конференция по обучающим представительствам (ICLR), (2019).

[6] Кошик, Дивянш, Эдуард Хови и Захари К. Липтон. « Узнай разницу, которая имеет значение с помощью данных, дополненных противодействием . В Proc. Международная конференция по обучающим представительствам (ICLR), (2020).

[7] Шёлкопф, Бернхард. Причинно-следственная связь для машинного обучения. Препринт arXiv arXiv: 1911.10500 (2019).

[8] Маккой, Р. Томас, Элли Павлик и Тал Линзен. « Правильно по неправильным причинам: диагностика синтаксической эвристики в логическом выводе на естественном языке ». Proc. ACL (2019).

[9] Бири, Сара, Грант Ван Хорн и Пьетро Перона. « Признание в терра инкогнита . В Proceedings of the European Conference on Computer Vision (ECCV), pp. 456–473. 2018.

[10] Агравал, Аджай, Джошуа Ганс и Ави Гольдфарб. Прогнозирующие машины: простая экономика искусственного интеллекта. Harvard Business Press, 2018.

PS: Несколько слов о наименовании. Идея тестирования возможностей подразумевается во многих статьях и обсуждениях, но редко когда-либо преднамеренно называется стратегией. Документы, которые я нашел, я в основном находил, просматривая ссылки в других статьях. Naik et al. [3] представил идею возможностей тестирования как стресс-тестирование модели, даже сославшись на некоторые учебники по разработке программного обеспечения; в статье Underspecification [2] используется этот термин. Я считаю, что стресс-тестирование вводит в заблуждение: стресс-тестирование обычно относится к тестированию производительности и обработке ошибок при большой нагрузке и случайности, но имеет тенденцию быть менее структурированным. В статье CheckList [1] вводится термин возможности тестирования, который я предпочитаю. Концепция возможностей предполагает наличие нескольких различных характеристик, которые следует тестировать, не вызывая путаницы с требованиями и спецификациями. чего у нас часто нет из-за проблем с машинным обучением. Кроме того, я думаю, что модульное тестирование черного ящика - полезная аналогия в целом, поскольку мы тестируем отдельную единицу системы (модель), и мы делаем это в некоторой степени систематическим образом, не зная внутреннего устройства модели, одна возможность на время.