Sobes.tech
Middle — Senior

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)