Sobes.tech
Middle — Senior

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)