Истории

Четыре совета для разработчиков моделей машинного обучения

Истории
Елена Лиханова
Елена Лиханова

Старший редактор RB.RU

Елена Лиханова

Машинное обучение (МО, Machine Learning) становится важным инструментом во многих отраслях. Однако корректность результатов может зависеть от неочевидных факторов. В статье, недавно размещенной на сервере препринтов arXiv, Майкл Лоунс, доцент Школы математических и компьютерных наук Университета Хериот-Ватт в Эдинбурге, представил целый список рекомендаций для начинающих исследователей МО.

Четыре совета для разработчиков моделей машинного обучения

Статья, которую Лоунс описывает как «уроки, полученные во время академических исследований МО и наблюдений за студентами, исследующими МО», описывает проблемы на различных стадиях цикла исследования Machie Learning. Хотя статья предназначена в первую очередь для ученых, она будет полезна и тем, кто разрабатывает модели для реального применения.

Вот ее главные положения.

Уделяйте особенное внимание данным

Каждая модель МО обучена на данных. Поэтому на протяжении всей статьи Лоунс постоянно подчеркивает, как важно следить за их качеством. Это касается не только сбора и подготовки, но и обучения и тестирования моделей.

Заставь искусственный интеллект самообучаться и совершенствоваться – выбирай онлайн-курсы в каталоге курсов по машинному обучению.

Никакие вычислительные мощности и продвинутые технологии не помогут, если данные получены из ненадежного источника и собраны некорректным способом. И нужно проводить собственную тщательную проверку, чтобы проверить происхождение и качество данных. «Не стоит предполагать, что, поскольку набор данных использовался в ряде работ, он хорошего качества», — пишет Лоунс.

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

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

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

ноутбук, машинное обучение

Фото в тексте: Unsplash

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

Важно не только качество, но и количество. Стоит убедиться, что доступно достаточно данных. «Если сигнал сильный, то вам хватит меньше данных, если он слабый, то нужно больше данных», — пишет Лоунс.

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

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

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

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

«Если у вас достаточно данных, лучше оставить их в стороне и использовать только один раз, чтобы дать объективную оценку выбранной в итоге модели», — пишет Лоунс.

Изучайте свои модели (и не только)

Сегодня метод deep learning в моде. Но не каждая проблема нуждается в нем. На самом деле, не каждая проблема решается с помощью МО. Иногда простое сопоставление шаблонов и правил будет работать так же, как и самые сложные модели машинного обучения. При этом затраты на данные и вычисления будут ниже.

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

«Говоря в общем, не существует единственной лучшей модели машинного обучения, — пишет Лоунс. — Ни один подход МО не лучше любого другого, если рассматривать каждую возможную проблему».

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

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

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

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

Этот подход может сэкономить много времени.

«Игнорировать предыдущие исследования — значит потенциально упустить ценную информацию», — пишет Лоунс.

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

Лоунс предупреждает, что не стоит руководствоваться субъективными ожиданиями. Используйте лучшую модель для решения конкретной проблемы.

Понимайте конечную цель и ее требования

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

«[Для] многих академических исследований конечная цель состоит в том, чтобы создать модель МО, которая может быть использована в реальной ситуации. Поэтому стоит заранее подумать о том, как она будет применяться», — отмечает Лоунс.

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

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

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

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

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

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

Используйте корректные способы оценки

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

Многие инженеры используют «тест на точность», который измеряет процент правильных прогнозов, сделанных моделью. Однако иногда он может вводить в заблуждение. Рассмотрим ситуацию на примере.

  • Датасет состоит из рентгеновских снимков. Он используется для обучения модели МО, которая должна будет выявлять рак.
  • Данные несбалансированы: 90% обучающих примеров помечены как доброкачественные, и лишь небольшое количество — злокачественные.
  • Если обученная модель набрала 90 баллов по тесту на точность, возможно, она научилась помечать все как доброкачественное, и в реальных условиях эта модель будет пропускать некоторые случаи с катастрофическими последствиями.
В таком случае команда МО должна использовать тесты, нечувствительные к дисбалансу классов, или использовать матрицу смешения, чтобы проверять другие показатели. Более современные методы могут дать подробную оценку эффективности модели в различных областях.

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

доктор за компьютером

Фото в тексте: DC Studio / Shutterstock

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

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

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

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

Особенности прикладного МО

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

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

  1. Важно обеспечить конфиденциальность и безопасность данных, согласие пользователей на сбор данных и соответствие нормативным ограничениям.
  2. Модели МО в реальных приложениях должны регулярно обновляться. Разработчики часто забывают о таком явлении, как распад модели: со временем данные меняются, модели машинного обучения «разрушаются», а их производительность ухудшается. Например, после карантина жизненные привычки изменились, и системы МО, обученные на старых данных, пришлось переобучать.
  3. При разработке модели нужно принимать во внимание интеграцию с другими приложениями. Как система МО будет взаимодействовать с инструментами, которые уже используются в организации? Готова ли инфраструктура данных? Поддерживает ли облачная или серверная инфраструктура установку и масштабирование модели?
Подобные вопросы могут как стать стимулом для внедрения продукта МО, так и препятствием. Например, недавно исследовательская лаборатория ИИ открыла тестовую версию своей модели API Codex для публичной оценки. Но на запуске ее серверы не могли масштабироваться в соответствии с требованиями пользователей.

Возможно, этот текст поможет лучше оценить проект машинного обучения и избежать ошибок. Прочитать полный текст статьи Лоунса под названием How to avoid machine learning pitfalls: a guide for academic researchers («Как избежать ошибок машинного обучения: руководство для академических исследователей») можно по ссылке.

Источник.

Фото на обложке: Unsplash

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Стартовал всероссийский чемпионат проекта «Цифровой прорыв. Сезон: искусственный интеллект»
  2. 2 В рамках чемпионата по ИИ и машинному обучению в Удмуртии решат задачу для космической корпорации
  3. 3 В Башкортостане стартует первый региональный чемпионат конкурса «Цифровой прорыв. Сезон: искусственный интеллект»
  4. 4 Работа над инновационным продуктом за пять шагов
  5. 5 Лаборатория по ИИ «Сбера» запускает бесплатный онлайн-курс по машинному обучению
FutureFood
Кто производит «альтернативную» еду
Карта