Пошаговое руководство по улучшению производительности вашей модели за пределами настройки гиперпараметров
Предположим, вы определили модель машинного обучения и соответствующие гиперпараметры, которые обеспечивают наилучшую производительность, но все же точность модели ниже базовой/ожидаемой точности. Это конец пути для вас или вы можете улучшить его дальше?
В этом блоге я проведу вас через трехэтапный процесс улучшения производительности вашей модели, помимо настройки гиперпараметров. Давайте начнем!
Шаг 1: Анализ ошибок
Целью анализа ошибок является определение возможностей для улучшения с использованием следующего подхода:
- Определите, где модель пошла не так
Общий показатель точности похож на сводку, он не указывает на конкретные области, в которых модель пошла не так. Итак, важно определить области, в которых модель пошла не так, чтобы мы могли разработать некоторые стратегии для улучшения.
Пример: обнаружение пневмонии с помощью рентгеновских снимков.
Представьте, что мы создаем модель для выявления пневмонии с помощью рентгенографии грудной клетки и хотим повысить точность нашей модели.
Анализ образцов
Мы можем выбрать 200 выборок, где предсказание модели было ошибочным, и попытаться понять причины неверных предсказаний. Когда мы анализировали случаи, мы обнаружили, что некоторые изображения размыты, некоторые имеют темный/светлый фон, отражения и т. д. Мы можем использовать эти категории для создания сводной таблицы (показанной ниже), чтобы указать причины неверных прогнозов.
Подведите итоги анализа
Теперь мы можем создать сводную таблицу, чтобы найти распределение ошибок по тегам (количество ошибок/общее количество ошибок) и частоту ошибок этих тегов (количество ошибок/общее количество изображений с этим тегом).
Чтобы найти «Всего изображений с этим тегом», вы можете либо обучить некоторую модель для определения тегов, либо выбрать образец, найти распределение тегов и масштабировать его для населения.
Глядя на таблицу выше, мы можем обнаружить, что большинство ошибок сосредоточено в теге «Темный фон» (40%), и частота ошибок также максимальна в этом теге (16%). Означает ли это, что мы должны сосредоточиться на этом теге для улучшения производительности нашей модели?
Не совсем, нам нужно сравнить эти частоты ошибок с базовой производительностью.
2. Насколько далеко от исходного уровня
Чтобы определить, на чем следует сосредоточиться для повышения точности, нам нужно сравнить частоту ошибок модели с базовой частотой ошибок.
Теперь базовым уровнем для вас может быть одно из следующего:
- Производительность на уровне человека для этой задачи.
- Современные производительности с открытым исходным кодом для вашего варианта использования.
- Ранее развернутая модель, которую вы планируете заменить.
В приведенной ниже таблице мы добавляем производительность на уровне человека (или частоту ошибок) в качестве базового уровня.
Мы найдем разрыв / разницу между частотой ошибок нашей модели и ошибкой человеческого уровня для тегов причины.
3. Расставьте приоритеты над чем работать
Чтобы расставить приоритеты, над чем работать, нам нужно добавить еще один аспект: найти процент данных, имеющих теги.
Теперь, объединив (умножив) «пробел» и «процент данных с этим тегом», мы можем получить потенциальное повышение точности, если мы достигнем точности человеческого уровня для различных тегов.
«Темный фон» и «Отражение» имеют максимальный потенциал для повышения общей точности. Таким образом, мы можем отдать предпочтение одному из них на основе простоты реализации.
Шаг 2. Улучшите входные данные
Допустим, мы сосредоточены на повышении точности тегов/данных с помощью «Темного фона».
Теперь мы попытаемся сгенерировать больше точек данных, которые отражают реалистичные примеры, когда наш алгоритм не работает хорошо, но люди (или другие базовые показатели) работают хорошо.
Мы можем следовать одной из этих стратегий, чтобы получить больше точек данных:
- Соберите больше рентгеновских изображений с темным фоном.
- Создайте синтетические точки данных: мы можем выбрать рентгеновские изображения без темного фона и искусственно добавить к этим изображениям темный фон.
Шаг 3: Обучение модели
Шаг 3 — обучить вашу модель этому обновленному набору входных данных (ранее существовавшие точки данных + вновь созданные точки данных).
Повторите все 3 шага, чтобы достичь человеческого уровня (или базовой производительности).
Мы (я и моя команда) в настоящее время следуем этому трехэтапному подходу в одном из вариантов использования классификации текста, и нам удалось повысить точность классификации с 64% до 75%.
Заключение
Чтобы улучшить производительность модели за пределами настройки гиперпараметров, мы можем использовать метод анализа ошибок, чтобы определить категории / теги, для которых модель уступает базовой линии. Как только мы определим теги, на которых следует сосредоточиться, мы можем улучшить входные данные, соответствующие этим тегам, и повторно обучить нашу модель. Мы можем повторить этот цикл, чтобы получить ожидаемую точность (или показатель производительности).
Если вы найдете мои блоги полезными, вы можете подписаться на меня, чтобы получать прямые уведомления всякий раз, когда я публикую историю.
Если вам нравится работать с Medium, поддержите меня и тысячи других авторов, подписавшись на членство. Это стоит всего 5 долл. США в месяц, это очень поддерживает нас, писателей, и у вас также есть возможность зарабатывать на своих произведениях.