Почему модели не работают

В чем ключевой недостаток современного machine learning.

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

Суть проблемы
 

Обычно сложности работы модели с реальными задачами связаны с несоответствием данных, на которых ИИ был обучен и протестирован, данным, с которыми он сталкивается на самом деле. Это явление называется data shift. Например, алгоритм, обученный выявлять признаки заболевания на высококачественных медицинских снимках, будет испытывать сложности с размытыми изображениями в обычных клиниках.

Но группа из 40 исследователей в Google определила еще одну важную причину сбоев — «неполную спецификацию» (underspecification). Этот термин авторы исследования заимствовали из лингвистики. В случае machine learning это ситуация, при которой не все модели с одинаково хорошим перформансом показывают высокие результаты на реальных данных вне лабораторий. То есть, при data shift снижается производительность всех моделей, а в случае underspecification она падает у некоторых моделей, причем предсказать это невозможно.

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

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

Низкая планка
 

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

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

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

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

Например, они обучили 50 версий модели распознавания изображений в ImageNet, на датасете изображений бытовых предметов. Единственная разница между процессами обучения заключалась в случайных значениях, присвоенных нейронной сети в начале. Несмотря на то, что все 50 моделей набрали более или менее похожие результаты в тренировочном тесте (что свидетельствует об одинаковой точности), их показатели сильно различались при стресс-тесте.

В стресс-тесте использовали ImageNet-C (набор изображений из ImageNet, причем картинки были пикселизированы, а их яркость и контраст изменили) и ObjectNet (датасет изображений повседневных предметов в необычных положениях: стулья, лежащие на полу или перевернутые чайники). Некоторые из 50 моделей справились с пиксельными изображениями, другие —  с необычными позами; одни модели в целом справились лучше других. Но на стандартном тренировочном сете все показали одинаковые результаты.

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

У каждой системы была одна и та же проблема: модели, которые должны были быть одинаково точными, справлялись по-разному при тестировании на реальных данных (сканирование сетчатки глаза или разные типы кожи).

Вероятно, систему оценки нейросетей придется переосмыслить. «Самый важный вывод таков: нам нужно проводить гораздо больше тестов», — говорит Д'Амур. Однако это будет нелегко. Стресс-тесты были адаптированы специально для каждой задачи с использованием данных, взятых из реального мира, или данных, имитирующих реальные. Это не всегда возможно. Кроме того, некоторые стресс-тесты расходятся друг с другом: например, модели, которые хорошо распознавали пиксельные изображения, часто плохо распознавали изображения с высокой контрастностью. Не всегда можно обучить одну модель проходить все тесты.

Дополнительное обучение
 

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

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

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

Стресс-тесты, рекомендованные авторами исследования:

  • Stratified Performance Evaluations — проверка, которая позволяет определить, насколько отличаются результаты модели для разных страт (подгрупп данных, выделенных по определенному признаку. Например, пол человека на фото или тематика текста).
  • Contrastive Evaluations — проверка, при которой используют те же данные, что и для обучения, но преобразовывают их (например, изменяют разрешение изображений). 
  • Shifted Performance Evaluations — проверка на реальных данных, полученных из другого источника. Например, исследователи отслеживают,  как поменяется перформанс, если подать на вход снимки, сделанные другим МРТ-аппаратом.

Обложка: Neurohive

Ещё
Как нейросети отслеживают вырубку лесов, считают популяции животных и помогают фермерам.
Отзывы студентов первого потока курса «SQL для аналитики».