mini-batch gradient descent

En optimeringsalgoritme, der opdaterer modelparametre ved at beregne gradienten over en lille delmængde (mini-batch) af træningsdataene ad gangen.

Kort fortalt

Mini-batch gradient descent er en måde at træne en AI-model på, hvor man i stedet for at bruge alle data på én gang (for langsomt) eller ét datapunkt ad gangen (for ustabilt) bruger små grupper af data for at få en god balance.

Kategori
træning
Niveau
øvet
Udtale
/ˈmɪniˌbætʃ ˈɡreɪdiənt dɪˈsɛnt/

Betydninger

1
  1. 1

    Den iterative optimeringsalgoritme, der opdaterer parametre ved hjælp af gradienten beregnet på et tilfældigt udvalgt mini-batch af træningsdata.

    • Vi træner modellen med mini-batch gradient descent og en batch-størrelse på 32.
    • Mini-batch gradient descent reducerer variansen i opdateringerne sammenlignet med ren stokastisk gradient descent.Ruder, 2016

Hvornår bruges det

Mini-batch gradient descent er standardmetoden til træning af neurale netværk og deep learning-modeller. Det bruges i næsten alle moderne machine learning-biblioteker som TensorFlow og PyTorch, hvor batch-størrelsen er en vigtig hyperparameter, der justeres for at balancere beregningseffektivitet og konvergensstabilitet.

Formel

θ = θ - η · (1/|B|) · Σ_{i∈B} ∇_θ L_i

Kodeeksempel

for epoch in range(epochs):
    for batch in get_batches(X_train, y_train, batch_size=32):
        X_batch, y_batch = batch
        predictions = model(X_batch)
        loss = loss_fn(predictions, y_batch)
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

Typisk træningsløkke med mini-batch gradient descent i PyTorch. En optimizer (fx SGD) udfører parameteropdateringen.

Oprindelse

Sammensat af 'mini-batch' (lille batch) og 'gradient descent' (gradientnedstigning). Begrebet opstod som en mellemting mellem stokastisk gradient descent (én prøve) og batch gradient descent (hele datasættet).

Afledte ord

2

Kilder

2