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

Dropout Layer

Слой dropout случайным образом обнуляет часть активаций во время обучения, не позволяя сети полагаться на отдельные нейроны и снижая переобучение.

Слой dropout — это компонент регуляризации нейронной сети, который на каждом шаге обучения случайным образом обнуляет долю p входных значений, а при инференсе передает все значения без изменений. Поскольку любой нейрон может отключиться на любом шаге, сеть не может полагаться на несколько конкретных нейронов или на их хрупкую взаимную адаптацию. Поэтому она учится извлекать более избыточные признаки, которые лучше обобщаются, и меньше переобучается на обучающих данных. Джеффри Хинтон и его коллеги представили этот метод в 2012 году, а Шривастава, Хинтон и соавторы подробно описали его в 2014 году. Это встроенный слой в PyTorch, TensorFlow и большинстве других платформ глубокого обучения. Его используют в архитектурах от полносвязных классификационных голов до трансформеров.

Как работает dropout#

Во время обучения слой создает новую случайную маску для каждого прямого прохода: каждое значение сохраняется с вероятностью 1 − p и обнуляется с вероятностью p. Поэтому на каждом шаге обучается своя прореженная подсеть, а полная сеть, используемая при тестировании, приближает усреднение по экспоненциально большому числу подсетей с общими весами. Поэтому dropout часто называют дешевым обучением ансамбля. Чтобы ожидаемое значение активации оставалось одинаковым в обеих фазах, современные платформы используют инвертированный dropout: сохраненные значения во время обучения умножаются на 1 / (1 − p), поэтому при инференсе слой ничего не делает. В PyTorch nn.Dropout учитывает режим обучения или оценки модуля:

import torch
from torch import nn

torch.manual_seed(0)
dropout = nn.Dropout(p=0.5)
x = torch.ones(10)

# Режим обучения: примерно половина значений обнуляется, а оставшиеся масштабируются на 1 / (1 - p) = 2
dropout.train()
print("Train:", dropout(x))

# Режим оценки: слой передает все значения без изменений
dropout.eval()
print("Eval: ", dropout(x))

В режиме обучения шесть из десяти значений отбрасываются, а четыре оставшихся становятся равны 2.0, сохраняя ожидаемое значение 1.0; в режиме оценки все десять значений остаются равны 1.0.

Распространенные варианты dropout#

  • Пространственный dropout: nn.Dropout2d в PyTorch обнуляет целые каналы карт признаков. Это подходит для сверточных сетей, поскольку соседние пиксели внутри канала сильно коррелируют, а удаление отдельных пикселей почти не дает регуляризации.
  • Стохастическая глубина (DropPath): вместо отдельных активаций случайным образом пропускаются целые остаточные ветви для каждого примера. Это стандартный элемент обучения Vision Transformer и современных CNN.
  • Dropout Монте-Карло: dropout остается активным при инференсе, и модель выполняет несколько прямых проходов для одного и того же входа. Разброс предсказаний дает недорогую оценку неопределенности модели для систем, критически важных с точки зрения безопасности. Гэл и Гахрамани интерпретировали этот метод как приближенный байесовский вывод.
  • DropConnect: вместо активаций обнуляются отдельные веса, и для каждого соединения используется собственная маска.

Dropout на практике#

Вероятности dropout настраивают, как и любой другой гиперпараметр. Шривастава и соавторы обнаружили, что вероятность 0.5 для отключения скрытых нейронов хорошо работала на широком наборе сетей и задач, тогда как для входных нейронов лучше сохранять вероятность ближе к 1. В исходном Transformer использовалось p = 0.1. Слишком высокая вероятность замедляет сходимость и может привести к недообучению, а размещение dropout непосредственно перед пакетной нормализацией может снизить точность из-за сдвига дисперсии между обучением и тестированием. Многие сверточные нейронные сети в основном полагаются на пакетную нормализацию, аугментацию данных и уменьшение весов, оставляя dropout для классификационной головы. Модели классификации Ultralytics YOLO26 следуют этому шаблону: в них один слой dropout расположен между объединенными признаками с 1,280 каналами и конечным линейным классификатором, а его вероятность задается аргументом обучения dropout (по умолчанию 0.0).

from ultralytics import YOLO

# Загрузи модель классификации YOLO26, в голове которой есть слой dropout
model = YOLO("yolo26n-cls.pt")

# Обучай модель с dropout 10% в классификационной голове на небольшом подмножестве MNIST
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

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

  • Анализ медицинских изображений: Размеченные снимки дороги, поэтому диагностические классификаторы часто дообучают на нескольких тысячах изображений, используя предварительно обученную базовую сеть. Dropout в классификационной голове ограничивает запоминание отдельных случаев из такого небольшого набора.
  • Обработка естественного языка: кодировщики Transformer, такие как BERT, применяют dropout с вероятностью 0.1 на всех слоях, включая веса внимания, во время предварительного обучения и дообучения.
  • Пакетная нормализация: пакетная нормализация стандартизирует входы каждого слоя, чтобы стабилизировать обучение, и добавляет лишь небольшие шумы за счет статистик пакета, не удаляя ни одного нейрона.
  • Сглаживание меток: сглаживание меток регуляризует модель через целевые значения обучения, смягчая метки one-hot, и сохраняет все активации.
  • Прунинг: прунинг навсегда удаляет веса с низкой важностью, чтобы уменьшить модель. При 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. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

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

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