Sobes.tech
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))