Aké typy normalizácie existujú (Batch, Layer, Instance, Group, RMSNorm)?
sobes.tech AI
Odpoveď od AI
Normalizácia v neurónových sieťach pomáha stabilizovať a zrýchliť učenie, znižovaním vnútorného posunu rozdelenia aktivácií. Hlavné typy normalizácie:
-
Batch Normalization (BatchNorm) — normalizácia podľa dávky. Vypočíta priemernú hodnotu a rozptyl pre každý rys na mini-dávke, potom škáluje a posúva hodnoty. Efektívna, ale závisí od veľkosti dávky.
-
Layer Normalization (LayerNorm) — normalizácia podľa vrstvy. Vypočíta štatistiky pre všetky neuróny vrstvy pre každý jednotlivý príklad, nezávisle od veľkosti dávky. Často sa používa v RNN a transformeroch.
-
Instance Normalization (InstanceNorm) — normalizácia podľa príkladu a kanála, často používaná pri spracovaní obrázkov, napríklad pri prenose štýlu.
-
Group Normalization (GroupNorm) — delí kanály na skupiny a normalizuje vnútri každej skupiny. Funguje stabilne pri malých veľkostiach dávky.
-
RMSNorm (Root Mean Square Normalization) — normalizácia podľa koreňa z priemeru štvorcov hodnôt, bez odčítania priemeru. Zjednodušená alternatíva k LayerNorm, niekedy dáva lepšie výsledky v transformeroch.
Prí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 z 32 príkladov
output = batch_norm(x)