Изучите трансферное обучение, чтобы обучать высокоточный ИИ с меньшим количеством данных. Узнайте, как использовать предварительно обученные веса Ultralytics для ускорения ваших проектов в области компьютерного зрения.
Перенос обучения — это мощная техника в машинном обучении (ML), при которой модель, разработанная для конкретной задачи, повторно используется в качестве отправной точки для модели по второй, связанной задаче. Вместо того, чтобы обучать нейронную сеть с нуля, что требует огромных наборов данных и значительных вычислительных мощностей, разработчики используют знания, уже накопленные ИИ. Этот подход имитирует процесс обучения человека; например, знание игры на фортепиано значительно облегчает освоение органа, поскольку переносится базовое понимание теории музыки и ловкость пальцев. В контексте глубокого обучения это означает, что модель может достичь высокой точности при решении новой задачи с использованием значительно меньшего количества данных и времени.
Эффективность переноса обучения заключается в иерархическом характере извлечения признаков. Модели глубокого обучения, особенно те, которые используются в компьютерном зрении, учатся распознавать паттерны в слоях. Начальные слои основной сети detect , универсальные признаки, такие как края, кривые и текстуры. Эти низкоуровневые признаки применимы практически к любой визуальной задаче.
Этот процесс обычно состоит из двух основных этапов:
Перенос обучения демократизировал ИИ, позволив создавать специализированные решения без использования ресурсов крупных технологических компаний.
Полезно отличать трансферное обучение от близкородственных терминов:
Следующие Python фрагмент демонстрирует перенос обучения с использованием
ultralytics библиотеку. Мы загружаем YOLO26 модель,
которая поставляется с предварительно обученными весами, полученными из COCO . Когда мы начинаем обучение на новом наборе данных,
модель автоматически переносит свои предварительно обученные особенности на новую задачу.
from ultralytics import YOLO
# Load a pre-trained YOLO26 model (transferring weights from COCO)
model = YOLO("yolo26n.pt")
# Train the model on a new, smaller dataset to adapt its knowledge
# This leverages the pre-learned backbone for faster convergence
results = model.train(data="coco8.yaml", epochs=5)
Для управления наборами данных и выполнения этих тренировочных прогонов в облаке такие инструменты, как Ultralytics , оптимизируют процесс, позволяя командам совместно работать над аннотированием данных и эффективно развертывать модели, обученные с помощью переноса знаний.
Для более глубокого погружения в академическую теорию конспекты курса CS231n Стэнфордского университета предлагают отличный обзор, а учебникPyTorch обученияPyTorch содержит подробные технические сведения по реализации.