Всегда включайте базовые модели для разработки новых моделей.

Выбор модельной архитектуры

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

На этом этапе мы часто руководствуемся неофициальными свидетельствами :

  • Удачных экспериментов в домене. Привет, эта команда добилась потрясающих успехов в своей задаче, используя этот вариант BERT. Почему бы не попробовать это?
  • Существующая литература по SOTA для вашего домена. Эй, группа X начала использовать широкие и глубокие сети вместо расширенных деревьев решений и достигла лучших результатов.
  • Легкость обучения / доступность конвейера шаблонов: инфраструктура полностью настроена для обучения этого класса моделей. Почему бы нам не попробовать это, поскольку это сокращает время развертывания?
  • Знакомство с классом алгоритмов: разработчики машинного обучения имеют предубеждения за / против класса алгоритмов, основанные на их прошлом опыте.

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

Исходные данные

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

Примеры исходных условий модели -

  • Модель набора слов может быть хорошей базой для задач НЛП.
  • Класс большинства, KNN, LR, SVM, RandomForest, Naive Bayes для вашей задачи классификации.
  • Простые MLP могут быть базовыми для сложных архитектур на основе nn.

Итак, как вы включите определение базовой модели в свою разработку ML?

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

План тестирования разработки модели должен содержать базовый отчет.

  • Целевые архитектуры - это те архитектуры, которые вы планируете использовать для онлайн-экспериментов или развертывания.
  • Целевой показатель - это ваш основной показатель качества. Это также может быть показатель продукта.
  • Используйте понятные единицы измерения для перф. Укажите значение в долларах США для стоимости обучения (может быть эвристическим) для сравнения.

Примеры анализа компромиссов

  • Моя целевая архитектура 1 лучше по целевой метрике, чем лучшая базовая, но требует обучения в долларах и имеет гораздо более высокую задержку. Стоит ли соглашаться со сложностью ради улучшения качества?
  • Мои целевые архитектуры не лучше базовых или немного лучше. Стоит ли вкладывать средства в получение большего количества данных или выбрать другой алгоритм?
  • Базовая логистическая регрессия лучше или равна целевой архитектуре. Развертывание, которое даст нам значительный выигрыш в стоимости производительности (время обучения, размер обслуживания, задержка).

Заключение

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