Введение
Аналитика ошибок – это процесс изучения примеров изображений, которые ваш алгоритм неправильно классифицировал. Это позволяет вам понять основные причины ошибок. С помощью этого анализа вы можете определить приоритеты наилучших шагов по исправлению вашей модели и повышению производительности.
После тренировки вашей модели машинного обучения вы рассчитаете показатели в наборе для разработки. На этом этапе могут произойти две вещи. В идеальном случае ваша модель хорошо работает в наборе для разработки и достигает ваших целей по показателям. Поздравляем! Однако чаще всего возникает разрыв в производительности, и вам необходимо улучшить свою модель. У вас есть выбор из широкого спектра инструментов и методик, включая расширение данных, гиперпараметрическую оптимизацию или, возможно, новые архитектуры. Самый быстрый способ понять, как устранить пробел в ошибках и повысить производительность, – это применить небольшие, изолированные изменения, непосредственно устраняющие ваши самые крупные ошибки. Вместо того чтобы вносить большие радикальные изменения, выбирайте методы, которые быстро тестируются и непосредственно устраняют определенный тип ошибок, которые в наибольшей степени способствуют вашей общей ошибке.
Для этого мы будем использовать простую форму:
- Изучите примерно 100 изображений из набора проявочных материалов, на которых модель допустила ошибку.
- Поместите каждое изображение в одну или несколько групп, представляющих различные потенциальные источники ошибок. Например, автоматизированный визуальный контроль может включать: “изображение было не в фокусе”, “дефект был небольшим” и “изменилось освещение”.
- Выберите одну или две области, содержащие наибольшее количество изображений.
- Предложите изменение, непосредственно устраняющее эту ошибку.
- Переобучите модель.
- Сравните производительность новой модели с производительностью текущей модели.
Аналитика ошибок повышает производительность модели. Используя результаты анализа, вы применяете исправления для лучшего обучения модели. Это создает более обобщенную модель, которая будет лучше идентифицировать новые изображения. Продолжайте читать, чтобы найти примеры анализа ошибок.
Оценка качества модели на этапе разработки.
При создании нашей модели мы используем наборы данных для обучения. Вот три типа наборов данных.
- Обучающий набор, на котором вы запускаете свой алгоритм обучения.
- Набор для разработки (также известный как набор для проверки) — который вы используете для настройки гиперпараметров, выбора функций и принятия других решений относительно алгоритма обучения.
- Тестовый набор — который вы используете для оценки реальной производительности алгоритма, но не для принятия каких-либо решений относительно того, какой алгоритм обучения или гиперпараметры использовать.
При анализе ошибок мы используем первые два типа, а именно обучающий и развивающий наборы. Тестовый набор изображений не зависит от первых двух. Мы не должны включать тестовые изображения в процесс обучения. Это может привести к переоснащению модели, что приведет к снижению производительности. Цель состоит в том, чтобы получить обобщенное решение, основанное на данных обучения и разработки.
Улучшение ложноотрицательных случаев
Наша модель используется для обнаружения производственных дефектов. В этом случае положительным результатом является правильная идентификация дефектной детали. Тогда как отрицательным результатом является идентификация детали, которая не является дефектной. Ложноотрицательные результаты – это случаи, когда модель неверно предсказывает, что деталь не неисправна, но на самом деле она неисправна. Ложноотрицательные результаты – наихудший возможный результат, поскольку это означает отправку дефектной детали заказчику. Модель не в состоянии выявить дефекты.
Чтобы решить эту проблему, нам нужна модель с высокой частотой отзыва. Это должна быть модель с высоким процентом правильно идентифицируемых дефектов.
Мы рассмотрим два сценария, в которых мы использовали аналитика ошибок для быстрого повышения производительности. Мы обучали модель обнаружения объектов обнаруживать дефекты ребер и труб. Каждая часть содержала несколько изображений, которые мы использовали для обучения и оценки. Дефекты ребер были относительно обычным явлением. Дефекты труб были очень редкими, составляя менее 1%.
Наша базовая модель показала только 74% повторяемости дефектов труб. При анализе ошибок с помощью набора для разработки мы обнаружили, что в модели отсутствуют серьезные дефекты труб. Поскольку дефекты трубок были редкостью, мы могли вручную проверить распределение в наборах данных.
Удивительно, но мы обнаружили, что в обучающем наборе не было серьезных дефектов трубки. Все они были распределены по наборам для разработки и тестирования. Это произошло из-за того, как мы создали обучающий набор.
Как правило, мы случайным образом распределяем наши данные изображений между наборами для обучения, разработки и тестирования, чтобы получить аналогичные распределения. Однако, поскольку серьезные дефекты труб были очень редки, была высокая вероятность неудачного выбора из-за случайного выбора. Это привело к тому, что в обучающем наборе не было серьезных дефектов труб.
В идеале мы бы собрали больше примеров серьезных дефектов труб для распространения в обучающем наборе. Это было невозможно из-за их редкости.
Если бы мы публиковали исследовательскую работу, наборы данных обычно были бы исправлены в начале проекта. Мы бы выполняли всю нашу разработку с этим фиксированным набором данных. Затем мы бы сообщили об окончательных результатах, используя набор тестов. Это ограничение связано с необходимостью сравнения наших методов с методами других исследователей, использующих те же наборы данных. Однако в данном случае это не исследовательский проект.
Работая над моделью заказчика, мы не ограничены фиксированными наборами данных. Набор данных клиентов постоянно растет. Конечным результатом в данном случае является предоставление наилучшего из возможных рабочих решений. В этом случае допустимо перемещать изображения между обучением и разработкой. Критический вопрос заключается в том, чтобы не повлиять на производительность нашего набора тестов и обеспечить максимально возможную производительность в производстве.
Нашим простым решением здесь было перенести несколько изображений серьезных дефектов труб из набора для проявки в набор для обучения. После переподготовки повторяемость дефектов труб увеличилась до 91%.
Применить Увеличение данных
После переподготовки нашей модели мы повторно проверили ее на наличие ошибок. Теперь аналитика ошибок показала, что в ней отсутствуют дефекты трубки, в основном по краям изображения. Это можно легко решить, применив увеличение данных. Мы произвольно обрезали существующие изображения, чтобы смоделировать больше случаев, когда дефекты оказываются по краям изображений.
Мы переподготовили модель, используя вероятности 0,25, 0,5 и 0,75 для обрезанных изображений. После увеличения данных лучшая модель достигла 100% повторения дефектов трубки.
Дорогостоящие изменения в обучающих данных
Мы рассмотрели более сложный вариант, такой как переключение на модель сегментации. Это предоставило бы модели больше информации при изучении дефектов. Мы даже рассматривали возможность увеличения размера нашего набора данных путем создания синтетических дефектов. Такие изменения потребовали бы значительных затрат на маркировку и разработку. Тем не менее, ни один из этих подходов не позволил бы напрямую устранить ошибки модели.
Вместо этого мы внесли эти два небольших и изолированных изменения. Во-первых, мы обнаружили, что наш набор для обучения не включает дефекты, которые нам нужно было обнаружить. Во-вторых, мы дополнили набор для обучения существующими изображениями, обрезав их. Выбор в пользу более простого и зачастую более практичного метода может быстро повысить производительность модели.
Небольшие и Изолированные Эксперименты
Мы составили небольшую таблицу рекомендаций по устранению ошибок при визуальном осмотре. Подобные методы следует использовать в первую очередь, прежде чем предпринимать что-то более продвинутое или сложное. Хотя они могут и не полностью устранить пробелы в производительности, вы должны быстро сузить возможные варианты.
Корзина с | Небольшой и Изолированный Эксперимент |
Изображения размытые | Добавьте увеличение данных случайного размытия. |
Изображения становятся ярче или темнее | Добавьте произвольное увеличение данных о яркости.Нормализуйте яркость изображения. |
Дефекты находятся в углах или по краям изображения | Добавьте случайное увеличение данных обрезки.Добавьте случайное увеличение данных сдвига. |
Высокий процент ложноположительных результатов при обнаружении дефекта X | Увеличьте порог достоверности для дефекта X. |
Пропущенный редкий дефект | Добавьте больше примеров дефектов в тренировочный набор.Увеличьте выборку редких дефектов во время тренировки.Добавьте вес класса к потере. |
Мы рекомендуем вам создать собственную небольшую изолированную таблицу экспериментов и предоставить к ней общий доступ. Сделайте ее специфичной для вашего варианта использования. Обновляйте ее по мере итерации ваших моделей.
Заключение
Подводя итог, Аналитика ошибок позволит вам легко выявить наиболее распространенные типы ошибок модели. В результате вы сможете разработать серию небольших изолированных экспериментов для быстрого и эффективного устранения пробелов в производительности.
Ключевые рекомендации
- При оценке модели группируйте ошибки в группы, находя наибольшие источники ошибок.
- Быстро устраняйте пробелы в производительности с помощью небольших и изолированных изменений, чтобы напрямую устранить самые крупные источники ошибок.