Junior — Middle
Mi az a Dropout és hogyan viselkedik a tanítás és az inference során?
sobes.tech MI
Válasz az MI-től
A Dropout egy regulárizási módszer a mély neurális hálózatokban, amely segít megelőzni a túlillesztést. Az edzés során a neuronok egy részét véletlenszerűen "kikapcsolják" (nullázás) egy adott valószínűséggel (például 0,5), ami arra kényszeríti a hálózatot, hogy ne támaszkodjon túlzottan egyedi neuronokra, és javítja általánosító képességét.
Az edzés (train) szakaszában a dropout aktív: a neuronokat véletlenszerűen kikapcsolják, és a súlyokat ennek figyelembevételével frissítik.
Az inferencia (inference) szakaszában a dropout kikapcsolódik, minden neuron aktív, és a kimenetek skálázódnak (általában a megtartási valószínűséggel szorozva), hogy kompenzálják az edzés közbeni kikapcsolás hatását.
PyTorch példával:
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 aktiválva
output_train = model(torch.randn(1, 10))
model.eval() # dropout kikapcsolva
output_eval = model(torch.randn(1, 10))