mini batch

Mini batch er en delmængde af træningsdata, der bruges til at beregne gradienten og opdatere modelvægtene i én iteration under træning af neurale netværk.

Kort fortalt

I stedet for at se på alle data på én gang (fuld batch) eller ét eksempel ad gangen (stokastisk), deler man data op i små bunker, så træningen bliver både hurtig og stabil.

Kategori
træning
Niveau
begynder
Udtale
/ˈmɪni bætʃ/

Betydninger

1
  1. 1

    En delmængde af træningsdata af fast størrelse, som bruges til at beregne gradienten i én iteration af gradient descent. Mini batches gør træningen mere effektiv og mindre støjfyldt end ren stokastisk gradient descent.

    • I træningsløkken vælges et mini batch tilfældigt fra datasættet, og gradienten beregnes på baggrund af dette batch.
    • En batch-størrelse på 32 er ofte et godt valg for mini batch gradient descent.

Hvornår bruges det

Mini batches er standard i moderne deep learning. Man vælger en batch-størrelse (f.eks. 32 eller 64) og trækker tilfældige batches gennem data-loaderen. Gradienten beregnes over batchen, og vægtene opdateres. Dette giver en god afvejning mellem beregningseffektivitet og støj i gradienten.

Kodeeksempel

from torch.utils.data import DataLoader, TensorDataset

dataset = TensorDataset(X_train, y_train)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)

for batch_x, batch_y in dataloader:
    optimizer.zero_grad()
    output = model(batch_x)
    loss = criterion(output, batch_y)
    loss.backward()
    optimizer.step()

Eksempel på mini batch-træning i PyTorch. DataLoader opretter batches af størrelse 32, hænder dem til modellen og opdaterer vægtene efter hvert batch.

Oprindelse

Engelsk: 'mini' ('lille') + 'batch' ('parti, samling'). Udtrykket opstod i maskinlæring som en mellemting mellem fuld batch og stokastisk gradient descent.

Afledte ord

2

Kilder

2