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
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_iKodeeksempel
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).