Junior — Middle
Co je Dropout a jak se chová při tréninku a inference?
sobes.tech AI
Odpověď od AI
Dropout je metoda regularizace v hlubokých neuronových sítích, která pomáhá předcházet přeučení. Během tréninku je náhodně "vypnuta" (nulová) část neuronů s danou pravděpodobností (například 0,5), což nutí síť, aby se příliš nespoléhala na jednotlivé neurony a zlepšila svou schopnost generalizace.
V tréninkové fázi (train) je dropout aktivní: neurony jsou náhodně vypínány a váhy jsou aktualizovány s tímto vědomím.
V inferenční fázi (inference) je dropout vypnutý, všechny neurony jsou aktivní a výstupy jsou škálovány (obvykle násobené pravděpodobností zachování neuronu), aby se kompenzoval efekt vypnutí během tréninku.
Příklad v PyTorch:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(10, 20),
nn.Dropout(p=0.5),
nn.ReLU(),
nn.Linear(20, 1)
)
model.train() # dropout je aktivní
output_train = model(torch.randn(1, 10))
model.eval() # dropout je vypnutý
output_eval = model(torch.randn(1, 10))