batch normalisering
Teknik der normaliserer aktiveringer i et neuralt netværk ved at justere deres gennemsnit og varians inden for hver mini-batch under træning.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
Batch normalisering er en teknik, der anvendes i træning af dybe neurale netværk for at stabilisere og accelerere læringen. Den virker ved at normalisere outputtet fra et lag over den aktuelle mini-batch: for hver feature trækkes batch-middelværdien fra, og resultatet divideres med batch-standardafvigelsen. Derefter anvendes to lærbare parametre (skalering og forskydning) for at genoprette netværkets udtrykskraft. Teknikken reducerer problemet med forsvindende/eksploderende gradienter og gør det muligt at bruge højere læringsrater.
- Ved at anvende batch normalisering efter hvert konvolutionslag blev træningstiden reduceret med 40 %. — forskningsartikel, 2015
- Batch normalisering fungerer bedst med store batch-størrelser; for små batches kan estimaterne af middelværdi og varians blive upræcise. — maskinlæringslærebog, 2020
Kodeeksempel
import torch.nn as nn
model = nn.Sequential(
nn.Linear(64, 128),
nn.BatchNorm1d(128),
nn.ReLU(),
nn.Linear(128, 10)
)Eksempel på brug af batch-normaliseringslag i et PyTorch-netværk. Lagets input-output dimension er 128; 'BatchNorm1d' bruges til 1D-data (features).
Oprindelse
Fra engelsk 'batch normalization'. 'Batch' henviser til det sæt af træningseksempler, der behandles samtidig; 'normalisering' betyder at gøre dataene mere ensartede i fordeling.