Переобучение
Узнайте, как выявлять, предотвращать и устранять переобучение в машинном обучении. Откройте для себя методы улучшения обобщения модели и производительности в реальных условиях.
Переобучение — это фундаментальное понятие в машинном обучении (ML), которое возникает, когда модель изучает детали и шум в обучающих данных до такой степени, что это негативно влияет на производительность модели на новых, невиданных данных. По сути, модель запоминает обучающий набор вместо изучения основных закономерностей. Это приводит к тому, что модель достигает высокой точности на данных, на которых она была обучена, но не может быть обобщена на реальные данные, что делает ее ненадежной для практического применения. Достижение хорошего обобщения является основной целью в разработке ИИ.
Как определить переобучение
Переобучение обычно выявляется путем мониторинга производительности модели как на обучающем наборе данных, так и на отдельном наборе данных для валидации в процессе обучения. Распространенным признаком переобучения является то, что значение функции потерь для обучающего набора продолжает уменьшаться, в то время как потери для набора валидации начинают увеличиваться. Аналогично, если точность обучения продолжает улучшаться, но точность валидации стабилизируется или ухудшается в последующие эпохи, модель, вероятно, переобучается. Такие инструменты, как TensorBoard, отлично подходят для визуализации этих метрик и ранней диагностики таких проблем. Платформы, такие как Ultralytics HUB, также могут помочь отслеживать эксперименты и оценивать модели для обнаружения переобучения.
Переобучение и недообучение
Переобучение и недообучение — две распространенные проблемы в машинном обучении, которые представляют собой неспособность модели к обобщению. По сути, это противоположные проблемы.
- Переобучение: Модель слишком сложна для данных (высокая дисперсия). Она улавливает шум и случайные колебания в обучающих данных, что приводит к отличной производительности во время обучения, но к плохой производительности на тестовых данных.
- Недообучение: Модель слишком проста, чтобы уловить лежащую в основе структуру данных (высокое смещение). Она плохо работает как на обучающих, так и на тестовых данных, потому что не может изучить соответствующие закономерности.
Задача в глубоком обучении состоит в том, чтобы найти правильный баланс, концепцию, часто описываемую компромиссом между смещением и дисперсией.
Реальные примеры переобучения
- Обнаружение объектов в автономных транспортных средствах: Представьте себе обучение модели Ultralytics YOLO для автономного транспортного средства с использованием набора данных, который содержит только изображения, сделанные в солнечных условиях днем. Модель может стать узкоспециализированной в обнаружении пешеходов и автомобилей при ярком свете, но потерпит неудачу ночью или в дождливую или туманную погоду. Она переобучилась на конкретные условия освещения и погоды в обучающих данных. Использование разнообразных наборов данных, таких как Argoverse, может помочь предотвратить это.
- Анализ медицинских изображений: Модель CNN обучена обнаруживать опухоли на МРТ-снимках, полученных из одной больницы. Модель может непреднамеренно научиться связывать определенные артефакты или шумовые паттерны с конкретного МРТ-аппарата этой больницы с наличием опухоли. При тестировании на снимках из другой больницы с другим аппаратом ее производительность может значительно снизиться, поскольку она переобучилась на шумы исходного набора данных, а не на фактические биологические маркеры опухолей. Это критически важная проблема в таких областях, как ИИ в здравоохранении.
Как предотвратить переобучение
Можно использовать несколько методов для борьбы с переобучением и создания более надежных моделей.
- Получите больше данных: Увеличение размера и разнообразия обучающего набора данных - один из наиболее эффективных способов предотвращения переобучения. Больше данных помогает модели изучить истинные закономерности, а не шум. Вы можете изучить различные наборы данных Ultralytics, чтобы улучшить свои проекты.
- Аугментация данных (Data Augmentation): Это включает в себя искусственное расширение набора обучающих данных путем создания измененных копий существующих данных. Применяются такие методы, как случайные повороты, масштабирование, обрезка и сдвиги цветов. Методы аугментации данных Ultralytics YOLO встроены для повышения устойчивости модели.
- Упрощение архитектуры модели: Иногда модель оказывается слишком сложной для данного набора данных. Использование более простой архитектуры с меньшим количеством параметров может предотвратить запоминание данных. Например, выбор меньшего варианта модели, такого как YOLOv8n вместо YOLOv8x, может быть полезным для небольших наборов данных.
- Регуляризация: Этот метод добавляет штраф к функции потерь, основанный на сложности модели, препятствуя большим весам модели. Распространенными методами являются L1 и L2 регуляризация, о которых вы можете прочитать здесь.
- Dropout: Особая форма регуляризации, при которой случайная доля нейронов игнорируется на каждом шаге обучения. Это заставляет сеть изучать избыточные представления и предотвращает чрезмерное влияние какого-либо одного нейрона. Концепция Dropout подробно объяснена здесь.
- Ранняя остановка (Early Stopping): Это включает в себя мониторинг производительности модели на проверочном наборе и остановку процесса обучения, как только производительность проверки начинает снижаться, даже если производительность обучения все еще улучшается. Вы можете увидеть объяснение ранней остановки в Keras для получения более подробной информации.
- Перекрестная проверка (Cross-Validation): Используя такие методы, как перекрестная проверка K-Fold (K-Fold cross-validation), данные разбиваются на несколько частей, и модель обучается и проверяется на разных подмножествах. Это обеспечивает более надежную оценку способности модели к обобщению.
- Удаление незначащих связей: Это включает в себя удаление параметров или связей из обученной сети, которые оказывают незначительное влияние на ее производительность, тем самым уменьшая сложность. Такие компании, как Neural Magic, предлагают инструменты, которые специализируются на удалении незначащих связей для эффективного развертывания.