Milyen normalizálási típusok léteznek (Batch, Layer, Instance, Group, RMSNorm)?
sobes.tech MI
Válasz az MI-től
A hálózatok normalizálása segít stabilizálni és felgyorsítani a tanulást, csökkentve a aktivációk belső eltolódását. A fő normalizálási típusok:
-
Batch Normalization (BatchNorm) — batch szerinti normalizálás. Számítja az átlagot és a szórást mini-batch-re, majd skálázza és eltolja az értékeket. Hatékony, de függ a batch méretétől.
-
Layer Normalization (LayerNorm) — réteg szerinti normalizálás. Számítja a statisztikákat minden réteg összes neuronjára az egyes példányokra, függetlenül a batch méretétől. Gyakran használják RNN-ekben és transzformátorokban.
-
Instance Normalization (InstanceNorm) — példány és csatorna szerinti normalizálás, gyakran alkalmazzák képfeldolgozási feladatokban, például stílusátvitelben.
-
Group Normalization (GroupNorm) — csoportokra osztja a csatornákat, és belül normalizál. Stabilan működik kis batch méretnél.
-
RMSNorm (Root Mean Square Normalization) — a négyzetes értékek átlagának négyzetgyöke szerinti normalizálás, anélkül, hogy kivonná az átlagot. Egyszerűsített változata a LayerNorm-nak, néha jobb eredményeket ad transzformátorokban.
PyTorch példakód BatchNorm-ra:
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # 32 példányból álló batch
output = batch_norm(x)