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

Regularization

Регуляризация ограничивает модель во время обучения, чтобы она обобщала данные, а не запоминала шум. Рассматриваются L1, L2, затухание весов, dropout и ранняя остановка.

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

Штрафы L1 и L2#

Классический вариант добавляет штраф за веса к функции потерь: общая функция потерь = потеря на данных + λ × штраф. Регуляризация L2 штрафует за сумму квадратов весов, Σw², притягивая каждый вес к нулю пропорционально его величине; в линейных моделях этот метод называется гребневой регрессией. Регуляризация L1 штрафует за сумму абсолютных значений весов; её постоянное воздействие сводит многие веса точно к нулю. Поэтому линейная регрессия со штрафом L1, или лассо, одновременно выполняет отбор признаков. Эластичная сеть сочетает оба подхода. Сила штрафа λ, называемая alpha в scikit-learn, — это гиперпараметр: слишком малое значение не избавит от переобучения, а слишком большое приведёт к недообучению. Полином 9-й степени, аппроксимирующий 12 зашумлённых точек синусоиды, демонстрирует оба сценария:

import numpy as np
from sklearn.linear_model import Ridge
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures

rng = np.random.default_rng(0)

# 12 noisy training points from a sine wave, plus clean test points
x_train = rng.uniform(0, 1, (12, 1))
y_train = np.sin(2 * np.pi * x_train[:, 0]) + rng.normal(0, 0.2, 12)
x_test = np.linspace(0, 1, 200)[:, None]
y_test = np.sin(2 * np.pi * x_test[:, 0])

# The same degree-9 polynomial, fit with a growing L2 penalty on its coefficients
for alpha in (0.0, 1e-4, 1e-2, 1.0):
    model = make_pipeline(PolynomialFeatures(9), Ridge(alpha=alpha)).fit(x_train, y_train)
    train_mse = np.mean((model.predict(x_train) - y_train) ** 2)
    test_mse = np.mean((model.predict(x_test) - y_test) ** 2)
    weight_norm = np.linalg.norm(model[-1].coef_)
    print(f"alpha {alpha:g}: train MSE {train_mse:.4f}, test MSE {test_mse:.4f}, |w| {weight_norm:.1f}")

Без штрафа полином проходит через шум: норма его коэффициентов достигает примерно 425 000, ошибка на обучающих данных составляет 0.0148, а на тестовых — 0.1859. Штраф 0.0001 уменьшает норму коэффициентов до 20.8 и снижает ошибку на тестовых данных в 11 раз — до 0.0170, хотя ошибка на обучающих данных возрастает до 0.0334. При alpha, равном 1, штраф доминирует и модель недообучается: ошибка на тестовых данных составляет 0.3998.

Затухание весов и dropout в нейронных сетях#

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

Слой dropout с вероятностью p обнуляет выход каждого нейрона на каждом шаге обучения и масштабирует оставшиеся выходы на 1/(1 − p). Поэтому сеть не может полагаться на какой-либо один нейрон и фактически обучает множество прореженных подсетей с общими весами. На этапе инференса активны все нейроны. В первоначальных экспериментах вероятность dropout 0.5 для скрытых нейронов была близка к оптимальной для широкого спектра сетей и задач.

Обучение Ultralytics YOLO поддерживает оба параметра: weight_decay со значением 0.0005 по умолчанию применяется только к весам свёрточных и линейных слоёв, но не к смещениям и параметрам слоёв нормализации; dropout со значением 0.0 по умолчанию применяется непосредственно перед последним линейным слоем моделей классификации YOLO26.

from ultralytics import YOLO

# Загрузи предварительно обученную модель классификации YOLO26n
model = YOLO("yolo26n-cls.pt")

# Обучи модель с dropout в классификационной головке и более сильным затуханием весов
results = model.train(data="mnist160", epochs=10, dropout=0.2, weight_decay=0.001)

Другие методы регуляризации#

  • Аугментация данных: отражения, обрезка, масштабирование, изменение цветов и мозаичная аугментация разнообразят обучающие изображения, поэтому модель видит каждый объект в большем числе условий, чем представлено в исходном наборе данных.
  • Сглаживание меток: Заменяет one-hot-метки классификации слегка смягчёнными значениями, чтобы модель перестала доводить логиты до крайних значений уверенности.
  • Неявная регуляризация: Шум градиента при обучении на небольших пакетах и шум между пакетами, возникающий при пакетной нормализации, обеспечивают регуляризацию без явного слагаемого.

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

  • Нормализация: Масштабирует входные данные или активации, чтобы ускорить и стабилизировать обучение. Пакетная нормализация обеспечивает регуляризацию лишь как побочный эффект.
  • Подбор гиперпараметров: Выполняет поиск подходящих значений параметров регуляризации, таких как λ, вероятность dropout и терпение, а также всех остальных гиперпараметров.
  • Ансамбли моделей: Снижают разброс, усредняя предсказания нескольких независимо обученных моделей. Dropout приближённо воспроизводит такой ансамбль внутри одной сети: при обучении выбираются прореженные подсети из их экспоненциального множества, а запуск полной сети со всеми активными нейронами на этапе тестирования приближённо усредняет их предсказания.

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

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

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

Узнай, как 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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