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
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
2Kilder
2- Deep Learning (Goodfellow, Bengio, Courville)
- PyTorch DataLoader Documentation