Глоссарий

Выпадающий слой

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

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

Как работает отсев

В процессе обучения для каждого обучающего примера в партии каждый нейрон в слое отсева с определенной вероятностью ("коэффициент отсева", обычно от 0,1 до 0,5) будет деактивирован. Это означает, что его выход будет установлен на ноль для данного конкретного прямого и обратного прохода. Оставшиеся активные нейроны увеличивают свои выходы на коэффициент, равный 1/(1 - коэффициент отсева), чтобы сохранить общую ожидаемую сумму активаций. Этот процесс эффективно создает немного разные "разреженные" архитектуры сети для каждого шага обучения, не позволяя нейронам слишком сильно коадаптироваться и поощряя их к изучению более независимых полезных характеристик. Важно отметить, что на этапе оценки модели или вывода из нее, Dropout Layer отключается, и все нейроны используются со своими выученными весами, что обеспечивает полное использование потенциала сети для предсказаний.

Преимущества и важность

Основное преимущество использования Dropout Layers заключается в улучшении обобщения модели. Предотвращая сложную коадаптацию между нейронами, отсев делает модель менее чувствительной к специфическому шуму и паттернам в обучающих данных, что приводит к лучшей производительности на невидимых проверочных или тестовых данных. Он действует как форма регуляризации, схожая по цели с такими техниками, как L1/L2 weight decay, но работающая через стохастический механизм. Она особенно эффективна в больших сетях с большим количеством параметров, где перебор с подгонкой является распространенной проблемой. Оригинальная концепция была подробно описана в статье "Dropout: A Simple Way to Prevent Neural Networks from Overfitting".

Применение в реальном мире

Dropout Layers широко используются в различных областях ИИ и машинного обучения:

  1. Компьютерное зрение: В таких задачах, как обнаружение объектов и классификация изображений, Dropout часто применяется к полностью связанным слоям конволюционных нейронных сетей (CNN). Такие модели, как Ultralytics YOLO неявно получают пользу от методов регуляризации во время обучения, что помогает им лучше обобщать различные наборы данных изображений, такие как COCO или пользовательские данные, подготовленные с помощью Ultralytics HUB. Это обеспечивает надежность при обнаружении объектов в разнообразных сценах реального мира, что очень важно для приложений в автономных транспортных средствах или системах безопасности.
  2. Обработка естественного языка (NLP): Dropout обычно используется в рекуррентных нейронных сетях (РНС), таких как LSTM, и в моделях-трансформерах, применяемых для таких задач, как машинный перевод или анализ чувств. Он помогает предотвратить запоминание моделями определенных фраз или структур предложений из обучающего корпуса, что приводит к лучшему пониманию и генерации естественного языка. Такие фреймворки, как Hugging Face Transformers, часто включают dropout в архитектуру своих моделей.

Смежные понятия и различия

Dropout - это одна из нескольких техник, используемых для предотвращения чрезмерной подгонки. Другие включают в себя:

  • Регуляризация L1 и L2: Они добавляют штраф к функции потерь, основанный на величине весов модели, поощряя меньшие веса.
  • Пакетная нормализация: Нормализует входы в слой для каждой мини-партии. Хотя в основном она используется для стабилизации и ускорения обучения, она также может оказывать небольшой регуляризирующий эффект.
  • Увеличение данных: Искусственно увеличивай размер и разнообразие обучающего набора данных, применяя к исходным данным такие преобразования, как вращение, переворачивание или изменение цвета. Изучи техники аугментации в документации по Ultralytics .

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

Реализация

Dropout Layers - стандартные компоненты в основных фреймворках глубокого обучения. Они легко доступны в таких библиотеках, как PyTorch и TensorFlowчто позволяет легко включать их в архитектуры нейронных сетей.

Читать полностью