Junior — Middle
Kas ir Dropout un kā tas uzvedas apmācības un inference laikā?
sobes.tech AI
Atbilde no AI
Dropout ir regulēšanas metode dziļajās neironu tīklos, kas palīdz novērst pārmācīšanos. Treniņa laikā daļa neironu tiek nejauši "izslēgta" (nulle) ar noteiktu varbūtību (piemēram, 0,5), kas liek tīklam nepaļauties pārāk daudz uz atsevišķiem neironiem un uzlabo tā vispārējo spēju generalizēt.
Treniņa posmā (train) dropout ir aktīvs: neironi tiek nejauši izslēgti, un svari tiek atjaunināti, ņemot to vērā.
Inferences posmā (inference) dropout tiek izslēgts, visi neironi ir aktīvi, un izejas tiek mērogotas (parasti reizinātas ar saglabāšanas varbūtību), lai kompensētu izslēgšanas efektu treniņa laikā.
PyTorch piemērs:
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 ir aktīvs
output_train = model(torch.randn(1, 10))
model.eval() # dropout ir izslēgts
output_eval = model(torch.randn(1, 10))