Sobes.tech
Junior — Middle

Wat is Dropout en hoe gedraagt het zich tijdens training en inferentie?

sobes.tech AI

Antwoord van AI

Dropout is een regularisatiemethode in diepe neurale netwerken die helpt overfitting te voorkomen. Tijdens de training wordt een deel van de neuronen willekeurig uitgeschakeld (op nul gezet) met een bepaalde waarschijnlijkheid (bijvoorbeeld 0,5), waardoor het netwerk niet te afhankelijk wordt van individuele neuronen en zijn generalisatievermogen verbetert.

In de trainingsfase (train) is dropout actief: neuronen worden willekeurig uitgeschakeld en de gewichten worden bijgewerkt met dit in gedachten.

In de inferentiefase (inference) wordt dropout uitgeschakeld, zijn alle neuronen actief en worden de outputs geschaald (meestal vermenigvuldigd met de waarschijnlijkheid dat een neuron behouden blijft) om het effect van uitschakeling tijdens training te compenseren.

Voorbeeld in 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 ingeschakeld
output_train = model(torch.randn(1, 10))

model.eval()   # dropout uitgeschakeld
output_eval = model(torch.randn(1, 10))