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