Transfer Learning
Изучи transfer learning для обучения высокоточных моделей ИИ на меньшем объёме данных. Узнай, как использовать предварительно обученные веса Ultralytics YOLO26 для ускорения проектов компьютерного зрения.
Трансферное обучение — это мощный метод в области машинного обучения (ML), при котором модель, разработанная для конкретной задачи, повторно используется как отправная точка для модели, предназначенной для другой связанной задачи. Вместо обучения нейронной сети с нуля, что требует огромных наборов данных и значительных вычислительных ресурсов, разработчики используют знания, которые AI уже успел получить. Такой подход имитирует процесс обучения человека: например, умение играть на пианино значительно облегчает обучение игре на органе, поскольку базовое понимание музыкальной теории и ловкость пальцев переносятся на новый навык. В контексте глубокого обучения это означает, что модель может достичь высокой точности в новой задаче, используя значительно меньше данных и времени.
Как работает трансферное обучение#
Эффективность трансферного обучения обусловлена иерархической природой извлечения признаков. Модели глубокого обучения, особенно используемые в компьютерном зрении, учатся распознавать закономерности на разных слоях. Начальные слои бэкбона обнаруживают простые универсальные признаки, такие как границы, кривые и текстуры. Эти низкоуровневые признаки применимы практически к любой задаче компьютерного зрения.
Обычно процесс включает два основных этапа:
-
Предварительное обучение: Модель обучают на крупном эталонном наборе данных, таком как ImageNet, чтобы она научилась формировать общие визуальные представления. В результате получается набор весов модели, которые уже содержат информацию о визуальной структуре.
-
Адаптация: Затем предварительно обученную модель адаптируют к конкретной узкоспециализированной задаче. Часто для этого ранние слои «замораживают» (оставляют их веса неизменными), а переобучают только последние слои или голову детекции на меньшем пользовательском наборе данных.
Практические применения#
Трансферное обучение демократизировало AI, позволив создавать специализированные решения без ресурсов крупных технологических компаний.
- AI в здравоохранении: Собирать миллионы размеченных медицинских изображений для каждого конкретного заболевания сложно. Однако исследователи могут взять модель, предварительно обученную на повседневных объектах, и применить её к анализу медицинских изображений. Модель переносит способность обнаруживать формы и аномалии на задачу выявления опухолей на рентгеновских снимках или МРТ-сканах с высокой точностью.
- AI в производстве: В промышленных условиях системы визуального контроля должны быстро адаптироваться к новым производственным линиям. Обобщённую модель обнаружения дефектов можно быстро обновить для выявления неисправностей в конкретном новом компоненте, например микрочипе, используя процессы умного производства, чтобы свести простои к минимуму.
Связь с другими концепциями#
Полезно отличать трансферное обучение от близких по смыслу терминов:
- в сравнении с дообучением: Дообучение — это конкретный метод реализации трансферного обучения. Если трансферное обучение — это общая концепция повторного использования знаний, то дообучение обозначает технический процесс размораживания частей модели и их обучения на новых данных с более низкой скоростью обучения.
- в сравнении с обучением без примеров: Трансферное обучение требует этапа обучения с некоторым количеством размеченных данных для новой задачи. В отличие от него, обучение без примеров пытается классифицировать объекты, которых модель никогда раньше не видела, часто опираясь на семантические описания, а не на визуальные примеры.
Практический пример#
Следующий фрагмент кода на 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 Platform, упрощают рабочий процесс, позволяя командам совместно размечать данные и эффективно развертывать модели, обученные с помощью трансферного обучения.
Для более глубокого изучения академической теории отличным обзором послужат конспекты Stanford CS231n, а учебник по трансферному обучению в PyTorch содержит подробные технические сведения по реализации.






