Back to archive
#ai#llm#glossary#aigen

Layer Normalization

Layer Normalization (LayerNorm) normalizuje reprezentację na podstawie statystyk jej współrzędnych. W typowym bloku Transformer średnią i wariancję liczy się osobno dla wektora każdej pozycji, po wymiarze cech. Nie zbiera się ich ze wszystkich zdań w batchu.

To rozróżnienie wprowadza praca Ba, Kiros i Hinton, Layer Normalization, §3. Statystyki zależą od aktualnego wejścia, więc normalizacja nie potrzebuje innych przykładów w tym samym batchu.

Dla współrzędnej xix_i zapis z uczonym skalowaniem i przesunięciem ma postać:

yi=γixiμσ2+ε+βi.y_i=\gamma_i\frac{x_i-\mu}{\sqrt{\sigma^2+\varepsilon}}+\beta_i.

μ\mu jest średnią wektora, a σ2\sigma^2 średnią kwadratów odchyleń od niej. Dodatnie ε\varepsilon chroni przed dzieleniem przez zero. Parametry γi\gamma_i i βi\beta_i są uczone. Dokumentacja Keras podaje pełne obliczenie i znaczenie osi normalizacji.

Przykład dwóch współrzędnych

Dla [2; 4] średnia wynosi 3, a wariancja 1. Po odjęciu średniej otrzymujemy [−1; 1]. Przy bardzo małym epsilon, gamma równej jeden i beta równej zero wynik będzie bliski [−1; 1].

Po nauczeniu gamma i beta końcowy wektor nie musi mieć średniej zero ani wariancji jeden. Normalizacja nie oznacza też, że cały model staje się niezależny od skali wszystkich swoich parametrów.

W oryginalnym Transformer LayerNorm następowała po dodaniu przez Residual connection, zarówno przy attention, jak i FFN. Kolejność tę pokazuje Attention Is All You Need, §3.1; nie należy z niej robić reguły dla wszystkich LLM.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.