fbpx

Почему проектами машинного обучения сложно управлять?

Многие компании пытаются внедрить машинное обучение — некоторые преуспевают, а другие терпят неудачу. Причина часто в том, что командам ML-инженеров трудно ставить конкретные цели. Почему так происходит? На этот и другие вопросы решил ответить Лукас Бивальд, основатель стартапа Weights&Biases, занимающегося разработкой софта для глубокого обучения.

Невозможно заранее знать, какая задача окажется трудной для алгоритма

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

Люди плохо умеют оценивать, что будет сложным для ИИ, а что нет. Даже для похожих задач производительность может сильно отличаться. Какая точность будет считаться хорошей для прогнозирования настроения? Если взять задачу прогнозирования настроения по рецензиям к фильмам, то можно достичь 90-95% точности, потому что авторы обычно используют много эмоционально окрашенной лексики. Если нужно спрогнозировать настроение по твитам, то это практически невозможно. Даже два человека смогут прийти к одному мнению о настроении твита только в 80% случаев.

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

Алгоритмы склонны к неожиданным неудачам

Модель машинного обучения будет хорошо работать, если обучена на огромном количестве данных. Или если данные для обучения очень близки к тем, с которыми ей предстоит работать. Модели подвержены неожиданным ухудшениям производительности. Например, языковые модели, обученные на текстах New York Times, плохо работают с текстами из социальных сетей — это очевидная проблема. Но то, что модель, обученная на текстах из New York Times в 2017, будет плохо работать с текстами того же издания в 2018 — неожиданный результат.

Моделям машинного обучения нужно очень много данных

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

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

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

Возможные решения проблем

  1. Уделять много внимания тренировочным данным. Если посмотреть на случаи, когда модель неправильно классифицирует данные, можно заметить, что это почти всегда неправильно размеченные данные или странные крайние случаи. Нужно, чтобы все, кто работает с созданием моделей, периодически просматривали данные и занимались их разметкой.
  2. Получить что-то работающее сразу, а затем постепенно улучшать модель. Начните с самой простой фичи, которая может работать. Получив обратную связь от конечного потребителя о работе модели, можно узнать много ценной информации, обнаружить ошибки и вовремя скорректировать обучающие данные.
  3. Использовать с пользой случаи, когда алгоритм не работает. Модели машинного обучения постоянно терпят неудачи. И то, как эти ошибки будут обработаны, имеет решающее значение. Можно использовать оценку достоверности (confidence score) самой модели. Модель может отправлять оператору случаи с низкой степенью достоверности. Это позволит собирать только высококачественные данные для обучения. Если избежать ошибок невозможно, такой подход позволит предупредить конечного пользователя о случаях, когда модель будет работать неправильно.