Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Curriculum Learning

Обучение с постепенным усложнением сначала использует более простые примеры, а затем постепенно добавляет сложные, ориентируясь на оценку сложности и функцию темпа.

Обучение по curriculum — это стратегия машинного обучения, при которой примеры предъявляются в осмысленном порядке, обычно от простых к сложным, а не выбираются равновероятно случайным образом. Подобно школьной программе, она позволяет нейронной сети сначала усвоить общие простые закономерности на чистых примерах, прежде чем встретиться с неоднозначными, загромождёнными или зашумлёнными данными. В 2009 году Bengio и соавторы сформулировали эту идею применительно к глубокому обучению: по их мнению, постепенное усложнение упрощает оптимизацию невыпуклой функции потерь и помогает находить лучшие минимумы; они сообщили о значительном улучшении обобщающей способности в задачах распознавания форм и языкового моделирования.

Как работает обучение по учебному плану#

В обучении по curriculum нужны два компонента, которые Hacohen и Weinshall называют функцией оценки и функцией темпа. Функция оценки ранжирует обучающие данные по сложности, используя человеческие эвристики, например размер объекта, перекрытие или длину предложения, уверенность предварительно обученной модели-учителя либо значение функции потерь обучаемой модели. Функция темпа определяет, как быстро в обучающую выборку добавляются более сложные примеры, например начиная с самых простых 20% и постепенно переходя ко всему набору данных. В приведённом ниже фрагменте кода игрушечный набор данных оценивается моделью-учителем, а модель-ученик обучается на постепенно расширяемой выборке, начиная с самых простых примеров, с помощью scikit-learn:

import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression, SGDClassifier

# A toy dataset with 10% flipped labels, so some samples are genuinely hard
X, y = make_classification(n_samples=2000, n_features=20, flip_y=0.1, random_state=0)

# Scoring function: a teacher's confidence in each true label, sorted easiest first
teacher = LogisticRegression(max_iter=1000).fit(X, y)
confidence = teacher.predict_proba(X)[np.arange(len(y)), y]
order = np.argsort(-confidence)

# Pacing function: start with the easiest 20% and add 20% more each epoch
student = SGDClassifier(random_state=0)
for epoch in range(5):
    pool = order[: int((0.2 + 0.2 * epoch) * len(order))]
    student.partial_fit(X[pool], y[pool], classes=[0, 1])
    print(f"Epoch {epoch}: {len(pool)} samples, mean teacher confidence {confidence[pool].mean():.2f}")

Выборка увеличивается с 400 до 2000 примеров, а средняя уверенность модели-учителя снижается с 0.99 до 0.89, когда в последнюю эпоху добавляются самые сложные 20% примеров.

Самостоятельное обучение избавляет от необходимости в модели-учителе: модель строит собственную программу обучения, опираясь на текущую функцию потерь. Это одно из основных семейств методов обучения по curriculum в обзоре Soviany и соавторов. На каждом шаге в обучающую выборку добавляются примеры, с которыми модель уже хорошо справляется, а порог функции потерь повышается, пока не будут включены все примеры.

Когда обучение по curriculum помогает#

Обучение по curriculum помогает реже, чем можно предположить. Проведя тысячи запусков обучения, Wu, Dyer и Neyshabur обнаружили лишь незначительный эффект на стандартных тестах компьютерного зрения: случайный порядок данных в расширяющейся выборке давал не худший результат, чем упорядочивание от простого к сложному. При ограниченном бюджете времени на обучение или зашумлённых метках результаты улучшались — именно в этих условиях специалисты чаще всего применяют этот подход.

Примеры применения в реальных условиях#

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

В компьютерном зрении curriculum для обнаружения объектов может сначала включать крупные объекты без перекрытий, а позже — мелкие объекты, загромождённые сцены или изображения при плохом освещении. При обучении Ultralytics YOLO26 акценты тоже меняются со временем: в функции потерь end-to-end на каждой эпохе вес постепенно переносится с плотной головы «один-ко-многим» на голову «один-к-одному», используемую nms=False, а close_mosaic=10 отключает мозаику, MixUp, CutMix и аугментацию с копированием и вставкой изображений за последние 10 эпох, чтобы обучение завершалось на изображениях, похожих на реальные входные данные. При анализе медицинских изображений обучение может начинаться со снимков, в разметке которых согласны эксперты, а неоднозначные случаи добавляются позже. Это подходит для работы с зашумлёнными метками — условий, в которых curriculum приносит наибольшую пользу.

  • Непрерывное обучение: непрерывное обучение со временем добавляет новые задачи или распределения данных и должно предотвращать забывание старых. Обучение по curriculum меняет порядок данных для одной фиксированной задачи.
  • Активное обучение: активное обучение выбирает, какие неразмеченные примеры отправить на разметку, а обучение по curriculum упорядочивает уже размеченные примеры.
  • Перенос обучения: перенос обучения предварительно обучает модель на большом универсальном наборе данных, а затем дообучает её для другой целевой задачи, то есть между этапами меняется сама задача.
  • Поиск сложных негативных примеров: при поиске сложных примеров акцент делается на тех, в которых модель чаще всего ошибается, что противоположно curriculum с обучением от простого к сложному. При онлайн-поиске сложных примеров (OHEM) для детекторов Fast R-CNN обратное распространение ошибки выполняется только через регионы-кандидаты с наибольшими значениями функции потерь на каждом изображении.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения