Sobes.tech
Middle — Senior

Que tipos de normalização existem (Batch, Layer, Instance, Group, RMSNorm)?

sobes.tech IA

Resposta da IA

A normalização em redes neurais ajuda a estabilizar e acelerar o treino, reduzindo o deslocamento interno da distribuição de ativações. Os principais tipos de normalização:

  • Normalização por lote (Batch Normalization, BatchNorm) — normalização por lote. Calcula a média e a variância por mini-lote para cada característica, depois escala e desloca os valores. É eficaz, mas depende do tamanho do lote.

  • Normalização por camada (Layer Normalization, LayerNorm) — normalização por camada. Calcula estatísticas para todos os neurônios de uma camada para cada exemplo individual, sem depender do tamanho do lote. Frequentemente usada em RNNs e transformadores.

  • Normalização por instância (Instance Normalization, InstanceNorm) — normalização por exemplo e canal, comum em tarefas de processamento de imagens, por exemplo, em transferência de estilo.

  • Normalização por grupo (Group Normalization, GroupNorm) — divide os canais em grupos e normaliza dentro de cada grupo. Funciona de forma estável com tamanhos pequenos de lote.

  • RMSNorm (Root Mean Square Normalization) — normalização pela raiz quadrada da média dos quadrados dos valores, sem subtrair a média. Alternativa simplificada ao LayerNorm, às vezes fornece melhores resultados em transformadores.

Exemplo de BatchNorm em PyTorch:

import torch
import torch.nn as nn

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