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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Золотым стандартом исследований в области машинного обучения служит «последовательная» модель эксперимента: у вас есть базовый уровень, ваш эксперимент и фиксированный, заранее определённый набор тестов. Вы оцениваете свой базовый уровень на наборе тестов, получаете базовое значение. Затем вы выполняете свой эксперимент на наборе тестов и получаете другое значение. Затем вы сравниваете эти два результата. Допустим, вы публикуете все эти артефакты и предположительно любой может воспроизвести данные результаты. Это пример хорошей науки. Но я люблю невоспроизводимые исследования. И вот почему.


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

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

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

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

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

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

И это приводит нас к самому большому непониманию A/B-тестирования и его пользы в качестве научного инструмента: оно часто используется, например, в UX-дизайне, чтобы узнать, влияют ли небольшие изменения компоновки сайта на переходы пользователей или могут ли тонкие изменения затенения сделать рекламу более привлекательной. В результате оно приобрело репутацию инструмента улучшения доверительных интервалов для очень малых эффектов. И поскольку исследователи машинного обучения относятся к доверительным интервалам в лучшем случае как к вынужденному допустимому отклонению, фактическая значимость А/В-тестирования для исследований в области машинного обучения обычно упускается из виду.

Параллельное A/B-тестирование целиком относится к тестированию больших эффектов, особенно когда нет возможности жёсткого контроля схемы оценки.

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

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

Простая установка захвата с помощью робота. Источник: Robotics at Google (Робототехника в Google)
Простая установка захвата с помощью робота. Источник: Robotics at Google (Робототехника в Google)

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

 

Изменчивость в идентичных экспериментах. Источник: Robotics at Google (Робототехника в Google)

Если бы каждому эксперименту соответствовала другая модель, мы бы сказали, что эксперимент № 7 примерно на 2 % лучше, а эксперимент № 5 примерно на 5 % хуже. И у нас бы даже были достаточно жёсткие доверительные интервалы, чтобы убедить вас в этом. Но здесь не было никаких различий между экспериментами, все они были идентичными. Обратите внимание, что это не случай отсутствия данных: большее количество данных будет только сокращать доверительные интервалы, а не перемещать их положение относительно базового уровня. Такая необъяснимая изменчивость целиком попадает в «неизвестные неизвестные» окружающей среды. И эта установка так же проста, как и для реального эксперимента с роботом: во многих статьях по робототехнике сообщается об экспериментах с последовательной обработкой и гораздо большим потенциалом необъяснимой изменчивости, чем этот. Что ещё важнее, если бы мы не измерили эту повседневную изменчивость, мы бы даже не догадались о её существовании. Очень немногие исследователи когда-либо задумывались об измерении внутренней изменчивости в их экспериментальной установке в первую очередь, потому что, давайте посмотрим правде в глаза: так это работает, и из этого направления исследований могут поступать только плохие новости.

Урок здесь заключается в том, что при использовании этого конкретного экспериментального протокола мы определённо не можем доверять любой разнице производительности ниже 10 % — я даже не знаю, доверял бы ли я разнице в 10 % без большой повторной проверки. Неужели это безнадёжно? Конечно, нет. Введите параллельное тестирование.

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

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

Изменчивость в параллельных идентичных экспериментах. Источник: Robotics at Google (Робототехника в Google)
Изменчивость в параллельных идентичных экспериментах. Источник: Robotics at Google (Робототехника в Google)

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

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

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

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

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

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

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

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

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

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

Абсолютная изменчивость для идентичных базовых уровней. Источник: Robotics at Google (Робототехника в Google)
Абсолютная изменчивость для идентичных базовых уровней. Источник: Robotics at Google (Робототехника в Google)

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

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

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

Для нас в области машинного обучения и робототехники настало время использовать те простые инструменты, которые делают «невоспроизводимые» исследования воспроизводимыми и научно обоснованными. Ни один из протоколов, которые я описываю здесь, не является особенно трудным для реализации, но они обещают улучшить реальную науку, упростить её и ускорить. А если вы хотите ускорить свой прогресс в области machine learning или data science — приходите учиться к нам, а наши опытные менторы пояснят все сложные моменты, на которые при самообразовании вы бы потратили ценное время.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

  • Профессия Data Scientist

  • Профессия Data Analyst

  • Курс по Data Engineering

Другие профессии и курсы

ПРОФЕССИИ

  • Профессия Fullstack-разработчик на Python

  • Профессия Java-разработчик

  • Профессия QA-инженер на JAVA

  • Профессия Frontend-разработчик

  • Профессия Этичный хакер

  • Профессия C++ разработчик

  • Профессия Разработчик игр на Unity

  • Профессия Веб-разработчик

  • Профессия iOS-разработчик с нуля

  • Профессия Android-разработчик с нуля

КУРСЫ

  • Курс по Machine Learning

  • Курс "Machine Learning и Deep Learning"

  • Курс "Математика для Data Science"

  • Курс "Математика и Machine Learning для Data Science" 

  • Курс "Python для веб-разработки"

  • Курс "Алгоритмы и структуры данных"

  • Курс по аналитике данных

  • Курс по DevOps

Источник: https://habr.com/ru/company/skillfactory/blog/553220/


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

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

Нередко при работе с Bitrix24 REST API возникает необходимость быстро получить содержимое определенных полей всех элементов какого-то списка (например, лидов). Традиционн...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Те, кто собираются открывать интернет-магазин, предварительно начитавшись в интернете о важности уникального контента, о фильтрах, накладываемых поисковиками за копирование материалов с других ресурсо...
Данные из OSM + Blender + QGIS + … + творческий подход Долли Андриацифераны 1 | Dolly Andriatsiferana(@privatemajory) – Map data OpenStreetMap contributors Картографирование Жан-Луи Ци...
В статье описаны необходимые параметры сервера для оптимальной работы сайта на платформе 1С-Битрикс.