Jaké typy normalizace existují (Batch, Layer, Instance, Group, RMSNorm)?
sobes.tech AI
Odpověď od AI
Normalizace v neuronových sítích pomáhá stabilizovat a urychlit učení tím, že snižuje vnitřní posun rozdělení aktivací. Hlavní typy normalizace:
-
Batch Normalization (BatchNorm) — normalizace podle dávky. Vypočítá průměr a rozptyl pro každý rys na mini-dávce, poté hodnoty škáluje a posouvá. Je účinná, ale závisí na velikosti dávky.
-
Layer Normalization (LayerNorm) — normalizace podle vrstvy. Vypočítá statistiky pro všechny neurony vrstvy pro každý jednotlivý příklad, nezávisle na velikosti dávky. Často se používá v RNN a transformerech.
-
Instance Normalization (InstanceNorm) — normalizace podle příkladu a kanálu, často používaná v úlohách zpracování obrázků, například při přenosu stylu.
-
Group Normalization (GroupNorm) — dělí kanály do skupin a normalizuje uvnitř každé skupiny. Funguje stabilně při malých velikostech dávky.
-
RMSNorm (Root Mean Square Normalization) — normalizace podle odmocniny průměru čtverců hodnot, bez odečítání průměru. Zjednodušená alternativa k LayerNorm, někdy poskytuje lepší výsledky v transformerech.
Příklad BatchNorm v PyTorch:
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # dávka 32 příkladů
output = batch_norm(x)