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
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
2Kilder
2- Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (Ioffe & Szegedy, 2015)
- PyTorch BatchNorm1d documentation