Sobes.tech
Middle — Senior

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)