Эта статья была первоначально размещена на нашем сайте компании. Платформа для разработчиков Lakera позволяет командам машинного обучения создавать отказоустойчивые модели компьютерного зрения.
Учитывая, что у вас есть две модели машинного обучения, какую из них вы бы выбрали и почему? Перед каждым инженером по машинному обучению стоит задача выбрать оптимальное сочетание гиперпараметров, архитектур моделей, оптимальных экспериментов во время разработки и какие данные собирать, аннотировать и обучать. Эти решения чаще всего намного сложнее, чем ожидалось, особенно в контексте компьютерного зрения, которому посвящена эта статья.
Разработчики часто делают неправильный выбор из-за одного сложного решения, из-за которого вся модель компьютерного зрения рушится, как костяшки домино. Однажды я готовил готовящуюся демонстрацию для клиентов. Я выбрал модель на основе нескольких показателей производительности, и она, похоже, превзошла своего соперника. Я также визуализировал несколько прогнозов для некоторых последовательностей изображений, и это подтвердило мой выбор модели.
Поэтому, основываясь на приведенных выше доказательствах, я решил, что это оптимальная модель, и подумал о том, чтобы отправить ее производственной группе. Пару дней спустя у нас была демоверсия (к счастью, она была только для внутреннего использования), и, глядя на поведение предсказания, я быстро понял, что модель поведения полностью отключена.
В целом работая хорошо, оказалось, что мы ввели регрессию для конкретного демо-сайта. Почему я не уловил этого во время оценки? Более того, когда я проанализировал конкурирующую модель компьютерного зрения, которая была отклонена прямо перед запуском в производство, оказалось, что она не показывает снижения производительности. Так что оказалось, что мои методы оценки моделей были, мягко говоря, неполными, и нам пришлось копнуть глубже.
Как нам принимать лучшие решения при сравнении моделей компьютерного зрения?
С тех пор я много работал над методами оценки и сравнения моделей, чтобы избежать таких ловушек. За прошедшие годы я добавил следующие техники к своему основному набору методов оценки и сравнения:
1. Стандартные метрики машинного обучения
Любое сравнение моделей должно включать следующие стандартные показатели:
- Кривые PR, Precision, Recall, RMSE и т. д. (показатели, относящиеся к варианту использования)
- Потеря обучения, потеря проверки, потеря теста (для оценки поведения переобучения)
- Сложность модели (для рассмотрения потенциальных компромиссов во время выполнения)
В Интернете и в учебниках есть множество ресурсов о том, как использовать и интерпретировать эти метрики оценки машинного обучения для сравнения моделей. Эти метрики оценки моделей всегда являются неотъемлемой частью моего процесса оценки, даже несмотря на то, что они далеко не так полны, как требуется для получения хорошего представления об общем качестве ваших моделей.
2. Анализ подгрупп и явный модульный тест данных
Стандартные метрики машинного обучения скрывают слишком много ценной информации при выборе между несколькими моделями (или вообще при оценке модели). Частично это связано с тем, что они рассматривают совокупные показатели по большим наборам данных. Таким образом, они могут не точно отражать требования вашего бизнеса и продукта.
Например, если вы создаете проект компьютерного зрения по обнаружению объектов для промышленного контроля и хотите развернуть его на разных сайтах клиентов, вам нужно посмотреть на производительность модели на каждом сайте (чтобы избежать ситуаций, подобных описанной выше). . Чтобы выяснить, какая модель лучше, вам нужно проверить, одинаково ли хорошо работает модель для всех компонентов, которые также требуют проверки.
Чтобы провести анализ подгрупп и разделить показатели производительности, я обычно собираю как можно больше метаданных (отметка времени, сайт клиента, модель камеры, размеры изображения и т. д.) для каждого изображения. Другой метод, который я здесь использую, — создание небольших наборов регрессионных тестов (10–50 изображений) для отслеживания производительности подмножества. Эти наборы регрессии могут включать чувствительные случаи или определенные сценарии, которые я хочу протестировать, но не имею доступных метаданных. Подробнее об этом здесь. Я хочу убедиться, что моя модель одинаково хорошо работает в (комбинациях) этих подгрупп.
3. Надежность модели
Как только ваша модель будет запущена в производство, она неизбежно столкнется с динамическими изменениями входного изображения. Как на это реагирует модель? Даже незначительные изменения испортят вашу модель, если вы переобучили свои обучающие и тестовые данные. Чтобы предотвратить этот сценарий, я явно тестирую надежность модели с различными изображениями и проверяю, остается ли результат модели близким к оригиналу. Для минимального тестирования я выполняю следующее:
- Геометрические вариации: повороты, изменение перспективы, масштабирование, обрезка и т. д.
- Вариации освещения: глобальные и локальные изменения яркости и контрастности, изменения цвета и т. д.
- Изменения качества изображения: шумы, артефакты сжатия, размытие, потери пакетов и т. д.
В качестве примечания: знание того, где ваша модель ненадежна, значительно помогает выбрать дополнения данных во время обучения. В каком-то смысле это простой тест, чтобы убедиться, что ваш конвейер обучения верен. Он также поддерживает ввод данных для уточнения сбора данных и аннотаций.
«Более эффективные» модели машинного обучения (на основе приведенных выше стандартных показателей) часто не обобщают лучше. Они не могут понять данные за пределами доступного набора данных, игнорируя или неправильно обрабатывая изменения во входных данных.
Получение хорошего понимания надежности модели является критическим этапом в выборе оптимальной модели.
4. Модель предвзятости/справедливости
Если вы создаете приложение, в котором предвзятость может повлиять на качество обслуживания клиентов или безопасность, вам следует рассмотреть метрики справедливости как часть ваших методов сравнения моделей. Одна модель может превосходить другую по высокоуровневым метрикам производительности, но может включать тонкие прогностические ошибки.
Рекомендуемый способ начать работу — убедиться, что ваши наборы данных представляют рабочий вариант использования. В зависимости от приложения вы также можете захотеть измерить явные метрики справедливости, такие как уравненные шансы или прогнозируемое равенство.
5. Показатели эксплуатации
Производственные среды и конфигурации всегда накладывают дополнительные ограничения на ваше приложение компьютерного зрения. Вот некоторые из них, которые приходят на ум:
- Объем памяти
- Время вывода модели
- Задержка системы
- Использование графического/процессорного процессора
Например, вы должны спросить себя, является ли модель с удвоенным временем вывода вашей предпочтительной моделью для оптимизации для увеличения производительности на 0,5%.
Кроме того, производительность на устройстве может существенно отличаться от вашей тренировочной среды с мощным графическим процессором в облаке. Если вы подозреваете разницу, при сравнении моделей следует учитывать производительность на устройстве.
Сравнение моделей с помощью MLTest
Теперь оценка всех этих измерений может стать довольно сложной. Я сам был там.
Вот почему я рад, что мы недавно представили удобную функцию сравнения моделей в MLTest, которая поможет вам получить более полное представление о вашей модели. Он отслеживает все стандартные показатели машинного обучения, автоматически оценивает надежность и погрешности модели, а также выполняет анализ подмножества ваших моделей. Он даже автоматически определяет кластеры отказов, в которых ваша модель работает плохо, что позволяет провести гораздо более полное сравнение.
Вы можете узнать больше о том, как MLTest может помочь вам в сравнении машинно-обучаемых моделей компьютерного зрения здесь, начать работу с MLTest прямо сейчас или связаться со мной по адресу [email protected].
Заключение
При сравнении моделей компьютерного зрения сделайте следующий шаг и включите вышеуказанные критерии в свою оценку. Они помогут вам принимать более обоснованные решения и, в конечном итоге, создавать более совершенные системы машинного обучения.