Layer normalization

Layer normalization er en normaliseringsteknik, der standardiserer aktiveringerne over feature-dimensionen for hvert træningseksempel ved at trække middelværdien og dividere med standardafvigelsen.

Kort fortalt

Kort fortalt: en metode til at gøre træning af neurale netværk mere stabil ved at normalisere input til hvert lag, så de har middelværdi 0 og varians 1.

Kategori
teknik
Niveau
ekspert
Udtale
/ˈleɪər ˌnɔːrmələˈzeɪʃən/

Betydninger

1
  1. 1

    En normaliseringsteknik, der beregner middelværdi og varians over feature-dimensionen for hvert datapunkt og anvender en affin transformation for at opretholde repræsentationens udtrykskraft.

    • Layer normalization anvendes i hvert transformer-lag for at stabilisere træningen af store sprogmodeller.forskningsartikel, 2016
    • Efter at have tilføjet layer normalization forbedredes konvergensen af RNN'en betydeligt.

Hvornår bruges det

Bruges i transformere (især inden for NLP) og RNN'er for at forbedre træningsstabilitet og konvergens. Typisk anvendt før aktiveringsfunktionen i hvert underlag eller som en del af residualsammenhængen.

Formel

LayerNorm(x) = γ * ( (x - μ) / sqrt(σ² + ε) ) + β, where μ = mean(x) and σ² = variance(x) over the last feature dimension, and γ, β are learnable parameters.

Kodeeksempel

import torch
import torch.nn as nn

class LayerNorm(nn.Module):
    def __init__(self, features, eps=1e-6):
        super(LayerNorm, self).__init__()
        self.gamma = nn.Parameter(torch.ones(features))
        self.beta = nn.Parameter(torch.zeros(features))
        self.eps = eps

    def forward(self, x):
        mean = x.mean(-1, keepdim=True)
        var = x.var(-1, unbiased=False, keepdim=True)
        out = (x - mean) / torch.sqrt(var + self.eps)
        return self.gamma * out + self.beta

PyTorch-implementering af layer normalization, der normaliserer over den sidste dimension og anvender lærte skala- og skift-parametre.

Oprindelse

Introduceret af Jimmy Lei Ba, Jamie Ryan Kiros og Geoffrey Hinton i artiklen 'Layer Normalization' (2016) som et alternativ til batch normalization, der ikke afhænger af batchstørrelse.

Afledte ord

2

Kilder

1