batch-normaliseringslag

Et batch-normaliseringslag er et lag i et neuralt netværk, der normaliserer aktiveringerne i et mini-batch ved at justere gennemsnit og varians for at stabilisere træningen.

Kort fortalt

Kort sagt sikrer batch-normaliseringslag, at hvert lags input har en stabil fordeling, hvilket gør træningen hurtigere og mere robust.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    Et lag i et neuralt netværk, der udfører batch-normalisering for at normalisere aktiveringerne over et mini-batch.

    • I et ResNet indsættes batch-normaliseringslag efter hver konvolution.Deep Learning textbook
    • Batch-normaliseringslag gør det muligt at træne meget dybe netværk uden at lide under forsvindende gradienter.Ioffe & Szegedy, 2015

Hvornår bruges det

Batch-normaliseringslag anvendes typisk i dybe konvolutionelle neurale netværk og fuldt forbundne netværk. Det indsættes efter et lineært lag eller en aktiveringsfunktion og før en ikke-linearitet. Det gør det muligt at bruge højere indlæringsrater og reducerer følsomheden over for initialisering.

Formel

y_i = γ (x_i - μ) / √(σ² + ε) + β

Kodeeksempel

import torch.nn as nn

# Create a batch normalization layer for 64-dimensional features
bn = nn.BatchNorm1d(num_features=64)

# During forward pass
output = bn(input_tensor)

Oprettelse af et batch-normaliseringslag i PyTorch. Laget normaliserer input_features over batch-dimensionen.

Oprindelse

Begrebet blev introduceret af Sergey Ioffe og Christian Szegedy i 2015 i artiklen 'Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift'.

Afledte ord

2

Kilder

2
  • Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (Ioffe & Szegedy, 2015)
  • PyTorch BatchNorm1d documentation