Sobes.tech
Middle — Senior

Ce tipuri de normalizare există (Batch, Layer, Instance, Group, RMSNorm)?

sobes.tech AI

Răspuns de la AI

Normalizarea în rețelele neuronale ajută la stabilizarea și accelerarea antrenamentului, reducând deplasarea internă a distribuției activărilor. Principalele tipuri de normalizare:

  • Normalizarea pe lot (Batch Normalization, BatchNorm) — normalizare pe lot. Calculează media și dispersia pentru fiecare caracteristică pe un mini-lot, apoi scalează și deplasează valorile. Este eficientă, dar depinde de dimensiunea lotului.

  • Normalizarea pe strat (Layer Normalization, LayerNorm) — normalizare pe strat. Calculează statisticile pentru toți neuronii unui strat pentru fiecare exemplu individual, independent de dimensiunea lotului. Folosit frecvent în RNN și transformatoare.

  • Normalizarea pe instanță (Instance Normalization, InstanceNorm) — normalizare pe exemplu și canal, adesea utilizată în procesarea imaginilor, de exemplu în transferul stilului.

  • Normalizarea pe grup (Group Normalization, GroupNorm) — împarte canalele în grupuri și normalizează în interiorul fiecărui grup. Funcționează stabil cu dimensiuni mici ale lotului.

  • RMSNorm (Root Mean Square Normalization) — normalizează după rădăcina mediei pătratului valorilor, fără a scădea media. O alternativă simplificată la LayerNorm, uneori oferind rezultate mai bune în transformatoare.

Exemplu de BatchNorm în PyTorch:

import torch
import torch.nn as nn

batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10)  # lot de 32 de exemple
output = batch_norm(x)