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

Afledte ord

1