Улучшите свои модели машинного обучения с помощью аугментации данных. Откройте для себя методы повышения точности, уменьшения переобучения и повышения устойчивости.
Увеличение объема данных — важная техника в машинном обучении и компьютерном зрении, используемая для искусственного увеличения размера и разнообразия обучающего набора данных путем создания модифицированных версий существующих данных. Вместо сбора и маркировки совершенно новых данных, что может быть трудоемким и дорогостоящим, при расширении к исходным образцам применяются различные преобразования. Эти модификации помогают моделям машинного обучения научиться более надежно распознавать паттерны, обеспечивая их эффективную работу даже при столкновении с вариациями в реальных условиях. Подвергая модели более широкому спектру сценариев во время обучения, разработчики могут эффективно снизить переобучение и улучшить обобщение.
В области компьютерного зрения модели часто испытывают трудности при работе с изображениями, которые немного отличаются от их обучающих данных. Различия в освещении, ориентации или фоновом беспорядке могут сбить с толку модель, которая не видела достаточно разнообразных изображений. Увеличение объема данных решает эту проблему путем программного моделирования этих различий. Например, изображение кошки может быть повернуто, отвернуто или слегка размыто, чтобы научить модель тому, что объект остается «кошкой» независимо от этих изменений.
Этот процесс является неотъемлемой частью успеха современных архитектур, таких как Ultralytics , которая опирается на богатые и разнообразные наборы данных для достижения высокой точности в таких задачах, как обнаружение объектов и сегментация изображений. Путем синтеза новых обучающих примеров, аугментация позволяет моделям обучаться инвариантным особенностям — характеристикам, которые не изменяются, несмотря на изменения во входных данных.
Увеличение объема данных включает в себя широкий спектр методов преобразования, от простых геометрических корректировок до сложных генеративных подходов:
Практическое влияние увеличения объема данных распространяется на множество отраслей, где проблемой является дефицит данных или их высокая изменчивость .
При разработке автономных транспортных средств сбор данных для всех возможных погодных условий или сценариев освещения практически невозможен. Инженеры используют дополнение данных для моделирования дождя, тумана, снега или бликов на изображениях с ясной погодой. Это гарантирует, что система восприятия сможет надежно detect , дорожные знаки и другие транспортные средства независимо от факторов окружающей среды, повышая безопасность и надежность.
Анализ медицинских изображений часто страдает от ограниченности наборов данных из-за проблем конфиденциальности и редкости определенных заболеваний. Аугментация позволяет исследователям расширять небольшие наборы данных рентгеновских снимков или МРТ-сканов путем применения упругих деформаций, поворотов или сдвигов интенсивности. Это помогает обучать надежные диагностические модели, способные идентифицировать опухоли или переломы с высокой чувствительностью, даже когда положение пациента или качество сканирования варьируются.
Важно отличать увеличение объема данных от синтетических данных. Хотя и то, и другое направлено на увеличение объема набора данных, синтетические данные искусственно генерируются с нуля (часто с использованием 3D-рендеринга или симуляторов), тогда как увеличение объема данных модифицирует существующие реальные данные. Кроме того, предварительная обработка данных включает в себя очистку и форматирование данных (например, изменение размера, нормализацию), чтобы сделать их пригодными для модели, но в отличие от увеличения, она не обязательно увеличивает количество обучающих выборок.
Современные фреймворки интегрируют аугментацию непосредственно в конвейер обучения. Пример ниже демонстрирует, как
применять аугментации, такие как переворот и масштабирование, во время обучения модели YOLO26 с использованием
ultralytics пакет.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Train with custom data augmentation hyperparameters
# fliplr: 50% chance of horizontal flip, scale: image scaling gain
results = model.train(data="coco8.yaml", epochs=10, fliplr=0.5, scale=0.5)
Регулируя эти гиперпараметры, разработчики могут адаптировать стратегию аугментации к конкретным потребностям своего набора данных и приложения, используя гибкость Ultralytics для эффективной разработки моделей.