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

Weight Decay

Weight decay — это метод регуляризации, который стягивает веса модели к нулю, помогая нейронным сетям уменьшать переобучение и обобщать данные.

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

Джеффри Хинтон представил weight decay в своей статье 1986 года «Обучение распределённых представлений понятий». В эксперименте с генеалогическим древом он уменьшал величину весов на 0,2% после каждого обновления, чтобы упростить интерпретацию выученных связей. Впоследствии weight decay получил широкое распространение как способ контролировать переобучение.

Как работает weight decay#

При градиентном спуске оптимизатор изменяет параметры с помощью градиентов — производных, которые показывают, как каждый параметр влияет на функцию потерь. Weight decay стягивает параметры к нулю. В соглашении с масштабированием на скорость обучения, используемом многими оптимизаторами, обновление обычного SGD без момента записывается как new weight = (1 - learning rate × decay) × old weight - learning rate × gradient. В нём обучение на основе ошибок предсказаний сочетается с пропорциональным уменьшением весов.

Коэффициент затухания определяет силу этого стягивания. Нулевое значение отключает его, а при фиксированной скорости обучения более высокие положительные значения усиливают уменьшение весов. Градиент задачи всё ещё может увеличить вес, если это улучшает предсказания. При снижении скорости обучения постепенно уменьшается шаг оптимизатора, тогда как weight decay воздействует на значения параметров.

Weight decay и L2-регуляризация#

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

При использовании оптимизатора Adam добавление штрафа L2 передаёт градиент штрафа через экспоненциальные скользящие средние Adam и масштабирование, зависящее от параметров. AdamW применяет уменьшение весов отдельно от этого адаптивного расчёта градиента. Илья Лошчилов и Фрэнк Хаттер представили AdamW в статье 2017 года «Регуляризация с развязанным затуханием весов», опубликованной на ICLR 2019. Такое разделение делает силу затухания независимой от масштабирования градиента на основе его истории в Adam.

Как выбрать силу затухания#

Weight decay — это гиперпараметр, который выбирают с помощью валидационных данных. Слишком слабое затухание недостаточно ограничивает переобучение. Чрезмерное затухание приводит к недообучению: модель не может выявить полезные закономерности, из-за чего ошибки на обучающих и валидационных примерах оказываются высокими. Сравнение результатов на валидации при разных значениях затухания помогает определить подходящую силу регуляризации для конкретной модели и набора данных.

Накопленный эффект также зависит от расписания скорости обучения и числа обновлений оптимизатора. Изменение размера пакета или числа эпох обучения может изменить количество применений затухания; при накоплении градиентов несколько пакетов объединяются перед обновлением. Слой dropout выполняет регуляризацию, случайным образом обнуляя активации, а ранняя остановка ограничивает длительность обучения.

Ultralytics YOLO предоставляет параметр обучения weight_decay со значением по умолчанию 0.0005, который управляет регуляризацией при обучении таких моделей, как YOLO26. В группы параметров оптимизатора не включаются смещения и параметры слоёв нормализации, поэтому weight decay на них не распространяется.

Weight decay в PyTorch#

Оптимизатор torch.optim.AdamW реализует развязанный weight decay в PyTorch. Установи пакет командой pip install torch; в этом примере создаётся нулевой градиент задачи, чтобы вывод показывал только эффект weight decay:

import torch

weight = torch.nn.Parameter(torch.tensor([2.0]))
optimizer = torch.optim.AdamW([weight], lr=0.1, weight_decay=0.1)
before = weight.item()

# Create a zero gradient while keeping the parameter in the computation.
optimizer.zero_grad()
loss = (weight * 0).sum()
loss.backward()
optimizer.step()

print(f"Weight: {before:.2f} -> {weight.item():.2f}")

Результат — Weight: 2.00 -> 1.98: одно обновление умножает вес на 1 - 0.1 × 0.1, то есть на 0,99, уменьшая его величину на 1%.

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

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

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

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

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

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