Middle
16
Что такое dropout и как он работает во время обучения и инференса?
Companies where asked
Answer from AI
sobes.tech AI
Dropout — это техника регуляризации в нейронных сетях, которая помогает предотвратить переобучение. Во время обучения случайным образом «выключается» (обнуляется) часть нейронов с заданной вероятностью (например, 0.5), что заставляет сеть не зависеть слишком сильно от отдельных нейронов и улучшает обобщающую способность.
Как работает:
- Во время обучения: при каждом проходе (батче) случайно отключается часть нейронов, их выходы умножаются на 0. Это создает эффект ансамбля разных подмоделей.
- Во время инференса (предсказания): dropout отключается, все нейроны активны, а веса масштабируются (обычно умножаются на вероятность сохранения нейрона), чтобы компенсировать эффект отключения во время обучения.
Пример на PyTorch:
import torch.nn as nn
model = nn.Sequential(
nn.Linear(100, 50),
nn.ReLU(),
nn.Dropout(p=0.5), # 50% нейронов отключаются во время обучения
nn.Linear(50, 10)
)
model.train() # включаем режим обучения — dropout активен
model.eval() # режим инференса — dropout отключен