Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Недообучение

Узнайте, как выявлять и устранять недообучение в машинном обучении. Изучите причины, индикаторы и способы оптимизации моделей Ultralytics для повышения точности.

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

Причины и показатели

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

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

Недооценка против переоценки

Очень важно отличать недообучение от его противоположности — переобучения. Эти два понятия представляют собой противоположные крайности компромисса между смещением и дисперсией.

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

Нахождение «золотой середины» между этими двумя крайностями является основной целью оптимизации модели.

Применение в реальном мире

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

  • Автономное вождение: в контексте автономных транспортных средств недооцененная модель обнаружения объектов может не различать пешехода и фонарный столб в сложных городских условиях. Поскольку модель не имеет параметров для изучения тонких визуальных различий, это ставит под угрозу безопасность ИИ.
  • Медицинская диагностика: при применении анализа медицинских изображений для detect , таких как опухоли, слишком простая модель может пропустить небольшие или нерегулярные новообразования. Если нейронная сеть слишком неглубокая, она не может обучиться сложным текстурам, необходимым для высокой чувствительности и специфичности, что приводит к пропущенным диагнозам.

Решение проблемы недообучения с помощью кода

В компьютерное зрение. Недооценка часто происходит при использовании варианта модели, который слишком мал для сложности задачи (например, обнаружение небольших объектов на снимках с дронов с высоким разрешением). Следующее Python Пример демонстрирует, как перейти с меньшей модели на более крупную и мощную модель, используя ultralytics библиотеку для устранения возможной недооценки.

from ultralytics import YOLO

# If 'yolo26n.pt' (Nano) is underfitting and yielding low accuracy,
# upgrade to a model with higher capacity like 'yolo26l.pt' (Large).
model = YOLO("yolo26l.pt")

# Train the larger model.
# Increasing epochs also helps the model converge if it was previously underfitting.
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас