Junior — Middle
Čo je Dropout a ako sa správa počas tréningu a inference?
sobes.tech AI
Odpoveď od AI
Dropout je metóda regulácie v hlbokých neurónových sieťach, ktorá pomáha predchádzať preučeniu. Počas tréningu sa časť neurónov náhodne "vypne" (nastaví na nulu) s danou pravdepodobnosťou (napríklad 0,5), čo núti sieť, aby sa príliš nespoliehala na jednotlivé neuróny a zlepšila svoju schopnosť generalizácie.
V tréningovej fáze (train) je dropout aktívny: neuróny sa náhodne vypínajú a váhy sa aktualizujú s týmto zohľadnením.
V inferenčnej fáze (inference) je dropout vypnutý, všetky neuróny sú aktívne a výstupy sa škálujú (zvyčajne sa násobia pravdepodobnosťou zachovania neurónu), aby sa kompenzoval efekt vypnutia počas tréningu.
Prí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 aktívny
output_train = model(torch.randn(1, 10))
model.eval() # dropout je vypnutý
output_eval = model(torch.randn(1, 10))