Kokie normalizacijos tipai egzistuoja (Batch, Layer, Instance, Group, RMSNorm)?
sobes.tech AI
Atsakymas iš AI
Neuroninių tinklų normalizacija padeda stabilizuoti ir pagreitinti mokymąsi, sumažindama vidinį aktyvacijų paslinkimą. Pagrindiniai normalizacijos tipai:
-
Batch Normalization (BatchNorm) — normalizacija pagal partiją. Apskaičiuoja vidurkį ir dispersiją kiekvienai savybei mini-partijoje, tada mastelį ir perkelia reikšmes. Efektyvi, bet priklauso nuo partijos dydžio.
-
Layer Normalization (LayerNorm) — sluoksnio normalizacija. Apskaičiuoja statistiką visiems sluoksnio neuronams kiekvienam atskiram pavyzdžiui, nepriklausomai nuo partijos dydžio. Dažnai naudojama RNN ir transformatoriuose.
-
Instance Normalization (InstanceNorm) — pavyzdžio ir kanalo normalizacija, dažnai taikoma vaizdų apdorojimo užduotyse, pvz., stiliaus perdavime.
-
Group Normalization (GroupNorm) — padalija kanalus į grupes ir normalizuoja kiekvienos grupės viduje. Stabiliai veikia su mažais partijos dydžiais.
-
RMSNorm (Root Mean Square Normalization) — normalizacija pagal reikšmių kvadratų vidurkio šaknį, be vidurkio atimties. Supaprastinta LayerNorm alternatyva, kartais duoda geresnius rezultatus transformatoriuose.
Pavyzdys su BatchNorm PyTorch:
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # 32 pavyzdžių partija
output = batch_norm(x)