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